@Override public String getServiceId() { return serviceDef.getServiceId(); }
@Override public String getServiceId() { return serviceDef.getServiceId(); }
@Override public <K, V> Map<K, V> getMappedConfiguration(final Class<K> keyType, final Class<V> valueType) { Map<K, V> result = registry.invoke("Collecting mapped configuration for service " + serviceDef.getServiceId(), new Invokable<Map<K, V>>() { @Override public Map<K, V> invoke() { return registry.getMappedConfiguration(serviceDef, keyType, valueType); } }); if (logger.isDebugEnabled()) logger.debug(IOCMessages.constructedConfiguration(result)); return result; }
@Override public <K, V> Map<K, V> getMappedConfiguration(final Class<K> keyType, final Class<V> valueType) { Map<K, V> result = registry.invoke("Collecting mapped configuration for service " + serviceDef.getServiceId(), new Invokable<Map<K, V>>() { @Override public Map<K, V> invoke() { return registry.getMappedConfiguration(serviceDef, keyType, valueType); } }); if (logger.isDebugEnabled()) logger.debug(IOCMessages.constructedConfiguration(result)); return result; }
@Override public <T> List<T> getOrderedConfiguration(final Class<T> valueType) { List<T> result = registry.invoke("Collecting ordered configuration for service " + serviceDef.getServiceId(), new Invokable<List<T>>() { @Override public List<T> invoke() { return registry.getOrderedConfiguration(serviceDef, valueType); } }); logConfiguration(result); return result; }
@Override public <T> List<T> getOrderedConfiguration(final Class<T> valueType) { List<T> result = registry.invoke("Collecting ordered configuration for service " + serviceDef.getServiceId(), new Invokable<List<T>>() { @Override public List<T> invoke() { return registry.getOrderedConfiguration(serviceDef, valueType); } }); logConfiguration(result); return result; }
@Override public <T> Collection<T> getUnorderedConfiguration(final Class<T> valueType) { Collection<T> result = registry.invoke( "Collecting unordered configuration for service " + serviceDef.getServiceId(), new Invokable<Collection<T>>() { @Override public Collection<T> invoke() { return registry.getUnorderedConfiguration(serviceDef, valueType); } }); logConfiguration(result); return result; }
@Override public <T> Collection<T> getUnorderedConfiguration(final Class<T> valueType) { Collection<T> result = registry.invoke( "Collecting unordered configuration for service " + serviceDef.getServiceId(), new Invokable<Collection<T>>() { @Override public Collection<T> invoke() { return registry.getUnorderedConfiguration(serviceDef, valueType); } }); logConfiguration(result); return result; }
private <T> void addToUnorderedConfiguration(Collection<T> collection, Class<T> valueType, ServiceDef3 serviceDef, final Module module) { String serviceId = serviceDef.getServiceId(); Set<ContributionDef2> contributions = module.getContributorDefsForService(serviceDef); if (contributions.isEmpty()) return; Logger logger = getServiceLogger(serviceId); final ServiceResources resources = new ServiceResourcesImpl(this, module, serviceDef, proxyFactory, logger); for (final ContributionDef def : contributions) { final Configuration<T> validating = new ValidatingConfigurationWrapper<T>(valueType, resources, typeCoercerProxy, collection, serviceId); String description = "Invoking " + def; logger.debug(description); operationTracker.run(description, new Runnable() { @Override public void run() { def.contribute(module, resources, validating); } }); } }
private <T> void addToOrderedConfiguration(Orderer<T> orderer, Map<String, OrderedConfigurationOverride<T>> overrides, Class<T> valueType, ServiceDef3 serviceDef, final Module module) { String serviceId = serviceDef.getServiceId(); Set<ContributionDef2> contributions = module.getContributorDefsForService(serviceDef); if (contributions.isEmpty()) return; Logger logger = getServiceLogger(serviceId); final ServiceResources resources = new ServiceResourcesImpl(this, module, serviceDef, proxyFactory, logger); for (final ContributionDef def : contributions) { final OrderedConfiguration<T> validating = new ValidatingOrderedConfigurationWrapper<T>(valueType, resources, typeCoercerProxy, orderer, overrides, def); String description = "Invoking " + def; logger.debug(description); operationTracker.run(description, new Runnable() { @Override public void run() { def.contribute(module, resources, validating); } }); } }
Logger logger = getServiceLogger(serviceDef.getServiceId()); "Service %s has two different decorators methods named decorate%s in different module classes. " + "You can solve this by renaming one of them and annotating it with @Match(\"%2$s\").", serviceDef.getServiceId(), decoratorDef.getDecoratorId()));
private <K, V> void addToMappedConfiguration(Map<K, V> map, Map<K, MappedConfigurationOverride<K, V>> overrides, Map<K, ContributionDef> keyToContribution, Class<K> keyClass, Class<V> valueType, ServiceDef3 serviceDef, final Module module) { String serviceId = serviceDef.getServiceId(); Set<ContributionDef2> contributions = module.getContributorDefsForService(serviceDef); if (contributions.isEmpty()) return; Logger logger = getServiceLogger(serviceId); final ServiceResources resources = new ServiceResourcesImpl(this, module, serviceDef, proxyFactory, logger); for (final ContributionDef def : contributions) { final MappedConfiguration<K, V> validating = new ValidatingMappedConfigurationWrapper<K, V>(valueType, resources, typeCoercerProxy, map, overrides, serviceId, def, keyClass, keyToContribution); String description = "Invoking " + def; logger.debug(description); operationTracker.run(description, new Runnable() { @Override public void run() { def.contribute(module, resources, validating); } }); } }
private <K, V> void addToMappedConfiguration(Map<K, V> map, Map<K, MappedConfigurationOverride<K, V>> overrides, Map<K, ContributionDef> keyToContribution, Class<K> keyClass, Class<V> valueType, ServiceDef3 serviceDef, final Module module) { String serviceId = serviceDef.getServiceId(); Set<ContributionDef2> contributions = module.getContributorDefsForService(serviceDef); if (contributions.isEmpty()) return; Logger logger = getServiceLogger(serviceId); final ServiceResources resources = new ServiceResourcesImpl(this, module, serviceDef, proxyFactory, logger); for (final ContributionDef def : contributions) { final MappedConfiguration<K, V> validating = new ValidatingMappedConfigurationWrapper<K, V>(valueType, resources, typeCoercerProxy, map, overrides, serviceId, def, keyClass, keyToContribution); String description = "Invoking " + def; logger.debug(description); operationTracker.run(description, new Runnable() { @Override public void run() { def.contribute(module, resources, validating); } }); } }
private <T> void addToUnorderedConfiguration(Collection<T> collection, Class<T> valueType, ServiceDef3 serviceDef, final Module module) { String serviceId = serviceDef.getServiceId(); Set<ContributionDef2> contributions = module.getContributorDefsForService(serviceDef); if (contributions.isEmpty()) return; Logger logger = getServiceLogger(serviceId); final ServiceResources resources = new ServiceResourcesImpl(this, module, serviceDef, proxyFactory, logger); for (final ContributionDef def : contributions) { final Configuration<T> validating = new ValidatingConfigurationWrapper<T>(valueType, resources, typeCoercerProxy, collection, serviceId); String description = "Invoking " + def; logger.debug(description); operationTracker.run(description, new Runnable() { @Override public void run() { def.contribute(module, resources, validating); } }); } }
private <T> void addToOrderedConfiguration(Orderer<T> orderer, Map<String, OrderedConfigurationOverride<T>> overrides, Class<T> valueType, ServiceDef3 serviceDef, final Module module) { String serviceId = serviceDef.getServiceId(); Set<ContributionDef2> contributions = module.getContributorDefsForService(serviceDef); if (contributions.isEmpty()) return; Logger logger = getServiceLogger(serviceId); final ServiceResources resources = new ServiceResourcesImpl(this, module, serviceDef, proxyFactory, logger); for (final ContributionDef def : contributions) { final OrderedConfiguration<T> validating = new ValidatingOrderedConfigurationWrapper<T>(valueType, resources, typeCoercerProxy, orderer, overrides, def); String description = "Invoking " + def; logger.debug(description); operationTracker.run(description, new Runnable() { @Override public void run() { def.contribute(module, resources, validating); } }); } }
@Override public Object createObject() { Object service = delegate.createObject(); List<ServiceAdvisor> advisors = registry.findAdvisorsForService(serviceDef); if (advisors.isEmpty()) return service; final AspectInterceptorBuilder builder = aspectDecorator.createBuilder(serviceDef.getServiceInterface(), service, serviceDef, String.format("<AspectProxy for %s(%s)>", serviceDef.getServiceId(), serviceDef .getServiceInterface().getName())); for (final ServiceAdvisor advisor : advisors) { registry.run("Invoking " + advisor, new Runnable() { @Override public void run() { advisor.advise(builder); } }); } return builder.build(); } }
@Override public Object createObject() { Object service = delegate.createObject(); List<ServiceAdvisor> advisors = registry.findAdvisorsForService(serviceDef); if (advisors.isEmpty()) return service; final AspectInterceptorBuilder builder = aspectDecorator.createBuilder(serviceDef.getServiceInterface(), service, serviceDef, String.format("<AspectProxy for %s(%s)>", serviceDef.getServiceId(), serviceDef .getServiceInterface().getName())); for (final ServiceAdvisor advisor : advisors) { registry.run("Invoking " + advisor, new Runnable() { @Override public void run() { advisor.advise(builder); } }); } return builder.build(); } }
Logger logger = getServiceLogger(serviceDef.getServiceId()); "Service %s has two different decorators methods named decorate%s in different module classes. " + "You can solve this by renaming one of them and annotating it with @Match(\"%2$s\").", serviceDef.getServiceId(), decoratorDef.getDecoratorId()));
@Override public List<ServiceAdvisor> findAdvisorsForService(ServiceDef3 serviceDef) { lock.check(); assert serviceDef != null; Logger logger = getServiceLogger(serviceDef.getServiceId()); Orderer<ServiceAdvisor> orderer = new Orderer<ServiceAdvisor>(logger); for (Module module : moduleToServiceDefs.keySet()) { Set<AdvisorDef> advisorDefs = module.findMatchingServiceAdvisors(serviceDef); if (advisorDefs.isEmpty()) continue; ServiceResources resources = new ServiceResourcesImpl(this, module, serviceDef, proxyFactory, logger); for (AdvisorDef advisorDef : advisorDefs) { ServiceAdvisor advisor = advisorDef.createAdvisor(module, resources); orderer.add(advisorDef.getAdvisorId(), advisor, advisorDef.getConstraints()); } } return orderer.getOrdered(); }
@Override public List<ServiceAdvisor> findAdvisorsForService(ServiceDef3 serviceDef) { lock.check(); assert serviceDef != null; Logger logger = getServiceLogger(serviceDef.getServiceId()); Orderer<ServiceAdvisor> orderer = new Orderer<ServiceAdvisor>(logger); for (Module module : moduleToServiceDefs.keySet()) { Set<AdvisorDef> advisorDefs = module.findMatchingServiceAdvisors(serviceDef); if (advisorDefs.isEmpty()) continue; ServiceResources resources = new ServiceResourcesImpl(this, module, serviceDef, proxyFactory, logger); for (AdvisorDef advisorDef : advisorDefs) { ServiceAdvisor advisor = advisorDef.createAdvisor(module, resources); orderer.add(advisorDef.getAdvisorId(), advisor, advisorDef.getConstraints()); } } return orderer.getOrdered(); }