in jax-rs.whiteboard/src/main/java/org/apache/aries/jax/rs/whiteboard/internal/cxf/CxfJaxrsServiceRegistrator.java [129:183]
public void enable() {
_enabled = true;
try {
rewire();
}
catch (Exception e) {
ArrayList<ServiceTuple<?>> providers = new ArrayList<>();
ArrayList<ResourceProvider> services = new ArrayList<>();
for (ServiceTuple<?> provider : _providers) {
providers.add(provider);
try {
doRewire(providers, services);
}
catch (Exception ex) {
providers.remove(provider);
_erroredProviders.add(provider);
}
}
for (ResourceProvider service : _services) {
services.add(service);
try {
doRewire(providers, services);
}
catch (Exception ex) {
services.remove(service);
_erroredServices.add(service);
}
}
_enabled = false;
for (ServiceTuple<?> erroredProvider : _erroredProviders) {
CachingServiceReference<?> cachingServiceReference =
erroredProvider.getCachingServiceReference();
_providers.remove(erroredProvider);
_ariesJaxrsServiceRuntime.addErroredExtension(
cachingServiceReference);
_serviceReferenceRegistry.unregister(cachingServiceReference);
}
for (ResourceProvider erroredService : _erroredServices) {
_services.remove(erroredService);
_ariesJaxrsServiceRuntime.addErroredEndpoint(
((ServiceReferenceResourceProvider)erroredService).
getImmutableServiceReference());
}
_enabled = true;
rewire();
}
}