public String getName() { return getServiceRefName(); }
public ServiceRef injectionTarget(final String className, final String property) { getInjectionTarget().add(new InjectionTarget(className, property)); // TODO move this to getKey() if (this.serviceRefName == null) { this.serviceRefName = "java:comp/env/" + className + "/" + property; } return this; }
public String getType() { return getServiceRefType(); }
private void resolveServiceRefs(final DeploymentModule module, final JndiConsumer jndiConsumer) { for (final ServiceRef serviceRef : jndiConsumer.getServiceRef()) { if (serviceRef.getServiceQname() == null && serviceRef.getWsdlFile() != null) { // parse the wsdl and get the serviceQname try { final String wsdlFile = serviceRef.getWsdlFile(); final Definition definition = getWsdl(module, wsdlFile); final Set serviceQNames = definition.getServices().keySet(); if (serviceQNames.size() == 1) { final QName serviceQName = (QName) serviceQNames.iterator().next(); serviceRef.setServiceQname(serviceQName); } else if (serviceQNames.isEmpty()) { logger.error("The service-ref " + serviceRef.getName() + " must define service-qname because the wsdl-file " + serviceRef.getWsdlFile() + " does not constain any service definitions "); } else { logger.error("The service-ref " + serviceRef.getName() + " must define service-qname because the wsdl-file " + serviceRef.getWsdlFile() + " constain more then one service definitions " + serviceQNames); } } catch (final Exception e) { logger.error("Unable to read wsdl file " + serviceRef.getWsdlFile()); } } } }
serviceRef = new ServiceRef(); serviceRef.setServiceRefName(refName); target.setInjectionTargetClass(member.getDeclaringClass().getName()); target.setInjectionTargetName(member.getName()); serviceRef.getInjectionTarget().add(target); if (serviceRef.getServiceInterface() == null) { serviceInterface = webService.type(); if (serviceInterface.equals(Object.class)) { serviceRef.setServiceInterface(serviceInterface.getName()); if (serviceRef.getServiceRefType() == null || ("").equals(serviceRef.getServiceRefType())) { if (webService.type() != java.lang.Object.class) { serviceRef.setServiceRefType(webService.type().getName()); } else { serviceRef.setServiceRefType(member.getType().getName()); refType = classLoader.loadClass(serviceRef.getType()); } catch (ClassNotFoundException e) { if (serviceRef.getMappedName() == null) { String mappedName = webService.mappedName(); if (mappedName.equals("")) { mappedName = null; serviceRef.setMappedName(mappedName);
if (currServiceRef.getServiceRefName().trim().equals(webServiceRefName)) { serviceRef = currServiceRef; break; serviceRef = new ServiceRef(); serviceRef.setServiceRefName(webServiceRefName); serviceRef.setServiceInterface(webServiceRefType.getName()); } else { serviceRef.setServiceInterface(webServiceRefValue.getName()); if (serviceRef.getLookupName() == null && !annotation.lookup().trim().isEmpty()) { serviceRef.setLookupName(annotation.lookup().trim()); if (serviceRef.getServiceRefType() == null && !webServiceRefType.equals(Object.class)) { serviceRef.setServiceRefType(webServiceRefType.getName()); if (serviceRef.getMappedName() == null && annotation.mappedName().trim().length() > 0) { serviceRef.setMappedName(annotation.mappedName().trim()); if (serviceRef.getWsdlFile() == null) { String wsdlLocation = annotation.wsdlLocation(); serviceRef.setWsdlFile(wsdlLocation); if (serviceRef.getHandlerChains() == null) { HandlerChain handlerChain = null; Class annotatedClass = null;
Collection<ServiceRef> serviceRefs = jndiConsumer.getServiceRef(); for (ServiceRef serviceRef : serviceRefs) { if (serviceRef.getServiceRefName().trim().equals(resourceName)) { if (method != null || field != null) { Set<InjectionTarget> targets = serviceRef.getInjectionTarget(); if (!hasTarget(method, field, targets)) { serviceRef.getInjectionTarget().add(configureInjectionTarget(method, field)); ServiceRef serviceRef = new ServiceRef(); serviceRef.setServiceRefName(resourceName); serviceRef.setServiceInterface(resourceType); serviceRef.setDescriptions(new Text[] {new Text(null, descriptionAnnotation) }); if (serviceRef.getServiceRefType() == null) { serviceRef.setServiceRefType(resourceType); serviceRef.getInjectionTarget().add(configureInjectionTarget(method, field)); if (serviceRef.getMappedName() == null && annotation.mappedName().trim().length() > 0) { serviceRef.setMappedName(annotation.mappedName().trim());
private List<ServiceReferenceInfo> buildServiceRefInfos(JndiConsumer jndiConsumer) { ArrayList<ServiceReferenceInfo> infos = new ArrayList<ServiceReferenceInfo>(); for (ServiceRef ref : jndiConsumer.getServiceRef()) { ServiceReferenceInfo info = new ServiceReferenceInfo(); info.referenceName = ref.getName(); info.location = buildLocationInfo(ref); info.targets.addAll(buildInjectionInfos(ref)); infos.add(info); if (System.getProperty("duct tape") != null) continue; info.id = ref.getMappedName(); info.serviceQName = ref.getServiceQname(); info.serviceType = ref.getServiceInterface(); info.referenceType = ref.getServiceRefType(); info.wsdlFile = ref.getWsdlFile(); info.jaxrpcMappingFile = ref.getJaxrpcMappingFile(); info.handlerChains.addAll(ConfigurationFactory.toHandlerChainInfo(ref.getAllHandlers())); for (PortComponentRef portComponentRef : ref.getPortComponentRef()) { PortRefInfo portRefInfo = new PortRefInfo(); portRefInfo.qname = portComponentRef.getQName(); portRefInfo.serviceEndpointInterface = portComponentRef.getServiceEndpointInterface(); portRefInfo.enableMtom = portComponentRef.isEnableMtom(); portRefInfo.properties.putAll(portComponentRef.getProperties()); info.portRefs.add(portRefInfo); } } return infos; }
String name = serviceRef.getKey(); String serviceInterfaceName = getStringValue(serviceRef.getServiceInterface()); Class<?> serviceInterfaceClass = loadClass(serviceInterfaceName, bundle, "service"); if (!Service.class.isAssignableFrom(serviceInterfaceClass)) { QName serviceQName = serviceRef.getServiceQname(); if (serviceRef.getWsdlFile() != null) { String wsdlLocation = serviceRef.getWsdlFile().trim(); try { wsdlURI = new URI(wsdlLocation); if (serviceRef.getServiceRefType() != null) { String referenceClassName = serviceRef.getServiceRefType(); serviceReferenceType = loadClass(referenceClassName, bundle, "service reference"); if (serviceRef.getHandlerChains() != null) { HandlerChains handlerChains = serviceRef.getHandlerChains(); for (HandlerChain handlerChain : handlerChains.getHandlerChain()) { for (org.apache.openejb.jee.Handler handler : handlerChain.getHandler()) { for (PortComponentRef portComponentRef : serviceRef.getPortComponentRef()) { String serviceEndpointInterfaceType = getStringValue(portComponentRef.getServiceEndpointInterface()); Class<?> serviceEndpointClass = loadClass(serviceEndpointInterfaceType, bundle, "service endpoint"); serviceInterfaceClass, serviceQName, wsdlURI, serviceReferenceType, portComponentRefMap); put(name, ref, ReferenceType.SERVICE, module.getJndiContext(), serviceRef.getInjectionTarget(), sharedContext);
if (serviceRef != null) { Map<String,PortComponentRef> ports = new TreeMap<String,PortComponentRef>(); for (PortComponentRef portComponentRef : serviceRef.getPortComponentRef()) { ports.put(portComponentRef.getServiceEndpointInterface(), portComponentRef); if (wsdlOverride != null && wsdlOverride.length() > 0) { String serviceId = extractServiceId(wsdlOverride); serviceRef.setMappedName(serviceId);
@Override public void preProcessWebXmlElement(WebApp webApp, MergeContext mergeContext) throws DeploymentException { for (ServiceRef serviceRef : webApp.getServiceRef()) { String serviceRefName = serviceRef.getServiceRefName(); mergeContext.setAttribute(createServiceRefKey(serviceRefName), new MergeItem(serviceRef, null, ElementSource.WEB_XML)); //Create an attribute tag to indicate whether injectTarget is configured in web.xml file if (!serviceRef.getInjectionTarget().isEmpty()) { mergeContext.setAttribute(createServiceRefInjectTargetConfiguredInWebXMLKey(serviceRefName), Boolean.TRUE); } for (InjectionTarget injectionTarget : serviceRef.getInjectionTarget()) { mergeContext.setAttribute(createServiceRefInjectTargetKey(serviceRefName, injectionTarget.getInjectionTargetClass(), injectionTarget.getInjectionTargetName() ), Boolean.TRUE); } } }
final String refName = ref.getServiceRefName(); ref.setMappedName(MAPPED_NAME_PREFIX + refName);
boolean exists = false; for ( ServiceRef serviceRef : serviceRefs ) { if ( serviceRef.getServiceRefName().trim().equals(serviceRefName) && serviceRef.getHandlerChains() == null) { insertHandlers(serviceRef, url); exists = true;
ref.setMappedName(null); ref.getInjectionTarget().clear();
String name = getStringValue(serviceRef.getServiceRefName()); GerServiceRefType gerServiceRefType = serviceRefMap.get(name); serviceRefMap.remove(name); String serviceInterfaceName = serviceRef.getServiceInterface(); Class<?> serviceInterfaceClass = loadClass(serviceInterfaceName, bundle);
public void setName(final String name) { setServiceRefName(name); }
@Override public Object createService(ServiceRef serviceRef, GerServiceRefType gerServiceRef, Module module, Bundle bundle, Class serviceInterface, QName serviceQName, URI wsdlURI, Class serviceReference, Map<Class<?>, PortComponentRef> portComponentRefMap) throws DeploymentException { if(serviceRef.getLookupName() != null && !serviceRef.getLookupName().isEmpty()) { return new JndiReference(serviceRef.getLookupName()); } EndpointInfoBuilder builder = new EndpointInfoBuilder(serviceInterface, gerServiceRef, portComponentRefMap, module, bundle, wsdlURI, serviceQName); builder.build(); wsdlURI = builder.getWsdlURI(); //TODO For non standalone web application, it is embbed of directory style in the EAR package wsdlURI = JAXWSBuilderUtils.normalizeWsdlPath(module, wsdlURI); serviceQName = builder.getServiceQName(); Map<Object, EndpointInfo> seiInfoMap = builder.getEndpointInfo(); HandlerChainsInfo handlerChainsInfo = null; if(serviceRef.getHandlerChains() != null) { handlerChainsInfo = handlerChainsInfoBuilder.build(serviceRef.getHandlerChains()); } String serviceReferenceName = (serviceReference == null) ? null : serviceReference.getName(); return new CXFServiceReference(serviceInterface.getName(), serviceReferenceName, wsdlURI, serviceQName, module.getModuleName(), handlerChainsInfo, seiInfoMap); }
public String getKey() { return getName(); }
private static PortComponentRef getPortComponentRef(ServiceRef serviceRef, String seiInterfaceName) { List<PortComponentRef> portComponentRefs = serviceRef.getPortComponentRef(); for (PortComponentRef portComponentRef : portComponentRefs) { if (portComponentRef.getServiceEndpointInterface().equals(seiInterfaceName)) { return portComponentRef; } } PortComponentRef portComponentRef = new PortComponentRef(); portComponentRef.setServiceEndpointInterface(seiInterfaceName); portComponentRefs.add(portComponentRef); return portComponentRef; } }
serviceRef = new ServiceRef(); serviceRef.setServiceRefName(refName); target.setInjectionTargetClass(member.getDeclaringClass().getName()); target.setInjectionTargetName(member.getName()); serviceRef.getInjectionTarget().add(target); if (serviceRef.getServiceInterface() == null) { serviceInterface = webService.type(); if (serviceInterface.equals(Object.class)) { serviceRef.setServiceInterface(serviceInterface.getName()); if (serviceRef.getServiceRefType() == null || "".equals(serviceRef.getServiceRefType())) { if (webService.type() != Object.class) { serviceRef.setServiceRefType(webService.type().getName()); } else { if (member != null) { serviceRef.setServiceRefType(member.getType().getName()); refType = classLoader.loadClass(realClassName(serviceRef.getType())); } catch (final ClassNotFoundException e) { if (serviceRef.getMappedName() == null) { String mappedName = webService.mappedName(); if (mappedName.equals("")) { mappedName = null; serviceRef.setMappedName(mappedName);