/* */ public UnifiedMetaData buildMetaData(ArchiveDeployment dep)
/* */ {
/* 73 */ this.log.debug("START buildMetaData: [name=" + dep.getCanonicalName() + "]");
/* */ try
/* */ {
/* 77 */ UnifiedMetaData wsMetaData = new UnifiedMetaData(dep.getRootFile());
/* 78 */ wsMetaData.setDeploymentName(dep.getCanonicalName());
/* 79 */ ClassLoader runtimeClassLoader = dep.getRuntimeClassLoader();
/* 80 */ if (null == runtimeClassLoader)
/* 81 */ throw new IllegalArgumentException("Runtime loader cannot be null");
/* 82 */ wsMetaData.setClassLoader(runtimeClassLoader);
/* */
/* 84 */ WebservicesMetaData jaxrpcMapping = (WebservicesMetaData)dep.getAttachment(WebservicesMetaData.class);
/* 85 */ WebserviceDescriptionMetaData[] wsDescriptionArr = jaxrpcMapping.getWebserviceDescriptions();
/* 86 */ for (WebserviceDescriptionMetaData wsdMetaData : wsDescriptionArr)
/* */ {
/* 88 */ ServiceMetaData serviceMetaData = new ServiceMetaData(wsMetaData, null);
/* 89 */ serviceMetaData.setWebserviceDescriptionName(wsdMetaData.getWebserviceDescriptionName());
/* 90 */ wsMetaData.addService(serviceMetaData);
/* */
/* 93 */ String wsdlFile = wsdMetaData.getWsdlFile();
/* 94 */ serviceMetaData.setWsdlFile(wsdlFile);
/* */
/* 97 */ WSDLDefinitions wsdlDefinitions = serviceMetaData.getWsdlDefinitions();
/* */
/* 100 */ String mappingFile = wsdMetaData.getJaxrpcMappingFile();
/* 101 */ serviceMetaData.setMappingLocation(dep.getMetaDataFileURL(mappingFile));
/* 102 */ JavaWsdlMapping javaWsdlMapping = serviceMetaData.getJavaWsdlMapping();
/* 103 */ if (javaWsdlMapping == null) {
/* 104 */ throw new WSException("jaxrpc-mapping-file not configured from webservices.xml");
/* */ }
/* */
/* 107 */ setupTypesMetaData(serviceMetaData);
/* */
/* 110 */ WSSecurityConfigFactory wsseConfFactory = WSSecurityConfigFactory.newInstance();
/* 111 */ WSSecurityConfiguration securityConfiguration = wsseConfFactory.createConfiguration(wsMetaData.getRootFile(), WSSecurityOMFactory.SERVER_RESOURCE_NAME);
/* 112 */ serviceMetaData.setSecurityConfiguration(securityConfiguration);
/* */
/* 115 */ PortComponentMetaData[] pcMetaDataArr = wsdMetaData.getPortComponents();
/* 116 */ for (PortComponentMetaData pcMetaData : pcMetaDataArr)
/* */ {
/* 118 */ String linkName = pcMetaData.getEjbLink() != null ? pcMetaData.getEjbLink() : pcMetaData.getServletLink();
/* 119 */ QName portName = pcMetaData.getWsdlPort();
/* */
/* 123 */ if (portName.getNamespaceURI().length() == 0)
/* */ {
/* 125 */ String nsURI = wsdlDefinitions.getTargetNamespace();
/* 126 */ portName = new QName(nsURI, portName.getLocalPart());
/* 127 */ this.log.warn("Adding wsdl targetNamespace to: " + portName);
/* 128 */ pcMetaData.setWsdlPort(portName);
/* */ }
/* */
/* 131 */ WSDLEndpoint wsdlEndpoint = getWsdlEndpoint(wsdlDefinitions, portName);
/* 132 */ if (wsdlEndpoint == null) {
/* 133 */ throw new WSException("Cannot find port in wsdl: " + portName);
/* */ }
/* */
/* 136 */ serviceMetaData.setServiceName(wsdlEndpoint.getWsdlService().getName());
/* 137 */ QName interfaceQName = wsdlEndpoint.getInterface().getName();
/* */
/* 139 */ Endpoint ep = dep.getService().getEndpointByName(linkName);
/* 140 */ ServerEndpointMetaData sepMetaData = new ServerEndpointMetaData(serviceMetaData, ep, portName, interfaceQName, EndpointMetaData.Type.JAXRPC);
/* 141 */ sepMetaData.setPortComponentName(pcMetaData.getPortComponentName());
/* 142 */ sepMetaData.setLinkName(linkName);
/* 143 */ serviceMetaData.addEndpoint(sepMetaData);
/* */
/* 145 */ initEndpointEncodingStyle(sepMetaData);
/* */
/* 147 */ initEndpointAddress(dep, sepMetaData);
/* */
/* 149 */ EJBArchiveMetaData apMetaData = (EJBArchiveMetaData)dep.getAttachment(EJBArchiveMetaData.class);
/* 150 */ JSEArchiveMetaData webMetaData = (JSEArchiveMetaData)dep.getAttachment(JSEArchiveMetaData.class);
/* 151 */ if (apMetaData != null)
/* */ {
/* 153 */ wsMetaData.setSecurityDomain(apMetaData.getSecurityDomain());
/* */
/* 156 */ String wsdName = serviceMetaData.getWebserviceDescriptionName();
/* 157 */ String wsdlPublishLocation = apMetaData.getWsdlPublishLocationByName(wsdName);
/* 158 */ serviceMetaData.setWsdlPublishLocation(wsdlPublishLocation);
/* */
/* 161 */ EJBMetaData bmd = apMetaData.getBeanByEjbName(linkName);
/* 162 */ if (bmd == null) {
/* 163 */ throw new WSException("Cannot obtain UnifiedBeanMetaData for: " + linkName);
/* */ }
/* 165 */ String configName = apMetaData.getConfigName();
/* 166 */ String configFile = apMetaData.getConfigFile();
/* 167 */ if ((configName != null) || (configFile != null)) {
/* 168 */ sepMetaData.setConfigName(configName, configFile);
/* */ }
/* 170 */ EJBSecurityMetaData smd = bmd.getSecurityMetaData();
/* 171 */ if (smd != null)
/* */ {
/* 173 */ String authMethod = smd.getAuthMethod();
/* 174 */ sepMetaData.setAuthMethod(authMethod);
/* 175 */ String transportGuarantee = smd.getTransportGuarantee();
/* 176 */ sepMetaData.setTransportGuarantee(transportGuarantee);
/* 177 */ Boolean secureWSDLAccess = Boolean.valueOf(smd.getSecureWSDLAccess());
/* 178 */ sepMetaData.setSecureWSDLAccess(secureWSDLAccess.booleanValue());
/* */ }
/* */ }
/* 181 */ else if (webMetaData != null)
/* */ {
/* 183 */ wsMetaData.setSecurityDomain(webMetaData.getSecurityDomain());
/* */
/* 185 */ String targetBean = (String)webMetaData.getServletClassNames().get(linkName);
/* 186 */ sepMetaData.setServiceEndpointImplName(targetBean);
/* */
/* 189 */ String wsdName = serviceMetaData.getWebserviceDescriptionName();