}
private void addService(List<Service> services, Class<?> serviceClass) {
//FIXME how do we support specifying remotable?
JavaServiceContract javaInterface = factory.createJavaServiceContract();
javaInterface.setInterface(serviceClass);
org.osoa.sca.annotations.Scope scopeAnnotation = serviceClass.getAnnotation(org.osoa.sca.annotations.Scope.class);
Scope scope;
if (scopeAnnotation == null) {
scope = Scope.INSTANCE;
} else {
scope = ProcessorHelper.getScope(scopeAnnotation);
}
javaInterface.setScope(scope);
Callback callback = serviceClass.getAnnotation(Callback.class);
if (callback != null && !Void.class.equals(callback.value())) {
javaInterface.setCallbackInterface(callback.value());
}
String name = JavaIntrospectionHelper.getBaseName(serviceClass);
Service service = factory.createService();
service.setName(name);
service.setServiceContract(javaInterface);