private void linkServiceRefs( DeploymentUnit unit, ServiceReferencesMetaData serviceRefs, Context envCtx) throws NamingException { if (unit instanceof VFSDeploymentUnit) { VFSDeploymentUnit vfsUnit = (VFSDeploymentUnit) unit; ClassLoader loader = unit.getClassLoader(); UnifiedVirtualFile vfsRoot = new VirtualFileAdaptor(vfsUnit.getRoot()); for (ServiceReferenceMetaData sref : serviceRefs) { String refName = sref.getServiceRefName(); new ServiceReferenceHandler().bindServiceRef(envCtx, refName, vfsRoot, loader, sref); } } }
private static UnifiedServiceRefMetaData getServiceRef( final DeploymentUnit unit, final ServiceReferenceMetaData serviceRefMD) throws DeploymentUnitProcessingException { // construct service ref final UnifiedServiceRefMetaData serviceRefUMDM = new UnifiedServiceRefMetaData(getUnifiedVirtualFile(unit)); translate(serviceRefMD, serviceRefUMDM); processWSFeatures(unit, serviceRefMD.getInjectionTargets(), serviceRefUMDM); // register it final WSReferences wsRefRegistry = getWSRefRegistry(unit); wsRefRegistry.add(serviceRefMD.getName(), serviceRefUMDM); return serviceRefUMDM; }
protected ServiceReferenceMetaData createServiceRef(WebServiceRef annotation, E element) { ServiceReferenceMetaData ref = new ServiceReferenceMetaData(); String name = annotation.name(); if (name.length() == 0) name = getName(element); ref.setServiceRefName(name); if (annotation.mappedName().length() > 0) ref.setMappedName(annotation.mappedName()); ref.setAnnotatedElement(element); if (annotation.wsdlLocation().length() > 0) ref.setWsdlFile(annotation.wsdlLocation()); if (annotation.type() != Object.class) { ref.setServiceRefType(annotation.type().getName()); } else ref.setServiceRefType(getType(element)); if (annotation.value() != Service.class) { ref.setServiceInterface(annotation.value().getName()); } else if (element instanceof Field) { final Class<?> targetClass = ((Field) element).getType(); if (Service.class.isAssignableFrom(targetClass)) ref.setServiceInterface(targetClass.getName()); } else if (element instanceof Method) { final Class<?> targetClass = ((Method) element).getParameterTypes()[0]; if (Service.class.isAssignableFrom(targetClass)) ref.setServiceInterface(targetClass.getName()); } else { ref.setServiceInterface(Service.class.getName()); } String injectionName = getInjectionName(element); Set<ResourceInjectionTargetMetaData> injectionTargets = ProcessorUtils.getInjectionTargets(injectionName, element); if (injectionTargets != null) ref.setInjectionTargets(injectionTargets); return ref; }
/** * Constructs a {@link ServiceRefMetadataImpl} from a {@link ServiceReferenceMetaData} * * @param serviceRef * @throws NullPointerException If the passed <code>serviceRef</code> is null */ public ServiceRefMetadataImpl(ServiceReferenceMetaData serviceRef) { super(serviceRef.getId()); this.initialize(serviceRef); }