private void generateReferenceInjectionMapping(AbstractReference definition, WebComponentType type, Map<String, Map<String, InjectionSite>> mappings) { Map<String, InjectionSite> mapping = mappings.get(definition.getName()); if (mapping == null) { mapping = new HashMap<String, InjectionSite>(); mappings.put(definition.getName(), mapping); } for (Map.Entry<String, Map<InjectionSite, Injectable>> entry : type.getInjectionSites().entrySet()) { for (Map.Entry<InjectionSite, Injectable> siteMap : entry.getValue().entrySet()) { if (siteMap.getValue().getName().equals(definition.getName())) { mapping.put(entry.getKey(), siteMap.getKey()); } } } ServiceContract contract = definition.getServiceContract(); String interfaceClass = contract.getQualifiedInterfaceName(); // inject the reference into the session context WebContextInjectionSite site = new WebContextInjectionSite(interfaceClass, SESSION_CONTEXT); mapping.put(SESSION_CONTEXT_SITE, site); // also inject the reference into the servlet context WebContextInjectionSite servletContextsite = new WebContextInjectionSite(interfaceClass, SERVLET_CONTEXT); mapping.put(SERVLET_CONTEXT_SITE, servletContextsite); }
public PhysicalSourceDefinition generateSource(LogicalReference reference, EffectivePolicy policy) throws GenerationException { ServiceContract contract = reference.getLeafReference().getServiceContract(); if (!(contract instanceof JavaServiceContract)) { // Spring reference contracts are always defined by Java interfaces throw new GenerationException("Unexpected interface type for " + reference.getUri() + ": " + contract.getClass().getName()); } String interfaze = contract.getQualifiedInterfaceName(); URI uri = reference.getParent().getUri(); String referenceName = reference.getDefinition().getName(); return new SpringSourceDefinition(referenceName, interfaze, uri); }
private void createReferences(ComponentDefinition<?> definition, LogicalComponent<?> component, ComponentType componentType) { for (AbstractReference reference : componentType.getReferences().values()) { String name = reference.getName(); URI referenceUri = component.getUri().resolve('#' + name); LogicalReference logicalReference = new LogicalReference(referenceUri, reference, component); // reference is configured in the component definition ComponentReference componentReference = definition.getReferences().get(name); if (componentReference != null) { logicalReference.addIntents(componentReference.getIntents()); for (BindingDefinition binding : componentReference.getBindings()) { LogicalBinding<BindingDefinition> logicalBinding = new LogicalBinding<BindingDefinition>(binding, logicalReference); logicalReference.addBinding(logicalBinding); } for (BindingDefinition binding : componentReference.getCallbackBindings()) { LogicalBinding<BindingDefinition> logicalBinding = new LogicalBinding<BindingDefinition>(binding, logicalReference); logicalReference.addCallbackBinding(logicalBinding); } } component.addReference(logicalReference); } }
if (callbackContract != null) { URI callbackUri = generateCallbackUri(source, callbackContract, referenceDefinition.getName()); targetDefinition.setCallbackUri(callbackUri);
if (callbackContract != null) { URI callbackUri = generateCallbackUri(source, callbackContract, referenceDefinition.getName()); targetDefinition.setCallbackUri(callbackUri);
URI callbackUri = generateCallbackUri(component, callbackContract, referenceDefinition.getName()); targetDefinition.setCallbackUri(callbackUri);