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


Reply via email to