public void accept(ServiceReferenceDescriptor serviceRef) { try { ModuleDescriptor moduleDesc = serviceRef.getBundleDescriptor().getModuleDescriptor(); if( serviceRef.hasWsdlFile() ) { String wsdlFileUri = serviceRef.getWsdlFileUri(); File tmpFile = new File(wsdlFileUri); if(tmpFile.isAbsolute()) { serviceRef.setWsdlFileUrl(tmpFile.toURI().toURL()); } else { serviceRef.setWsdlFileUrl(new URL(wsdlFileUri)); } else { serviceRef.setWsdlFileUrl(wsdlFileUrl); Class serviceInterfaceClass = classloader.loadClass(serviceRef.getServiceInterface()); WSDolSupport dolSupport = Globals.getDefaultHabitat().getService(WSDolSupport.class); if (dolSupport!=null) { if( serviceRef.hasMappingFile() ) { String mappingFileUri = serviceRef.getMappingFileUri(); File mappingFile = new File(getModuleLocation(moduleDesc), mappingFileUri); serviceRef.setMappingFile(mappingFile); DOLUtils.getDefaultLogger().log (Level.SEVERE, "enterprise.deployment.backend.invalidWsdlURL",
public final void addServiceReferenceDescriptor( ServiceReferenceDescriptor serviceRef) { try { ServiceReferenceDescriptor existing = this.getServiceReferenceByName(serviceRef.getName()); for(InjectionTarget next : serviceRef.getInjectionTargets()) { existing.addInjectionTarget(next); } } catch(IllegalArgumentException e) { if (env != null) env.addServiceReferenceDescriptor(serviceRef); else serviceReferences.add(serviceRef); serviceRef.setBundleDescriptor(getEjbBundleDescriptor()); } }
private void parseResources(ServiceReferenceDescriptor serviceRef, JndiNameEnvironment env, AppResources appResources) { String name = getLogicalJNDIName(serviceRef.getName(), env); if (serviceRef.hasLookupName()) appResources.store(new AppResource(name, serviceRef.getLookupName(), serviceRef.getType(), env, true)); else appResources.storeInNamespace(name, env); }
boolean isConflict(ServiceReferenceDescriptor other) { return (getName().equals(other.getName())) && (!( DOLUtils.equals(getServiceInterface(), other.getServiceInterface()) && DOLUtils.equals(getWsdlFileUri(), other.getWsdlFileUri()) && DOLUtils.equals(getMappingFileUri(), other.getMappingFileUri()) //XXX need to compare the following // handler // handle-chains // port-component-info ) || isConflictResourceGroup(other)); } }
aRef = new ServiceReferenceDescriptor(); aRef.setName(serviceRefName); container.addServiceReferenceDescriptor(aRef); aRef.getOtherAnnotations(); if (oa == null) aRef.setOtherAnnotations(otherAnnotations); else { for (Map.Entry<Class<? extends Annotation>, Annotation> entry : if (!ok(aRef.getWsdlFileUri()) && ok(annotation.wsdlLocation())) aRef.setWsdlFileUri(annotation.wsdlLocation()); if (!aRef.hasMtomEnabled() && mtom != null) { aRef.setMtomEnabled(mtom.enabled()); aRef.setMtomThreshold(mtom.threshold()); if (aRef.getAddressing() == null && addressing != null) { aRef.setAddressing(new com.sun.enterprise.deployment.Addressing( addressing.enabled(), addressing.required(), if (aRef.getRespectBinding() == null && respectBinding != null) { aRef.setRespectBinding( new com.sun.enterprise.deployment.RespectBinding( respectBinding.enabled())); if (!ok(aRef.getMappedName()) && ok(annotation.mappedName())) aRef.setMappedName(annotation.mappedName());
writeDisplayableComponentInfo(serviceRefNode, descriptor); appendTextChild(serviceRefNode, WebServicesTagNames.SERVICE_REF_NAME, descriptor.getName()); appendTextChild(serviceRefNode, WebServicesTagNames.SERVICE_INTERFACE, descriptor.getServiceInterface()); appendTextChild(serviceRefNode, TagNames.LOOKUP_NAME, descriptor.getLookupName()); appendTextChild(serviceRefNode, WebServicesTagNames.SERVICE_REF_TYPE, descriptor.getInjectionTargetType()); appendTextChild(serviceRefNode, WebServicesTagNames.WSDL_FILE, descriptor.getWsdlFileUri()); appendTextChild(serviceRefNode, WebServicesTagNames.JAXRPC_MAPPING_FILE, descriptor.getMappingFileUri()); if( descriptor.hasServiceName() ) { QName serviceName = descriptor.getServiceName(); appendQNameChild(WebServicesTagNames.SERVICE_QNAME, serviceRefNode, serviceName.getNamespaceURI(), serviceName.getLocalPart(), descriptor.getServiceNameNamespacePrefix()); for(Iterator iter = descriptor.getPortsInfo().iterator(); iter.hasNext();) { ServiceRefPortInfo next = (ServiceRefPortInfo) iter.next(); WebServicesTagNames.ENABLE_MTOM, next.getMtomEnabled()); if (descriptor.getAddressing() != null) { AddressingNode adNode = new AddressingNode();
serviceRef.getName()); Set portsInfo = serviceRef.getPortsInfo(); for(Iterator iter = portsInfo.iterator(); iter.hasNext();) { ServiceRefPortInfo next = (ServiceRefPortInfo) iter.next(); for(Iterator iter = serviceRef.getCallProperties().iterator(); iter.hasNext();) { NameValuePairDescriptor next = (NameValuePairDescriptor)iter.next(); if( serviceRef.hasWsdlOverride() ) { URL wsdlOverride = serviceRef.getWsdlOverride(); appendTextChild(serviceRefNode, WebServicesTagNames.WSDL_OVERRIDE, wsdlOverride.toExternalForm()); serviceRef.getServiceImplClassName()); if( serviceRef.hasServiceName() ) { Node serviceNameNode = appendChild (serviceRefNode, WebServicesTagNames.SERVICE_QNAME); QName serviceName = serviceRef.getServiceName(); appendTextChild(serviceNameNode, WebServicesTagNames.NAMESPACE_URI,
if( desc.hasLookupName()) { return iContext.lookup(desc.getLookupName()); serviceInterfaceClass = cl.loadClass(desc.getServiceInterface()); if( desc.hasGeneratedServiceInterface() || desc.hasWsdlFile() ) { String serviceImplName = desc.getServiceImplClassName(); if(serviceImplName != null) { Class serviceImplClass = cl.loadClass(serviceImplName); if (desc.isInjectable()) { InjectionTarget target = desc.getInjectionTargets().iterator().next(); Class serviceType = null; if (target.isFieldInjectable()) { desc.getServiceName()); jaxwsDelegate = new JAXWSServiceDelegate(desc, svc, cl); if( desc.hasHandlers() ) { if (injValue!=null && desc.getInjectionTargetType()!=null) { Class requestedPortType = service.getClass().getClassLoader().loadClass(desc.getInjectionTargetType()); ArrayList<WebServiceFeature> wsFeatures = getWebServiceFeatures(desc); if (wsFeatures.size() >0) { QName serviceName = desc.getServiceName(); if( serviceName == null ) {
super.accept(serviceRef); try { ClassLoader clr = serviceRef.getBundleDescriptor().getClassLoader(); Class serviceInterface = clr.loadClass(serviceRef.getServiceInterface()); for(Iterator ports = serviceRef.getPortsInfo().iterator(); ports.hasNext();) { ServiceRefPortInfo portInfo = (ServiceRefPortInfo) ports.next(); if (serviceRef.getBundleDescriptor().getModuleType().equals(XModuleType.CAR)) { wsdlOverride = serviceRef.getWsdlOverride(); if (wsdlOverride!=null) { wsdlOverriden = true; serviceRef.setWsdlOverride(linkedPortComponent.getWebService().getWsdlFileUrl()); if( serviceRef.hasGeneratedServiceInterface() ) { if( serviceRef.hasWsdlFile() && serviceRef.hasMappingFile() ) { codegenRequired = true; } else { throw new Exception ("Deployment error for service-ref " + serviceRef.getName() + ".\nService references with generated service " + "interface must include WSDL and mapping information."); if( serviceRef.hasWsdlFile() ) { if( serviceRef.hasMappingFile() ) { codegenRequired = true; } else {
public void accept(ServiceReferenceDescriptor serviceRef) { if( serviceRef.hasWsdlFile() ) { String wsdlFileUri = serviceRef.getWsdlFileUri(); "enterprise.deployment.util.wsdlfilenotfound", "wsdl file {0} does not exist for service-ref {1}", new Object[] {wsdlFileUri, serviceRef.getName()}); DOLUtils.getDefaultLogger().warning(msg); "enterprise.deployment.util.wsdlfilenotreadable", "wsdl file {0} for service-ref {1} cannot be opened : {2}", new Object[] {wsdlFileUri, serviceRef.getName(), ioe.getMessage()}); DOLUtils.getDefaultLogger().warning(msg); if( serviceRef.hasMappingFile() ) { String mappingFileUri = serviceRef.getMappingFileUri(); try { InputStream mappingFileInputStream = "enterprise.deployment.util.mappingfilenotfound", "mapping file {0} does not exist for service-ref {1}", new Object[] {mappingFileUri, serviceRef.getName()}); DOLUtils.getDefaultLogger().severe(msg); throw new RuntimeException(msg); "enterprise.deployment.util.mappingfilenotreadable", "mapping file {0} for service-ref {1} cannot be opened : {2}", new Object[] {mappingFileUri, serviceRef.getName(), ioe.getMessage()}); DOLUtils.getDefaultLogger().severe(msg); throw new RuntimeException(ioe);
Service service = null; if( serviceRef.hasServiceName() ) { while( serviceIter.hasNext() ) { Service next = (Service) serviceIter.next(); if( next.getName().equals(serviceRef.getServiceName()) ) { service = next; break; ("Service " + serviceRef.getServiceName() + " for service-ref " + serviceRef.getName() + " not found"); if( serviceIter.hasNext() ) { throw new IllegalStateException ("service ref " + serviceRef.getName() + " must specify" + " service name since its wsdl declares multiple" + " services"); serviceRef.setServiceNamespaceUri(sName.getNamespaceURI()); serviceRef.setServiceLocalPart(sName.getLocalPart()); } else { throw new IllegalStateException ("service ref " + serviceRef.getName() + " WSDL must " + "define at least one Service"); serviceRef.setServiceImplClassName(serviceImpl);
serviceRef.getName()); if (serviceRef.hasWsdlOverride()) { URL wsdlOverride = serviceRef.getWsdlOverride(); appendTextChild(serviceRefNode, WLWebServicesTagNames.SERVICE_REFERENCE_WSDL_URL, wsdlOverride.toExternalForm()); for (Iterator iter = serviceRef.getCallProperties().iterator(); iter.hasNext();) { NameValuePairDescriptor next = (NameValuePairDescriptor) iter.next(); new WLServiceRefPortInfoRuntimeNode(); Set portsInfo = serviceRef.getPortsInfo(); for (Iterator iter = portsInfo.iterator(); iter.hasNext();) { ServiceRefPortInfo next = (ServiceRefPortInfo) iter.next();
String qname = element.getQName(); if (WebServicesTagNames.SERVICE_ENDPOINT_INTERFACE.equals(qname)) { portInfo = getServiceReferenceDescriptor().getPortInfoBySEI(value); if( portInfo == null ) { portInfo = getServiceReferenceDescriptor(). addContainerManagedPort(value); if( namespaceUri == null) { logger.log(Level.SEVERE, LogUtils.INVALID_DESC_MAPPING_FAILURE, new Object[] { prefix , getServiceReferenceDescriptor().getName()}); } else { QName serviceName = new QName(namespaceUri, localPart); getServiceReferenceDescriptor().setServiceName (serviceName, prefix);
public java.lang.Object run() throws Exception { URL retVal; if(serviceRef.hasWsdlOverride()) { retVal = serviceRef.getWsdlOverride(); } else { if(serviceRef.getWsdlFileUrl() != null) { retVal = serviceRef.getWsdlFileUrl(); } else { if(serviceRef.getWsdlFileUri().startsWith("http")) { retVal = new URL(serviceRef.getWsdlFileUri()); } else { if ((serviceRef.getWsdlFileUri().startsWith("WEB-INF")|| serviceRef.getWsdlFileUri().startsWith("META-INF"))) { ServerEnvironment se = wscImpl.getHabitat().getByContract(ServerEnvironment.class); File appFile = new File(se.getApplicationRepositoryPath(),serviceRef.getBundleDescriptor().getApplication().getAppName()); if (appFile.exists()) { retVal = new File(appFile,serviceRef.getWsdlFileUri()).toURL(); } else { retVal = Thread.currentThread().getContextClassLoader().getResource(serviceRef.getWsdlFileUri()) ; retVal = new File(serviceRef.getWsdlFileUri()).toURL();
/** * writes all the runtime information for service references * * @param parent node to add the runtime xml info * @param the J2EE component containing service references */ public static void writeServiceReferences(Node parent, JndiNameEnvironment descriptor) { Iterator serviceRefs = descriptor.getServiceReferenceDescriptors().iterator(); if (serviceRefs.hasNext()) { ServiceRefNode serviceRefNode = new ServiceRefNode(); while (serviceRefs.hasNext()) { ServiceReferenceDescriptor next = (ServiceReferenceDescriptor) serviceRefs.next(); // Only write runtime service-ref entry if there IS // some runtime info... if( next.hasServiceImplClassName() || !next.getPortsInfo().isEmpty() || !next.getCallProperties().isEmpty() || next.hasWsdlOverride()) { serviceRefNode.writeDescriptor (parent, WebServicesTagNames.SERVICE_REF, next); } } } }
getPortInfoBySEI(runtimePortInfo.getServiceEndpointInterface()); existing = getPortInfoByPort(runtimePortInfo.getWsdlPort()); new Object[] {runtimePortInfo.getServiceEndpointInterface()})); addPortInfo(runtimePortInfo); } else { if( !existing.hasServiceEndpointInterface() ) {
if(DOLUtils.ejbType().equals(ref.getBundleDescriptor().getModuleType())) { EjbBundleDescriptor ejbBundle = (EjbBundleDescriptor) ref.getBundleDescriptor(); Iterator<? extends EjbDescriptor> ejbsIter = ejbBundle.getEjbs().iterator(); while(ejbsIter.hasNext()) { EjbDescriptor ejb = ejbsIter.next(); try { if(ejb.getServiceReferenceByName(ref.getName()) != null) { jndiContainer = ref.getBundleDescriptor();
/** * writes all the runtime information for service references * * @param parent node to add the runtime xml info * @param descriptor the J2EE component containing service references */ public static void writeServiceReferences(Node parent, JndiNameEnvironment descriptor) { Iterator serviceRefs = descriptor.getServiceReferenceDescriptors().iterator(); if (serviceRefs.hasNext()) { WLServiceRefNode serviceRefNode = new WLServiceRefNode(); while (serviceRefs.hasNext()) { ServiceReferenceDescriptor next = (ServiceReferenceDescriptor) serviceRefs.next(); // Only write runtime service-ref entry if there IS // some runtime info... if (!next.getPortsInfo().isEmpty() || !next.getCallProperties().isEmpty() || next.hasWsdlOverride()) { serviceRefNode.writeDescriptor (parent, WLWebServicesTagNames.SERVICE_REFERENCE_DESCRIPTION, next); } } } }
if(next.getMappedName() != null) { next.setName(next.getMappedName());