From 1e42a49ed4490460bf95e0de1be638ed75739a117954349983581e6006cb2c9e Mon Sep 17 00:00:00 2001 From: Fridrich Strba Date: Tue, 10 Jul 2018 17:07:27 +0000 Subject: [PATCH] OBS-URL: https://build.opensuse.org/package/show/Java:packages/axis?expand=0&rev=32 --- axis-jdk11.patch | 744 +++++++++++++++++++++++++++++++++++++++++++++++ axis.changes | 9 + axis.spec | 6 + 3 files changed, 759 insertions(+) create mode 100644 axis-jdk11.patch diff --git a/axis-jdk11.patch b/axis-jdk11.patch new file mode 100644 index 0000000..b7cf87e --- /dev/null +++ b/axis-jdk11.patch @@ -0,0 +1,744 @@ +--- axis-1_4/src/org/apache/axis/deployment/wsdd/providers/WSDDJavaCORBAProvider.java 2006-04-23 03:57:26.000000000 +0200 ++++ axis-1_4/src/org/apache/axis/deployment/wsdd/providers/WSDDJavaCORBAProvider.java 2018-07-10 18:45:14.056601034 +0200 +@@ -1,45 +0,0 @@ +-/* +- * Copyright 2001-2004 The Apache Software Foundation. +- * +- * Licensed 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.axis.deployment.wsdd.providers; +- +-import org.apache.axis.EngineConfiguration; +-import org.apache.axis.Handler; +-import org.apache.axis.deployment.wsdd.WSDDConstants; +-import org.apache.axis.deployment.wsdd.WSDDProvider; +-import org.apache.axis.deployment.wsdd.WSDDService; +- +- +-/** +- * A WSDD CORBA provider +- * +- * @author Davanum Srinivas (dims@yahoo.com) +- */ +-public class WSDDJavaCORBAProvider +- extends WSDDProvider +-{ +- public String getName() { +- return WSDDConstants.PROVIDER_CORBA; +- } +- /** +- * +- */ +- public Handler newProviderInstance(WSDDService service, +- EngineConfiguration registry) +- throws Exception +- { +- return new org.apache.axis.providers.java.CORBAProvider(); +- } +-} +--- axis-1_4/src/org/apache/axis/deployment/wsdd/providers/WSDDJavaEJBProvider.java 2006-04-23 03:57:27.000000000 +0200 ++++ axis-1_4/src/org/apache/axis/deployment/wsdd/providers/WSDDJavaEJBProvider.java 2018-07-10 18:45:55.864833720 +0200 +@@ -1,45 +0,0 @@ +-/* +- * Copyright 2001-2004 The Apache Software Foundation. +- * +- * Licensed 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.axis.deployment.wsdd.providers; +- +-import org.apache.axis.EngineConfiguration; +-import org.apache.axis.Handler; +-import org.apache.axis.deployment.wsdd.WSDDConstants; +-import org.apache.axis.deployment.wsdd.WSDDProvider; +-import org.apache.axis.deployment.wsdd.WSDDService; +- +- +-/** +- * A WSDD EJB provider +- * +- * @author Glen Daniels (gdaniels@apache.org) +- */ +-public class WSDDJavaEJBProvider +- extends WSDDProvider +-{ +- public String getName() { +- return WSDDConstants.PROVIDER_EJB; +- } +- /** +- * +- */ +- public Handler newProviderInstance(WSDDService service, +- EngineConfiguration registry) +- throws Exception +- { +- return new org.apache.axis.providers.java.EJBProvider(); +- } +-} +--- axis-1_4/src/org/apache/axis/deployment/wsdd/WSDDProvider.java 2006-04-23 03:57:27.000000000 +0200 ++++ axis-1_4/src/org/apache/axis/deployment/wsdd/WSDDProvider.java 2018-07-10 18:39:07.494560669 +0200 +@@ -21,8 +21,6 @@ + import org.apache.axis.deployment.wsdd.providers.WSDDBsfProvider; + import org.apache.axis.deployment.wsdd.providers.WSDDComProvider; + import org.apache.axis.deployment.wsdd.providers.WSDDHandlerProvider; +-import org.apache.axis.deployment.wsdd.providers.WSDDJavaCORBAProvider; +-import org.apache.axis.deployment.wsdd.providers.WSDDJavaEJBProvider; + import org.apache.axis.deployment.wsdd.providers.WSDDJavaMsgProvider; + import org.apache.axis.deployment.wsdd.providers.WSDDJavaRMIProvider; + import org.apache.axis.deployment.wsdd.providers.WSDDJavaRPCProvider; +@@ -65,10 +63,8 @@ + providers.put(WSDDConstants.QNAME_JAVARPC_PROVIDER, new WSDDJavaRPCProvider()); + providers.put(WSDDConstants.QNAME_JAVAMSG_PROVIDER, new WSDDJavaMsgProvider()); + providers.put(WSDDConstants.QNAME_HANDLER_PROVIDER, new WSDDHandlerProvider()); +- providers.put(WSDDConstants.QNAME_EJB_PROVIDER, new WSDDJavaEJBProvider()); + providers.put(WSDDConstants.QNAME_COM_PROVIDER, new WSDDComProvider()); + providers.put(WSDDConstants.QNAME_BSF_PROVIDER, new WSDDBsfProvider()); +- providers.put(WSDDConstants.QNAME_CORBA_PROVIDER, new WSDDJavaCORBAProvider()); + providers.put(WSDDConstants.QNAME_RMI_PROVIDER, new WSDDJavaRMIProvider()); + try { + loadPluggableProviders(); +--- axis-1_4/src/org/apache/axis/providers/java/CORBAProvider.java 2006-04-23 03:57:26.000000000 +0200 ++++ axis-1_4/src/org/apache/axis/providers/java/CORBAProvider.java 2018-07-10 18:44:57.384508242 +0200 +@@ -1,131 +0,0 @@ +-/* +- * Copyright 2001-2004 The Apache Software Foundation. +- * +- * Licensed 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.axis.providers.java; +- +-import org.apache.axis.Constants; +-import org.apache.axis.Handler; +-import org.apache.axis.MessageContext; +-import org.apache.axis.components.logger.LogFactory; +-import org.apache.axis.utils.ClassUtils; +-import org.apache.commons.logging.Log; +-import org.omg.CORBA.ORB; +-import org.omg.CosNaming.NameComponent; +-import org.omg.CosNaming.NamingContext; +-import org.omg.CosNaming.NamingContextHelper; +- +-import java.lang.reflect.Method; +-import java.util.Properties; +- +-/** +- * A basic CORBA Provider +- * +- * @author Davanum Srinivas (dims@yahoo.com) +- */ +-public class CORBAProvider extends RPCProvider +-{ +- protected static Log log = +- LogFactory.getLog(CORBAProvider.class.getName()); +- +- private static final String DEFAULT_ORB_INITIAL_HOST = "localhost"; +- private static final String DEFAULT_ORB_INITIAL_PORT = "900"; +- +- // The enterprise category is for stuff that an enterprise product might +- // want to track, but in a simple environment (like the AXIS build) would +- // be nothing more than a nuisance. +- protected static Log entLog = +- LogFactory.getLog(Constants.ENTERPRISE_LOG_CATEGORY); +- +- public static final String OPTION_ORB_INITIAL_HOST = "ORBInitialHost"; +- public static final String OPTION_ORB_INITIAL_PORT = "ORBInitialPort"; +- public static final String OPTION_NAME_ID = "NameID"; +- public static final String OPTION_NAME_KIND = "NameKind"; +- public static final String OPTION_INTERFACE_CLASSNAME = "InterfaceClassName"; +- public static final String OPTION_HELPER_CLASSNAME = "HelperClassName"; +- +- /** +- * Return a object which implements the service. +- * +- * @param msgContext the message context +- * @param clsName The JNDI name of the EJB home class +- * @return an object that implements the service +- */ +- protected Object makeNewServiceObject(MessageContext msgContext, +- String clsName) +- throws Exception +- { +- // Read deployment descriptor options +- String orbInitialHost = getStrOption(OPTION_ORB_INITIAL_HOST,msgContext.getService()); +- if (orbInitialHost == null) +- orbInitialHost = DEFAULT_ORB_INITIAL_HOST; +- String orbInitialPort = getStrOption(OPTION_ORB_INITIAL_PORT,msgContext.getService()); +- if (orbInitialPort == null) +- orbInitialPort = DEFAULT_ORB_INITIAL_PORT; +- String nameId = getStrOption(OPTION_NAME_ID,msgContext.getService()); +- String nameKind = getStrOption(OPTION_NAME_KIND,msgContext.getService()); +- String helperClassName = getStrOption(OPTION_HELPER_CLASSNAME,msgContext.getService()); +- +- // Initialize ORB +- Properties orbProps = new Properties(); +- orbProps.put("org.omg.CORBA.ORBInitialHost", orbInitialHost); +- orbProps.put("org.omg.CORBA.ORBInitialPort", orbInitialPort); +- ORB orb = ORB.init(new String[0], orbProps); +- +- // Find the object +- NamingContext root = NamingContextHelper.narrow(orb.resolve_initial_references("NameService")); +- NameComponent nc = new NameComponent(nameId, nameKind); +- NameComponent[] ncs = {nc}; +- org.omg.CORBA.Object corbaObject = root.resolve(ncs); +- +- Class helperClass = ClassUtils.forName(helperClassName); +- // Narrow the object reference +- Method narrowMethod = helperClass.getMethod("narrow", CORBA_OBJECT_CLASS); +- Object targetObject = narrowMethod.invoke(null, new Object[] {corbaObject}); +- +- return targetObject; +- } +- +- private static final Class[] CORBA_OBJECT_CLASS = new Class[] {org.omg.CORBA.Object.class}; +- +- /** +- * Return the option in the configuration that contains the service class +- * name. +- */ +- protected String getServiceClassNameOptionName() +- { +- return OPTION_INTERFACE_CLASSNAME; +- } +- +- /** +- * Get a String option by looking first in the service options, +- * and then at the Handler's options. This allows defaults to be +- * specified at the provider level, and then overriden for particular +- * services. +- * +- * @param optionName the option to retrieve +- * @return String the value of the option or null if not found in +- * either scope +- */ +- protected String getStrOption(String optionName, Handler service) +- { +- String value = null; +- if (service != null) +- value = (String)service.getOption(optionName); +- if (value == null) +- value = (String)getOption(optionName); +- return value; +- } +- } +--- axis-1_4/src/org/apache/axis/providers/java/EJBProvider.java 2006-04-23 03:57:26.000000000 +0200 ++++ axis-1_4/src/org/apache/axis/providers/java/EJBProvider.java 2018-07-10 18:45:30.176690761 +0200 +@@ -1,489 +0,0 @@ +-/* +- * Copyright 2001-2004 The Apache Software Foundation. +- * +- * Licensed 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.axis.providers.java; +- +-import java.lang.reflect.Method; +-import java.lang.reflect.InvocationTargetException; +-import java.util.Properties; +- +-import javax.naming.Context; +-import javax.naming.InitialContext; +- +-import org.apache.axis.AxisFault; +-import org.apache.axis.Constants; +-import org.apache.axis.Handler; +-import org.apache.axis.MessageContext; +-import org.apache.axis.components.logger.LogFactory; +-import org.apache.axis.handlers.soap.SOAPService; +-import org.apache.axis.utils.ClassUtils; +-import org.apache.axis.utils.Messages; +-import org.apache.commons.logging.Log; +- +-/** +- * A basic EJB Provider +- * +- * @author Carl Woolf (cwoolf@macromedia.com) +- * @author Tom Jordahl (tomj@macromedia.com) +- * @author C?dric Chabanois (cchabanois@ifrance.com) +- */ +-public class EJBProvider extends RPCProvider +-{ +- protected static Log log = +- LogFactory.getLog(EJBProvider.class.getName()); +- +- // The enterprise category is for stuff that an enterprise product might +- // want to track, but in a simple environment (like the AXIS build) would +- // be nothing more than a nuisance. +- protected static Log entLog = +- LogFactory.getLog(Constants.ENTERPRISE_LOG_CATEGORY); +- +- public static final String OPTION_BEANNAME = "beanJndiName"; +- public static final String OPTION_HOMEINTERFACENAME = "homeInterfaceName"; +- public static final String OPTION_REMOTEINTERFACENAME = "remoteInterfaceName"; +- public static final String OPTION_LOCALHOMEINTERFACENAME = "localHomeInterfaceName"; +- public static final String OPTION_LOCALINTERFACENAME = "localInterfaceName"; +- +- +- public static final String jndiContextClass = "jndiContextClass"; +- public static final String jndiURL = "jndiURL"; +- public static final String jndiUsername = "jndiUser"; +- public static final String jndiPassword = "jndiPassword"; +- +- protected static final Class[] empty_class_array = new Class[0]; +- protected static final Object[] empty_object_array = new Object[0]; +- +- private static InitialContext cached_context = null; +- +- /////////////////////////////////////////////////////////////// +- /////////////////////////////////////////////////////////////// +- /////// Default methods from JavaProvider ancestor, overridden +- /////// for ejbeans +- /////////////////////////////////////////////////////////////// +- /////////////////////////////////////////////////////////////// +- +- /** +- * Return a object which implements the service. +- * +- * @param msgContext the message context +- * @param clsName The JNDI name of the EJB home class +- * @return an object that implements the service +- */ +- protected Object makeNewServiceObject(MessageContext msgContext, +- String clsName) +- throws Exception +- { +- String remoteHomeName = getStrOption(OPTION_HOMEINTERFACENAME, +- msgContext.getService()); +- String localHomeName = getStrOption(OPTION_LOCALHOMEINTERFACENAME, +- msgContext.getService()); +- String homeName = (remoteHomeName != null ? remoteHomeName:localHomeName); +- +- if (homeName == null) { +- // cannot find both remote home and local home +- throw new AxisFault( +- Messages.getMessage("noOption00", +- OPTION_HOMEINTERFACENAME, +- msgContext.getTargetService())); +- } +- +- // Load the Home class name given in the config file +- Class homeClass = ClassUtils.forName(homeName, true, msgContext.getClassLoader()); +- +- // we create either the ejb using either the RemoteHome or LocalHome object +- if (remoteHomeName != null) +- return createRemoteEJB(msgContext, clsName, homeClass); +- else +- return createLocalEJB(msgContext, clsName, homeClass); +- } +- +- /** +- * Create an EJB using a remote home object +- * +- * @param msgContext the message context +- * @param beanJndiName The JNDI name of the EJB remote home class +- * @param homeClass the class of the home interface +- * @return an EJB +- */ +- private Object createRemoteEJB(MessageContext msgContext, +- String beanJndiName, +- Class homeClass) +- throws Exception +- { +- // Get the EJB Home object from JNDI +- Object ejbHome = getEJBHome(msgContext.getService(), +- msgContext, beanJndiName); +- Object ehome = javax.rmi.PortableRemoteObject.narrow(ejbHome, homeClass); +- +- // Invoke the create method of the ejbHome class without actually +- // touching any EJB classes (i.e. no cast to EJBHome) +- Method createMethod = homeClass.getMethod("create", empty_class_array); +- Object result = createMethod.invoke(ehome, empty_object_array); +- +- return result; +- } +- +- /** +- * Create an EJB using a local home object +- * +- * @param msgContext the message context +- * @param beanJndiName The JNDI name of the EJB local home class +- * @param homeClass the class of the home interface +- * @return an EJB +- */ +- private Object createLocalEJB(MessageContext msgContext, +- String beanJndiName, +- Class homeClass) +- throws Exception +- { +- // Get the EJB Home object from JNDI +- Object ejbHome = getEJBHome(msgContext.getService(), +- msgContext, beanJndiName); +- +- // the home object is a local home object +- Object ehome; +- if (homeClass.isInstance(ejbHome)) +- ehome = ejbHome; +- else +- throw new ClassCastException( +- Messages.getMessage("badEjbHomeType")); +- +- // Invoke the create method of the ejbHome class without actually +- // touching any EJB classes (i.e. no cast to EJBLocalHome) +- Method createMethod = homeClass.getMethod("create", empty_class_array); +- Object result = createMethod.invoke(ehome, empty_object_array); +- +- return result; +- } +- +- /** +- * Tells if the ejb that will be used to handle this service is a remote +- * one +- */ +- private boolean isRemoteEjb(SOAPService service) +- { +- return getStrOption(OPTION_HOMEINTERFACENAME,service) != null; +- } +- +- /** +- * Tells if the ejb that will be used to handle this service is a local +- * one +- */ +- private boolean isLocalEjb(SOAPService service) +- { +- return (!isRemoteEjb(service)) && +- (getStrOption(OPTION_LOCALHOMEINTERFACENAME,service) != null); +- } +- +- +- /** +- * Return the option in the configuration that contains the service class +- * name. In the EJB case, it is the JNDI name of the bean. +- */ +- protected String getServiceClassNameOptionName() +- { +- return OPTION_BEANNAME; +- } +- +- /** +- * Get a String option by looking first in the service options, +- * and then at the Handler's options. This allows defaults to be +- * specified at the provider level, and then overriden for particular +- * services. +- * +- * @param optionName the option to retrieve +- * @return String the value of the option or null if not found in +- * either scope +- */ +- protected String getStrOption(String optionName, Handler service) +- { +- String value = null; +- if (service != null) +- value = (String)service.getOption(optionName); +- if (value == null) +- value = (String)getOption(optionName); +- return value; +- } +- +- /** +- * Get the remote interface of an ejb from its home class. +- * This function can only be used for remote ejbs +- * +- * @param beanJndiName the jndi name of the ejb +- * @param service the soap service +- * @param msgContext the message context (can be null) +- */ +- private Class getRemoteInterfaceClassFromHome(String beanJndiName, +- SOAPService service, +- MessageContext msgContext) +- throws Exception +- { +- // Get the EJB Home object from JNDI +- Object ejbHome = getEJBHome(service, msgContext, beanJndiName); +- +- String homeName = getStrOption(OPTION_HOMEINTERFACENAME, +- service); +- if (homeName == null) +- throw new AxisFault( +- Messages.getMessage("noOption00", +- OPTION_HOMEINTERFACENAME, +- service.getName())); +- +- // Load the Home class name given in the config file +- ClassLoader cl = (msgContext != null) ? +- msgContext.getClassLoader() : +- Thread.currentThread().getContextClassLoader(); +- Class homeClass = ClassUtils.forName(homeName, true, cl); +- +- +- // Make sure the object we got back from JNDI is the same type +- // as the what is specified in the config file +- Object ehome = javax.rmi.PortableRemoteObject.narrow(ejbHome, homeClass); +- +- // This code requires the use of ejb.jar, so we do the stuff below +- // EJBHome ejbHome = (EJBHome) ehome; +- // EJBMetaData meta = ejbHome.getEJBMetaData(); +- // Class interfaceClass = meta.getRemoteInterfaceClass(); +- +- // Invoke the getEJBMetaData method of the ejbHome class without +- // actually touching any EJB classes (i.e. no cast to EJBHome) +- Method getEJBMetaData = +- homeClass.getMethod("getEJBMetaData", empty_class_array); +- Object metaData = getEJBMetaData.invoke(ehome, empty_object_array); +- Method getRemoteInterfaceClass = +- metaData.getClass().getMethod("getRemoteInterfaceClass", +- empty_class_array); +- return (Class) getRemoteInterfaceClass.invoke(metaData, +- empty_object_array); +- } +- +- +- /** +- * Get the class description for the EJB Remote or Local Interface, +- * which is what we are interested in exposing to the world (i.e. in WSDL). +- * +- * @param msgContext the message context (can be null) +- * @param beanJndiName the JNDI name of the EJB +- * @return the class info of the EJB remote or local interface +- */ +- protected Class getServiceClass(String beanJndiName, +- SOAPService service, +- MessageContext msgContext) +- throws AxisFault +- { +- Class interfaceClass = null; +- +- try { +- // First try to get the interface class from the configuation +- // Note that we don't verify that remote remoteInterfaceName is used for +- // remote ejb and localInterfaceName for local ejb. Should we ? +- String remoteInterfaceName = +- getStrOption(OPTION_REMOTEINTERFACENAME, service); +- String localInterfaceName = +- getStrOption(OPTION_LOCALINTERFACENAME, service); +- String interfaceName = (remoteInterfaceName != null ? remoteInterfaceName : localInterfaceName); +- +- if(interfaceName != null){ +- ClassLoader cl = (msgContext != null) ? +- msgContext.getClassLoader() : +- Thread.currentThread().getContextClassLoader(); +- interfaceClass = ClassUtils.forName(interfaceName, +- true, +- cl); +- } +- else +- { +- // cannot get the interface name from the configuration, we get +- // it from the EJB Home (if remote) +- if (isRemoteEjb(service)) { +- interfaceClass = getRemoteInterfaceClassFromHome(beanJndiName, +- service, +- msgContext); +- } +- else +- if (isLocalEjb(service)) { +- // we cannot get the local interface from the local ejb home +- // localInterfaceName is mandatory for local ejbs +- throw new AxisFault( +- Messages.getMessage("noOption00", +- OPTION_LOCALINTERFACENAME, +- service.getName())); +- } +- else +- { +- // neither a local ejb or a remote one ... +- throw new AxisFault(Messages.getMessage("noOption00", +- OPTION_HOMEINTERFACENAME, +- service.getName())); +- } +- } +- } catch (Exception e) { +- throw AxisFault.makeFault(e); +- } +- +- // got it, return it +- return interfaceClass; +- } +- +- /** +- * Common routine to do the JNDI lookup on the Home interface object +- * username and password for jndi lookup are got from the configuration or from +- * the messageContext if not found in the configuration +- */ +- private Object getEJBHome(SOAPService serviceHandler, +- MessageContext msgContext, +- String beanJndiName) +- throws AxisFault +- { +- Object ejbHome = null; +- +- // Set up an InitialContext and use it get the beanJndiName from JNDI +- try { +- Properties properties = null; +- +- // collect all the properties we need to access JNDI: +- // username, password, factoryclass, contextUrl +- +- // username +- String username = getStrOption(jndiUsername, serviceHandler); +- if ((username == null) && (msgContext != null)) +- username = msgContext.getUsername(); +- if (username != null) { +- if (properties == null) +- properties = new Properties(); +- properties.setProperty(Context.SECURITY_PRINCIPAL, username); +- } +- +- // password +- String password = getStrOption(jndiPassword, serviceHandler); +- if ((password == null) && (msgContext != null)) +- password = msgContext.getPassword(); +- if (password != null) { +- if (properties == null) +- properties = new Properties(); +- properties.setProperty(Context.SECURITY_CREDENTIALS, password); +- } +- +- // factory class +- String factoryClass = getStrOption(jndiContextClass, serviceHandler); +- if (factoryClass != null) { +- if (properties == null) +- properties = new Properties(); +- properties.setProperty(Context.INITIAL_CONTEXT_FACTORY, factoryClass); +- } +- +- // contextUrl +- String contextUrl = getStrOption(jndiURL, serviceHandler); +- if (contextUrl != null) { +- if (properties == null) +- properties = new Properties(); +- properties.setProperty(Context.PROVIDER_URL, contextUrl); +- } +- +- // get context using these properties +- InitialContext context = getContext(properties); +- +- // if we didn't get a context, fail +- if (context == null) +- throw new AxisFault( Messages.getMessage("cannotCreateInitialContext00")); +- +- ejbHome = getEJBHome(context, beanJndiName); +- +- if (ejbHome == null) +- throw new AxisFault( Messages.getMessage("cannotFindJNDIHome00",beanJndiName)); +- } +- // Should probably catch javax.naming.NameNotFoundException here +- catch (Exception exception) { +- entLog.info(Messages.getMessage("toAxisFault00"), exception); +- throw AxisFault.makeFault(exception); +- } +- +- return ejbHome; +- } +- +- protected InitialContext getCachedContext() +- throws javax.naming.NamingException +- { +- if (cached_context == null) +- cached_context = new InitialContext(); +- return cached_context; +- } +- +- +- protected InitialContext getContext(Properties properties) +- throws AxisFault, javax.naming.NamingException +- { +- // if we got any stuff from the configuration file +- // create a new context using these properties +- // otherwise, we get a default context and cache it for next time +- return ((properties == null) +- ? getCachedContext() +- : new InitialContext(properties)); +- } +- +- protected Object getEJBHome(InitialContext context, String beanJndiName) +- throws AxisFault, javax.naming.NamingException +- { +- // Do the JNDI lookup +- return context.lookup(beanJndiName); +- } +- +- /** +- * Override the default implementation such that we can include +- * special handling for {@link java.rmi.ServerException}. +- *

+- * Converts {@link java.rmi.ServerException} exceptions to +- * {@link InvocationTargetException} exceptions with the same cause. +- * This allows the axis framework to create a SOAP fault. +- *

+- * +- * @see org.apache.axis.providers.java.RPCProvider#invokeMethod(org.apache.axis.MessageContext, java.lang.reflect.Method, java.lang.Object, java.lang.Object[]) +- */ +- protected Object invokeMethod(MessageContext msgContext, Method method, +- Object obj, Object[] argValues) +- throws Exception { +- try { +- return super.invokeMethod(msgContext, method, obj, argValues); +- } catch (InvocationTargetException ite) { +- Throwable cause = getCause(ite); +- if (cause instanceof java.rmi.ServerException) { +- throw new InvocationTargetException(getCause(cause)); +- } +- throw ite; +- } +- } +- +- /** +- * Get the cause of an exception, using reflection so that +- * it still works under JDK 1.3 +- * +- * @param original the original exception +- * @return the cause of the exception, or the given exception if the cause cannot be discovered. +- */ +- private Throwable getCause(Throwable original) { +- try { +- Method method = original.getClass().getMethod("getCause", null); +- Throwable cause = (Throwable) method.invoke(original, null); +- if (cause != null) { +- return cause; +- } +- } catch (NoSuchMethodException nsme) { +- // ignore, this occurs under JDK 1.3 +- } catch (Throwable t) { +- } +- return original; +- } +-} diff --git a/axis.changes b/axis.changes index 8372abc..4c0964a 100644 --- a/axis.changes +++ b/axis.changes @@ -1,3 +1,12 @@ +------------------------------------------------------------------- +Tue Jul 10 16:47:47 UTC 2018 - fstrba@suse.com + +- Added patch: + * axis-jdk11.patch + + Fix build with jdk11 + + Don't build providers that are using APIs and classes removed + in jdk11 + ------------------------------------------------------------------- Tue May 15 14:01:35 UTC 2018 - fstrba@suse.com diff --git a/axis.spec b/axis.spec index 3b5aa8b..636a16d 100644 --- a/axis.spec +++ b/axis.spec @@ -47,6 +47,7 @@ Patch3: axis-ant-build.patch Patch4: axis-encoding.patch Patch5: axis-compareto.patch Patch6: axis-enum.patch +Patch7: axis-jdk11.patch BuildRequires: ant BuildRequires: ant-jdepend BuildRequires: antlr @@ -97,12 +98,17 @@ Manual for axis %patch4 -p1 %patch5 -p1 %patch6 -p1 +%patch7 -p1 # Remove provided binaries find . -name "*.jar" -exec rm -f {} \; find . -name "*.zip" -exec rm -f {} \; find . -name "*.class" -exec rm -f {} \; rm -rf src/org/apache/axis/enum +rm -f src/org/apache/axis/providers/java/CORBAProvider.java +rm -f src/org/apache/axis/deployment/wsdd/providers/WSDDJavaCORBAProvider.java +rm -f src/org/apache/axis/providers/java/EJBProvider.java +rm -f src/org/apache/axis/deployment/wsdd/providers/WSDDJavaEJBProvider.java cp %{SOURCE1} %{SOURCE2} %{SOURCE3} .