This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/tomcat.git
The following commit(s) were added to refs/heads/main by this push: new 1ee2336fce Remove JAX-RPC support. Jakarta EE removed it in Jakarta EE 9. 1ee2336fce is described below commit 1ee2336fce09d3eb2abcc4b05cd1c184f1c892b5 Author: Mark Thomas <ma...@apache.org> AuthorDate: Fri Jan 6 16:19:10 2023 +0000 Remove JAX-RPC support. Jakarta EE removed it in Jakarta EE 9. --- build.properties.default | 18 -- build.xml | 21 -- .../factory/webservices/LocalStrings.properties | 16 - .../factory/webservices/LocalStrings_de.properties | 16 - .../factory/webservices/LocalStrings_fr.properties | 16 - .../factory/webservices/LocalStrings_ja.properties | 16 - .../factory/webservices/LocalStrings_ko.properties | 16 - .../webservices/LocalStrings_zh_CN.properties | 16 - .../naming/factory/webservices/ServiceProxy.java | 148 --------- .../factory/webservices/ServiceRefFactory.java | 353 --------------------- res/ide-support/eclipse/eclipse.classpath | 2 - res/ide-support/idea/tomcat.iml | 18 -- res/ide-support/netbeans/project.xml | 2 +- webapps/docs/changelog.xml | 4 + 14 files changed, 5 insertions(+), 657 deletions(-) diff --git a/build.properties.default b/build.properties.default index d0c86a291a..cd91ba9208 100644 --- a/build.properties.default +++ b/build.properties.default @@ -115,24 +115,6 @@ base-maven.loc=https://repo.maven.apache.org/maven2 # Mirror, was used when there were problems with the main SF downloads site # base-sf.loc=https://sunet.dl.sourceforge.net -# ----- Webservices - JAX RPC ----- -jaxrpc-lib.version=1.1-rc4 -jaxrpc-lib.checksum.enabled=true -jaxrpc-lib.checksum.algorithm=MD5|SHA-1 -jaxrpc-lib.checksum.value=4bebba22a4cdb9f68e16c45129770333|fe9371d33dc3e1646d4d13bde19614283eb998b1 -jaxrpc-lib.home=${base.path}/jaxrpc-${jaxrpc-lib.version} -jaxrpc-lib.jar=${jaxrpc-lib.home}/geronimo-spec-jaxrpc-${jaxrpc-lib.version}.jar -jaxrpc-lib.loc=${base-maven.loc}/geronimo-spec/geronimo-spec-jaxrpc/${jaxrpc-lib.version}/geronimo-spec-jaxrpc-${jaxrpc-lib.version}.jar - -# ----- Webservices - WSDL4J ----- -wsdl4j-lib.version=1.6.3 -wsdl4j-lib.checksum.enabled=true -wsdl4j-lib.checksum.algorithm=MD5|SHA-1 -wsdl4j-lib.checksum.value=cfc28d89625c5e88589aec7a9aee0208|6d106a6845a3d3477a1560008479312888e94f2f -wsdl4j-lib.home=${base.path}/wsdl4j-${wsdl4j-lib.version} -wsdl4j-lib.jar=${wsdl4j-lib.home}/wsdl4j-${wsdl4j-lib.version}.jar -wsdl4j-lib.loc=${base-maven.loc}/wsdl4j/wsdl4j/${wsdl4j-lib.version}/wsdl4j-${wsdl4j-lib.version}.jar - # ----- Eclipse JDT, version 4.7 or later -----# # See https://cwiki.apache.org/confluence/display/TOMCAT/Managing+Tomcat%27s+Dependency+on+the+Eclipse+JDT+Core+Batch+Compiler # diff --git a/build.xml b/build.xml index a3fce38255..8f3aa69513 100644 --- a/build.xml +++ b/build.xml @@ -219,8 +219,6 @@ <path id="compile.classpath"> <pathelement location="${bnd.jar}"/> <pathelement location="${jdt.jar}"/> - <pathelement location="${jaxrpc-lib.jar}"/> - <pathelement location="${wsdl4j-lib.jar}"/> <pathelement location="${migration-lib.jar}"/> </path> @@ -614,7 +612,6 @@ <exclude name="org/apache/naming/factory/ResourceLinkFactory*" /> <exclude name="org/apache/naming/factory/SendMailFactory*" /> <exclude name="org/apache/naming/factory/TransactionFactory*" /> - <exclude name="org/apache/naming/factory/webservices/*" /> <exclude name="org/apache/naming/LookupRef*" /> <exclude name="org/apache/naming/NameParserImpl*" /> <exclude name="org/apache/naming/NamingContextBindingsEnumeration*" /> @@ -3288,24 +3285,6 @@ asf.ldap.username=${release.asfusername} <param name="checksum.value" value="${jdt.checksum.value}"/> </antcall> - <!-- Download WS API --> - <antcall target="downloadfile"> - <param name="sourcefile" value="${jaxrpc-lib.loc}"/> - <param name="destfile" value="${jaxrpc-lib.jar}"/> - <param name="destdir" value="${jaxrpc-lib.home}"/> - <param name="checksum.enabled" value="${jaxrpc-lib.checksum.enabled}"/> - <param name="checksum.algorithm" value="${jaxrpc-lib.checksum.algorithm}"/> - <param name="checksum.value" value="${jaxrpc-lib.checksum.value}"/> - </antcall> - <antcall target="downloadfile"> - <param name="sourcefile" value="${wsdl4j-lib.loc}"/> - <param name="destfile" value="${wsdl4j-lib.jar}"/> - <param name="destdir" value="${wsdl4j-lib.home}"/> - <param name="checksum.enabled" value="${wsdl4j-lib.checksum.enabled}"/> - <param name="checksum.algorithm" value="${wsdl4j-lib.checksum.algorithm}"/> - <param name="checksum.value" value="${wsdl4j-lib.checksum.value}"/> - </antcall> - <!-- Tomcat Migration Tool for Jakarta EE --> <antcall target="downloadfile"> <param name="sourcefile" value="${migration-lib.loc}"/> diff --git a/java/org/apache/naming/factory/webservices/LocalStrings.properties b/java/org/apache/naming/factory/webservices/LocalStrings.properties deleted file mode 100644 index 0c5d17eda4..0000000000 --- a/java/org/apache/naming/factory/webservices/LocalStrings.properties +++ /dev/null @@ -1,16 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -serviceProxy.portNotFound=Port-component-ref [{0}] not found diff --git a/java/org/apache/naming/factory/webservices/LocalStrings_de.properties b/java/org/apache/naming/factory/webservices/LocalStrings_de.properties deleted file mode 100644 index a1f6ad308c..0000000000 --- a/java/org/apache/naming/factory/webservices/LocalStrings_de.properties +++ /dev/null @@ -1,16 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -serviceProxy.portNotFound=Kein Port mit dem Namen [{0}] gefunden diff --git a/java/org/apache/naming/factory/webservices/LocalStrings_fr.properties b/java/org/apache/naming/factory/webservices/LocalStrings_fr.properties deleted file mode 100644 index 94053ed884..0000000000 --- a/java/org/apache/naming/factory/webservices/LocalStrings_fr.properties +++ /dev/null @@ -1,16 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -serviceProxy.portNotFound=Le port-component-ref [{0}] n''a pas été trouvé diff --git a/java/org/apache/naming/factory/webservices/LocalStrings_ja.properties b/java/org/apache/naming/factory/webservices/LocalStrings_ja.properties deleted file mode 100644 index 74c563de08..0000000000 --- a/java/org/apache/naming/factory/webservices/LocalStrings_ja.properties +++ /dev/null @@ -1,16 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -serviceProxy.portNotFound=port-component-ref [{0}] が見つかりません diff --git a/java/org/apache/naming/factory/webservices/LocalStrings_ko.properties b/java/org/apache/naming/factory/webservices/LocalStrings_ko.properties deleted file mode 100644 index cbb7afceb5..0000000000 --- a/java/org/apache/naming/factory/webservices/LocalStrings_ko.properties +++ /dev/null @@ -1,16 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -serviceProxy.portNotFound=Port-component-ref [{0}]을(를) 찾을 수 없습니다. diff --git a/java/org/apache/naming/factory/webservices/LocalStrings_zh_CN.properties b/java/org/apache/naming/factory/webservices/LocalStrings_zh_CN.properties deleted file mode 100644 index 08d32485b0..0000000000 --- a/java/org/apache/naming/factory/webservices/LocalStrings_zh_CN.properties +++ /dev/null @@ -1,16 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -serviceProxy.portNotFound=找不到端口组件ref[{0}] diff --git a/java/org/apache/naming/factory/webservices/ServiceProxy.java b/java/org/apache/naming/factory/webservices/ServiceProxy.java deleted file mode 100644 index d6c03b1cef..0000000000 --- a/java/org/apache/naming/factory/webservices/ServiceProxy.java +++ /dev/null @@ -1,148 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.naming.factory.webservices; - -import java.lang.reflect.InvocationHandler; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.rmi.Remote; -import java.util.Hashtable; -import java.util.Iterator; - -import javax.xml.namespace.QName; -import javax.xml.rpc.Service; -import javax.xml.rpc.ServiceException; - -import org.apache.naming.StringManager; - -/** - * Object proxy for Web Services. - * - * @author Fabien Carrion - */ -public class ServiceProxy implements InvocationHandler { - - private static final StringManager sm = StringManager.getManager(ServiceProxy.class); - - /** - * Service object. - * used for delegation - */ - private final Service service; - - /** - * changing behavior to method : Service.getPort(QName, Class) - */ - private static Method portQNameClass = null; - - /** - * changing behavior to method : Service.getPort(Class) - */ - private static Method portClass = null; - - /** - * PortComponentRef list - */ - private Hashtable<String,QName> portComponentRef = null; - - /** - * Constructs a new ServiceProxy wrapping given Service instance. - * @param service the wrapped Service instance - * @throws ServiceException should be never thrown - */ - public ServiceProxy(Service service) throws ServiceException { - this.service = service; - try { - portQNameClass = Service.class.getDeclaredMethod("getPort", new Class[]{QName.class, Class.class}); - portClass = Service.class.getDeclaredMethod("getPort", new Class[]{Class.class}); - } catch (Exception e) { - throw new ServiceException(e); - } - } - - /** - * @see InvocationHandler#invoke(Object, Method, Object[]) - */ - @Override - public Object invoke(Object proxy, Method method, Object[] args) - throws Throwable { - - if (portQNameClass.equals(method)) { - return getProxyPortQNameClass(args); - } - - if (portClass.equals(method)) { - return getProxyPortClass(args); - } - - try { - return method.invoke(service, args); - } catch (InvocationTargetException ite) { - throw ite.getTargetException(); - } - } - - /** - * @param args Method call arguments - * @return Returns the correct Port - * @throws ServiceException if port's QName is an unknown Port (not defined in WSDL). - */ - private Object getProxyPortQNameClass(Object[] args) throws ServiceException { - QName name = (QName) args[0]; - String nameString = name.getLocalPart(); - Class<?> serviceendpointClass = (Class<?>) args[1]; - - for (@SuppressWarnings("unchecked") Iterator<QName> ports = service.getPorts(); ports.hasNext();) { - QName portName = ports.next(); - String portnameString = portName.getLocalPart(); - if (portnameString.equals(nameString)) { - return service.getPort(name, serviceendpointClass); - } - } - - // no ports have been found - throw new ServiceException(sm.getString("serviceProxy.portNotFound", name)); - } - - /** - * @param portComponentRef List - */ - public void setPortComponentRef(Hashtable<String,QName> portComponentRef) { - this.portComponentRef = portComponentRef; - } - - /** - * @param args Method call arguments - * @return Returns the correct Port - * @throws ServiceException if port's QName is an unknown Port - */ - private Remote getProxyPortClass(Object[] args) throws ServiceException { - Class<?> serviceendpointClass = (Class<?>) args[0]; - - if (this.portComponentRef == null) { - return service.getPort(serviceendpointClass); - } - - QName portname = this.portComponentRef.get(serviceendpointClass.getName()); - if (portname != null) { - return service.getPort(portname, serviceendpointClass); - } else { - return service.getPort(serviceendpointClass); - } - } - -} diff --git a/java/org/apache/naming/factory/webservices/ServiceRefFactory.java b/java/org/apache/naming/factory/webservices/ServiceRefFactory.java deleted file mode 100644 index d58933c8ce..0000000000 --- a/java/org/apache/naming/factory/webservices/ServiceRefFactory.java +++ /dev/null @@ -1,353 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.naming.factory.webservices; - -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.lang.reflect.Proxy; -import java.net.URI; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Enumeration; -import java.util.Hashtable; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Properties; - -import javax.naming.Context; -import javax.naming.Name; -import javax.naming.NamingException; -import javax.naming.RefAddr; -import javax.naming.spi.ObjectFactory; -import javax.wsdl.Definition; -import javax.wsdl.Port; -import javax.wsdl.extensions.ExtensibilityElement; -import javax.wsdl.extensions.soap.SOAPAddress; -import javax.wsdl.factory.WSDLFactory; -import javax.wsdl.xml.WSDLReader; -import javax.xml.namespace.QName; -import javax.xml.rpc.Service; -import javax.xml.rpc.ServiceFactory; -import javax.xml.rpc.handler.Handler; -import javax.xml.rpc.handler.HandlerChain; -import javax.xml.rpc.handler.HandlerInfo; -import javax.xml.rpc.handler.HandlerRegistry; - -import org.apache.naming.HandlerRef; -import org.apache.naming.ServiceRef; - -/** - * Object factory for Web Services. - * - * @author Fabien Carrion - */ -public class ServiceRefFactory implements ObjectFactory { - - /** - * Create a new serviceref instance. - * - * @param obj The reference object describing the webservice - */ - @Override - public Object getObjectInstance(Object obj, Name name, Context nameCtx, Hashtable<?,?> environment) - throws Exception { - - if (obj instanceof ServiceRef) { - ServiceRef ref = (ServiceRef) obj; - - // ClassLoader - ClassLoader tcl = Thread.currentThread().getContextClassLoader(); - if (tcl == null) { - tcl = this.getClass().getClassLoader(); - } - ServiceFactory factory = ServiceFactory.newInstance(); - javax.xml.rpc.Service service = null; - - // Service Interface - RefAddr tmp = ref.get(ServiceRef.SERVICE_INTERFACE); - String serviceInterface = null; - if (tmp != null) { - serviceInterface = (String) tmp.getContent(); - } - - // WSDL - tmp = ref.get(ServiceRef.WSDL); - String wsdlRefAddr = null; - if (tmp != null) { - wsdlRefAddr = (String) tmp.getContent(); - } - - // PortComponent - Hashtable<String,QName> portComponentRef = new Hashtable<>(); - - // Create QName object - QName serviceQname = null; - tmp = ref.get(ServiceRef.SERVICE_LOCAL_PART); - if (tmp != null) { - String serviceLocalPart = (String) tmp.getContent(); - tmp = ref.get(ServiceRef.SERVICE_NAMESPACE); - if (tmp == null) { - serviceQname = new QName(serviceLocalPart); - } else { - String serviceNamespace = (String) tmp.getContent(); - serviceQname = new QName(serviceNamespace, serviceLocalPart); - } - } - Class<?> serviceInterfaceClass = null; - - // Create service object - if (serviceInterface == null) { - if (serviceQname == null) { - throw new NamingException("Could not create service-ref instance"); - } - try { - if (wsdlRefAddr == null) { - service = factory.createService( serviceQname ); - } else { - service = factory.createService(new URI(wsdlRefAddr).toURL(), serviceQname); - } - } catch (Exception e) { - NamingException ex = new NamingException("Could not create service"); - ex.initCause(e); - throw ex; - } - } else { - // Loading service Interface - try { - serviceInterfaceClass = tcl.loadClass(serviceInterface); - } catch(ClassNotFoundException e) { - NamingException ex = new NamingException("Could not load service Interface"); - ex.initCause(e); - throw ex; - } - if (serviceInterfaceClass == null) { - throw new NamingException("Could not load service Interface"); - } - try { - if (wsdlRefAddr == null) { - if (!Service.class.isAssignableFrom(serviceInterfaceClass)) { - throw new NamingException("service Interface should extend javax.xml.rpc.Service"); - } - service = factory.loadService(serviceInterfaceClass); - } else { - service = factory.loadService( - new URI(wsdlRefAddr).toURL(), serviceInterfaceClass, new Properties()); - } - } catch (Exception e) { - NamingException ex = new NamingException("Could not create service"); - ex.initCause(e); - throw ex; - } - } - if (service == null) { - throw new NamingException("Cannot create service object"); - } - serviceQname = service.getServiceName(); - serviceInterfaceClass = service.getClass(); - if (wsdlRefAddr != null) { - try { - WSDLFactory wsdlfactory = WSDLFactory.newInstance(); - WSDLReader reader = wsdlfactory.newWSDLReader(); - reader.setFeature("javax.wsdl.importDocuments", true); - Definition def = reader.readWSDL(new URI(wsdlRefAddr).toURL().toExternalForm()); - - javax.wsdl.Service wsdlservice = def.getService(serviceQname); - @SuppressWarnings("unchecked") // Can't change the API - Map<String,?> ports = wsdlservice.getPorts(); - Method m = serviceInterfaceClass.getMethod("setEndpointAddress", - new Class[] { java.lang.String.class, java.lang.String.class }); - for (String portName : ports.keySet()) { - Port port = wsdlservice.getPort(portName); - String endpoint = getSOAPLocation(port); - m.invoke(service, new Object[]{port.getName(), endpoint}); - portComponentRef.put(endpoint, new QName(port.getName())); - } - } catch (Exception e) { - if (e instanceof InvocationTargetException) { - Throwable cause = e.getCause(); - if (cause instanceof ThreadDeath) { - throw (ThreadDeath) cause; - } - if (cause instanceof VirtualMachineError) { - throw (VirtualMachineError) cause; - } - } - NamingException ex = new NamingException("Error while reading Wsdl File"); - ex.initCause(e); - throw ex; - } - } - - ServiceProxy proxy = new ServiceProxy(service); - - // Use port-component-ref - for (int i = 0; i < ref.size(); i++) { - if (ServiceRef.SERVICEENDPOINTINTERFACE.equals(ref.get(i).getType())) { - String serviceendpoint = ""; - String portlink = ""; - serviceendpoint = (String) ref.get(i).getContent(); - if (ServiceRef.PORTCOMPONENTLINK.equals(ref.get(i + 1).getType())) { - i++; - portlink = (String) ref.get(i).getContent(); - } - portComponentRef.put(serviceendpoint, new QName(portlink)); - - } - } - proxy.setPortComponentRef(portComponentRef); - - // Instantiate service with proxy class - Class<?>[] serviceInterfaces = serviceInterfaceClass.getInterfaces(); - - Class<?>[] interfaces = Arrays.copyOf(serviceInterfaces, serviceInterfaces.length + 1); - interfaces[interfaces.length - 1] = javax.xml.rpc.Service.class; - - Object proxyInstance = null; - try { - proxyInstance = Proxy.newProxyInstance(tcl, interfaces, proxy); - } catch (IllegalArgumentException e) { - proxyInstance = Proxy.newProxyInstance(tcl, serviceInterfaces, proxy); - } - - // Use handler - if (ref.getHandlersSize() > 0) { - - HandlerRegistry handlerRegistry = service.getHandlerRegistry(); - List<String> soaproles = new ArrayList<>(); - - while (ref.getHandlersSize() > 0) { - HandlerRef handlerRef = ref.getHandler(); - HandlerInfo handlerInfo = new HandlerInfo(); - - // Loading handler Class - tmp = handlerRef.get(HandlerRef.HANDLER_CLASS); - if ((tmp == null) || (tmp.getContent() == null)) { - break; - } - Class<?> handlerClass = null; - try { - handlerClass = tcl.loadClass((String) tmp.getContent()); - } catch(ClassNotFoundException e) { - break; - } - - // Load all data relative to the handler : SOAPHeaders, config init element, - // portNames to be set on - List<QName> headers = new ArrayList<>(); - Hashtable<String,String> config = new Hashtable<>(); - List<String> portNames = new ArrayList<>(); - for (int i = 0; i < handlerRef.size(); i++) { - if (HandlerRef.HANDLER_LOCALPART.equals(handlerRef.get(i).getType())) { - String localpart = ""; - String namespace = ""; - localpart = (String) handlerRef.get(i).getContent(); - if (HandlerRef.HANDLER_NAMESPACE.equals(handlerRef.get(i + 1).getType())) { - i++; - namespace = (String) handlerRef.get(i).getContent(); - } - QName header = new QName(namespace, localpart); - headers.add(header); - } else if (HandlerRef.HANDLER_PARAMNAME.equals(handlerRef.get(i).getType())) { - String paramName = ""; - String paramValue = ""; - paramName = (String) handlerRef.get(i).getContent(); - if (HandlerRef.HANDLER_PARAMVALUE.equals(handlerRef.get(i + 1).getType())) { - i++; - paramValue = (String) handlerRef.get(i).getContent(); - } - config.put(paramName, paramValue); - } else if (HandlerRef.HANDLER_SOAPROLE.equals(handlerRef.get(i).getType())) { - String soaprole = ""; - soaprole = (String) handlerRef.get(i).getContent(); - soaproles.add(soaprole); - } else if (HandlerRef.HANDLER_PORTNAME.equals(handlerRef.get(i).getType())) { - String portName = ""; - portName = (String) handlerRef.get(i).getContent(); - portNames.add(portName); - } - } - - // Set the handlers information - handlerInfo.setHandlerClass(handlerClass); - handlerInfo.setHeaders(headers.toArray(new QName[0])); - handlerInfo.setHandlerConfig(config); - - if (!portNames.isEmpty()) { - for (String portName : portNames) { - initHandlerChain(new QName(portName), handlerRegistry, - handlerInfo, soaproles); - } - } else { - Enumeration<QName> e = portComponentRef.elements(); - while(e.hasMoreElements()) { - initHandlerChain(e.nextElement(), handlerRegistry, handlerInfo, soaproles); - } - } - } - } - - return proxyInstance; - - } - - return null; - - } - - /** - * @param port analyzed port - * @return Returns the endpoint URL of the given Port - */ - private String getSOAPLocation(Port port) { - String endpoint = null; - @SuppressWarnings("unchecked") // Can't change the API - List<ExtensibilityElement> extensions = port.getExtensibilityElements(); - for (ExtensibilityElement ext : extensions) { - if (ext instanceof SOAPAddress) { - SOAPAddress addr = (SOAPAddress) ext; - endpoint = addr.getLocationURI(); - } - } - return endpoint; - } - - - private void initHandlerChain(QName portName, HandlerRegistry handlerRegistry, - HandlerInfo handlerInfo, List<String> soaprolesToAdd) { - HandlerChain handlerChain = (HandlerChain) handlerRegistry.getHandlerChain(portName); - @SuppressWarnings("unchecked") // Can't change the API - Iterator<Handler> iter = handlerChain.iterator(); - while (iter.hasNext()) { - Handler handler = iter.next(); - handler.init(handlerInfo); - } - String[] soaprolesRegistered = handlerChain.getRoles(); - String [] soaproles = new String[soaprolesRegistered.length + soaprolesToAdd.size()]; - int i; - for (i = 0;i < soaprolesRegistered.length; i++) { - soaproles[i] = soaprolesRegistered[i]; - } - for (int j = 0; j < soaprolesToAdd.size(); j++) { - soaproles[i+j] = soaprolesToAdd.get(j); - } - handlerChain.setRoles(soaproles); - handlerRegistry.setHandlerChain(portName, handlerChain); - } - - -} diff --git a/res/ide-support/eclipse/eclipse.classpath b/res/ide-support/eclipse/eclipse.classpath index 3cf7620958..73d3959c3d 100644 --- a/res/ide-support/eclipse/eclipse.classpath +++ b/res/ide-support/eclipse/eclipse.classpath @@ -22,8 +22,6 @@ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/> <classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/> <classpathentry kind="var" path="ANT_HOME/lib/ant.jar"/> - <classpathentry kind="var" path="TOMCAT_LIBS_BASE/jaxrpc-1.1-rc4/geronimo-spec-jaxrpc-1.1-rc4.jar"/> - <classpathentry kind="var" path="TOMCAT_LIBS_BASE/wsdl4j-1.6.3/wsdl4j-1.6.3.jar"/> <classpathentry kind="var" path="TOMCAT_LIBS_BASE/ecj-4.26/ecj-4.26.jar"/> <classpathentry kind="var" path="TOMCAT_LIBS_BASE/easymock-4.3/easymock-4.3.jar"/> <classpathentry kind="var" path="TOMCAT_LIBS_BASE/hamcrest-2.2/hamcrest-2.2.jar"/> diff --git a/res/ide-support/idea/tomcat.iml b/res/ide-support/idea/tomcat.iml index fc552adafc..dbb1ab35c1 100644 --- a/res/ide-support/idea/tomcat.iml +++ b/res/ide-support/idea/tomcat.iml @@ -47,24 +47,6 @@ <SOURCES /> </library> </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar://$TOMCAT_BUILD_LIBS$/jaxrpc-1.1-rc4/geronimo-spec-jaxrpc-1.1-rc4.jar!/" /> - </CLASSES> - <JAVADOC /> - <SOURCES /> - </library> - </orderEntry> - <orderEntry type="module-library"> - <library> - <CLASSES> - <root url="jar://$TOMCAT_BUILD_LIBS$/wsdl4j-1.6.3/wsdl4j-1.6.3.jar!/" /> - </CLASSES> - <JAVADOC /> - <SOURCES /> - </library> - </orderEntry> <orderEntry type="module-library"> <library> <CLASSES> diff --git a/res/ide-support/netbeans/project.xml b/res/ide-support/netbeans/project.xml index 5ea2a822d0..5d593c7cf3 100644 --- a/res/ide-support/netbeans/project.xml +++ b/res/ide-support/netbeans/project.xml @@ -178,7 +178,7 @@ --> <compilation-unit> <package-root>java</package-root> - <classpath mode="compile">${base.path}/jaxrpc-1.1-rc4/geronimo-spec-jaxrpc-1.1-rc4.jar:${base.path}/wsdl4j-1.6.3/wsdl4j-1.6.3.jar:${base.path}/ecj-4.26/ecj-4.26.jar:${base.path}/bnd-6.3.1/biz.aQute.bnd-6.3.1.jar:${base.path}/migration-1.0.6/jakartaee-migration-1.0.6-shaded.jar:${ant.includes}/</classpath> + <classpath mode="compile">${base.path}/ecj-4.26/ecj-4.26.jar:${base.path}/bnd-6.3.1/biz.aQute.bnd-6.3.1.jar:${base.path}/migration-1.0.6/jakartaee-migration-1.0.6-shaded.jar:${ant.includes}/</classpath> <source-level>1.7</source-level> </compilation-unit> <compilation-unit> diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index 6a80447ebf..eb07c6e574 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -128,6 +128,10 @@ <bug>66393</bug>: Align <code>ExtendedAccessLogValve</code>'s x-P(XXX) with the documentation. (lihan) </fix> + <fix> + Remove JAX-RPC support which was removed from the Jakarta EE platform + for Jakarta EE 9. (markt) + </fix> </changelog> </subsection> <subsection name="Coyote"> --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org