You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-commits@axis.apache.org by ve...@apache.org on 2017/12/17 22:34:13 UTC
svn commit: r1818518 [18/30] - in /axis/axis2/java/core/branches/AXIS2-4091:
./ apidocs/ databinding-tests/ etc/ legal/ modules/adb-codegen/
modules/adb-codegen/src/org/apache/axis2/schema/
modules/adb-codegen/src/org/apache/axis2/schema/template/ modu...
Modified: axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/deployment/util/Utils.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/deployment/util/Utils.java?rev=1818518&r1=1818517&r2=1818518&view=diff
==============================================================================
--- axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/deployment/util/Utils.java (original)
+++ axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/deployment/util/Utils.java Sun Dec 17 22:34:08 2017
@@ -25,7 +25,6 @@ import org.apache.axiom.om.OMFactory;
import org.apache.axiom.soap.SOAP11Constants;
import org.apache.axiom.soap.SOAP12Constants;
import org.apache.axis2.AxisFault;
-import org.apache.axis2.classloader.JarFileClassLoader;
import org.apache.axis2.Constants;
import org.apache.axis2.jaxrs.JAXRSModel;
import org.apache.axis2.context.ConfigurationContext;
@@ -152,27 +151,31 @@ public class Utils {
}
public static URL[] getURLsForAllJars(URL url, File tmpDir) {
- FileInputStream fin = null;
InputStream in = null;
ZipInputStream zin = null;
try {
- ArrayList array = new ArrayList();
+ ArrayList<URL> array = new ArrayList<URL>();
in = url.openStream();
- String fileName = url.getFile();
- int index = fileName.lastIndexOf('/');
- if (index != -1) {
- fileName = fileName.substring(index + 1);
+ if (url.getProtocol().equals("file")) {
+ array.add(url);
+ } else {
+ String fileName = url.getFile();
+ int index = fileName.lastIndexOf('/');
+ if (index != -1) {
+ fileName = fileName.substring(index + 1);
+ }
+ final File f = createTempFile(fileName, in, tmpDir);
+ in.close();
+
+ in = org.apache.axis2.java.security.AccessController
+ .doPrivileged(new PrivilegedExceptionAction<InputStream>() {
+ public InputStream run() throws FileNotFoundException {
+ return new FileInputStream(f);
+ }
+ });
+ array.add(f.toURI().toURL());
}
- final File f = createTempFile(fileName, in, tmpDir);
-
- fin = (FileInputStream)org.apache.axis2.java.security.AccessController
- .doPrivileged(new PrivilegedExceptionAction() {
- public Object run() throws FileNotFoundException {
- return new FileInputStream(f);
- }
- });
- array.add(f.toURI().toURL());
- zin = new ZipInputStream(fin);
+ zin = new ZipInputStream(in);
ZipEntry entry;
String entryName;
@@ -190,17 +193,10 @@ public class Utils {
array.add(f2.toURI().toURL());
}
}
- return (URL[])array.toArray(new URL[array.size()]);
+ return array.toArray(new URL[array.size()]);
} catch (Exception e) {
throw new RuntimeException(e);
} finally {
- if (fin != null) {
- try {
- fin.close();
- } catch (IOException e) {
- //
- }
- }
if (in != null) {
try {
in.close();
@@ -321,13 +317,11 @@ public class Utils {
*/
public static ClassLoader getClassLoader(final ClassLoader parent, File file, final boolean isChildFirstClassLoading)
throws DeploymentException {
- URLClassLoader classLoader;
-
if (file == null)
return null; // Shouldn't this just return the parent?
try {
- ArrayList urls = new ArrayList();
+ ArrayList<URL> urls = new ArrayList<URL>();
urls.add(file.toURI().toURL());
// lower case directory name
@@ -340,51 +334,30 @@ public class Utils {
final URL urllist[] = new URL[urls.size()];
for (int i = 0; i < urls.size(); i++) {
- urllist[i] = (URL)urls.get(i);
+ urllist[i] = urls.get(i);
}
- classLoader = (URLClassLoader)AccessController
- .doPrivileged(new PrivilegedAction() {
- public Object run() {
- if (useJarFileClassLoader()) {
- return new JarFileClassLoader(urllist, parent);
- } else {
- return new DeploymentClassLoader(urllist, null, parent, isChildFirstClassLoading);
- }
- }
- });
- return classLoader;
+ if (log.isDebugEnabled()) {
+ log.debug("Creating class loader with the following libraries: " + Arrays.asList(urllist));
+ }
+ return createDeploymentClassLoader(urllist, parent, isChildFirstClassLoading);
} catch (MalformedURLException e) {
throw new DeploymentException(e);
}
}
- private static boolean useJarFileClassLoader() {
- // The JarFileClassLoader was created to address a locking problem seen only on Windows platforms.
- // It carries with it a slight performance penalty that needs to be addressed. Rather than make
- // *nix OSes carry this burden we'll engage the JarFileClassLoader for Windows or if the user
- // specifically requests it.
- boolean useJarFileClassLoader;
- if (System.getProperty("org.apache.axis2.classloader.JarFileClassLoader") == null) {
- useJarFileClassLoader = System.getProperty("os.name").startsWith("Windows");
- } else {
- useJarFileClassLoader = Boolean.getBoolean("org.apache.axis2.classloader.JarFileClassLoader");
- }
- return useJarFileClassLoader;
- }
-
- private static boolean addFiles(ArrayList urls, final File libfiles)
+ private static boolean addFiles(ArrayList<URL> urls, final File libfiles)
throws MalformedURLException {
- Boolean exists = (Boolean)org.apache.axis2.java.security.AccessController
- .doPrivileged(new PrivilegedAction() {
- public Object run() {
+ Boolean exists = org.apache.axis2.java.security.AccessController
+ .doPrivileged(new PrivilegedAction<Boolean>() {
+ public Boolean run() {
return libfiles.exists();
}
});
if (exists) {
urls.add(libfiles.toURI().toURL());
- File jarfiles[] = (File[])org.apache.axis2.java.security.AccessController
- .doPrivileged(new PrivilegedAction() {
- public Object run() {
+ File jarfiles[] = org.apache.axis2.java.security.AccessController
+ .doPrivileged(new PrivilegedAction<File[]>() {
+ public File[] run() {
return libfiles.listFiles();
}
});
@@ -744,38 +717,6 @@ public class Utils {
}
/**
- * Get names of all *.jar files inside the lib/ directory of a given jar URL
- *
- * @param url base URL of a JAR to search
- * @return a List containing file names (Strings) of all files matching "[lL]ib/*.jar"
- */
- public static List findLibJars(URL url) {
- ArrayList embedded_jars = new ArrayList();
- try {
- ZipInputStream zin = new ZipInputStream(url.openStream());
- ZipEntry entry;
- String entryName;
- while ((entry = zin.getNextEntry()) != null) {
- entryName = entry.getName();
- /**
- * if the entry name start with /lib and ends with .jar add it
- * to the the arraylist
- */
- if (entryName != null
- && (entryName.startsWith("lib/") || entryName
- .startsWith("Lib/"))
- && entryName.endsWith(".jar")) {
- embedded_jars.add(entryName);
- }
- }
- zin.close();
- } catch (Exception e) {
- throw new RuntimeException(e);
- }
- return embedded_jars;
- }
-
- /**
* Add the Axis2 lifecycle / session methods to a pre-existing list of names that will be
* excluded when generating schemas.
*
@@ -799,35 +740,7 @@ public class Utils {
}
});
return createDeploymentClassLoader(new URL[]{serviceFile.toURI().toURL()},
- contextClassLoader, new ArrayList(), isChildFirstClassLoading);
- }
-
- public static ClassLoader createClassLoader(ArrayList urls,
- ClassLoader serviceClassLoader,
- boolean extractJars,
- File tmpDir,
- boolean isChildFirstClassLoading) {
- URL url = (URL)urls.get(0);
- if (extractJars) {
- try {
- URL[] urls1 = Utils.getURLsForAllJars(url, tmpDir);
- urls.remove(0);
- urls.addAll(0, Arrays.asList(urls1));
- URL[] urls2 = (URL[])urls.toArray(new URL[urls.size()]);
- return createDeploymentClassLoader(urls2, serviceClassLoader,
- null, isChildFirstClassLoading);
- } catch (Exception e) {
- log
- .warn("Exception extracting jars into temporary directory : "
- + e.getMessage()
- + " : switching to alternate class loading mechanism");
- log.debug(e.getMessage(), e);
- }
- }
- List embedded_jars = Utils.findLibJars(url);
- URL[] urls2 = (URL[])urls.toArray(new URL[urls.size()]);
- return createDeploymentClassLoader(urls2, serviceClassLoader,
- embedded_jars, isChildFirstClassLoading);
+ contextClassLoader, isChildFirstClassLoading);
}
public static File toFile(URL url) throws UnsupportedEncodingException {
@@ -835,36 +748,26 @@ public class Utils {
return new File(path.replace('/', File.separatorChar).replace('|', ':'));
}
- public static ClassLoader createClassLoader(URL[] urls,
+ public static ClassLoader createClassLoader(URL archiveUrl, URL[] extraUrls,
ClassLoader serviceClassLoader,
- boolean extractJars,
File tmpDir,
boolean isChildFirstClassLoading) {
- if (extractJars) {
- try {
- URL[] urls1 = Utils.getURLsForAllJars(urls[0], tmpDir);
- return createDeploymentClassLoader(urls1, serviceClassLoader,
- null, isChildFirstClassLoading);
- } catch (Exception e) {
- log
- .warn("Exception extracting jars into temporary directory : "
- + e.getMessage()
- + " : switching to alternate class loading mechanism");
- log.debug(e.getMessage(), e);
- }
+ List<URL> urls = new ArrayList<>();
+ urls.addAll(Arrays.asList(Utils.getURLsForAllJars(archiveUrl, tmpDir)));
+ if (extraUrls != null) {
+ urls.addAll(Arrays.asList(extraUrls));
}
- List embedded_jars = Utils.findLibJars(urls[0]);
- return createDeploymentClassLoader(urls, serviceClassLoader,
- embedded_jars, isChildFirstClassLoading);
+ return createDeploymentClassLoader(urls.toArray(new URL[urls.size()]), serviceClassLoader,
+ isChildFirstClassLoading);
}
private static DeploymentClassLoader createDeploymentClassLoader(
final URL[] urls, final ClassLoader serviceClassLoader,
- final List embeddedJars, final boolean isChildFirstClassLoading) {
- return (DeploymentClassLoader)AccessController
- .doPrivileged(new PrivilegedAction() {
- public Object run() {
- return new DeploymentClassLoader(urls, embeddedJars,
+ final boolean isChildFirstClassLoading) {
+ return AccessController
+ .doPrivileged(new PrivilegedAction<DeploymentClassLoader>() {
+ public DeploymentClassLoader run() {
+ return new DeploymentClassLoader(urls,
serviceClassLoader, isChildFirstClassLoading);
}
});
@@ -883,11 +786,11 @@ public class Utils {
if (excludeBeanProperty != null) {
OMElement parameterElement = excludeBeanProperty
.getParameterElement();
- Iterator bneasItr = parameterElement.getChildrenWithName(new QName(
+ Iterator<OMElement> bneasItr = parameterElement.getChildrenWithName(new QName(
"bean"));
ExcludeInfo excludeInfo = new ExcludeInfo();
while (bneasItr.hasNext()) {
- OMElement bean = (OMElement)bneasItr.next();
+ OMElement bean = bneasItr.next();
String clazz = bean.getAttributeValue(new QName(
DeploymentConstants.TAG_CLASS_NAME));
String excludePropertees = bean.getAttributeValue(new QName(
@@ -1269,10 +1172,10 @@ public class Utils {
policyComponents.add(policyRef);
}
- for (Iterator policySubjects = appliesToElem
+ for (Iterator<OMElement> policySubjects = appliesToElem
.getChildrenWithName(new QName("policy-subject")); policySubjects
.hasNext();) {
- OMElement policySubject = (OMElement)policySubjects.next();
+ OMElement policySubject = policySubjects.next();
String identifier = policySubject.getAttributeValue(new QName(
"identifier"));
Modified: axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/description/AxisService.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/description/AxisService.java?rev=1818518&r1=1818517&r2=1818518&view=diff
==============================================================================
--- axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/description/AxisService.java (original)
+++ axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/description/AxisService.java Sun Dec 17 22:34:08 2017
@@ -64,6 +64,7 @@ import org.apache.axis2.util.LoggingCont
import org.apache.axis2.util.XMLPrettyPrinter;
import org.apache.axis2.util.XMLUtils;
import org.apache.axis2.wsdl.WSDLConstants;
+import org.apache.axis2.wsdl.WSDLUtil;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.neethi.Policy;
@@ -2387,7 +2388,7 @@ public class AxisService extends AxisDes
Document doc = XMLUtils.newDocument(in);
String namespaceURI = doc.getDocumentElement().getNamespaceURI();
if (Constants.NS_URI_WSDL11.equals(namespaceURI)) {
- WSDLReader reader = WSDLFactory.newInstance().newWSDLReader();
+ WSDLReader reader = WSDLUtil.newWSDLReaderWithPopulatedExtensionRegistry();
reader.setFeature("javax.wsdl.importDocuments", true);
Definition wsdlDefinition = reader.readWSDL(getBaseURI(wsdlURL.toString()), doc);
if (wsdlDefinition != null) {
Modified: axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/description/AxisService2WSDL11.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/description/AxisService2WSDL11.java?rev=1818518&r1=1818517&r2=1818518&view=diff
==============================================================================
--- axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/description/AxisService2WSDL11.java (original)
+++ axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/description/AxisService2WSDL11.java Sun Dec 17 22:34:08 2017
@@ -676,7 +676,7 @@ public class AxisService2WSDL11 implemen
WSDLSerializationUtil.addExtensionElement(fac, port,
SOAP_ADDRESS, LOCATION, (endpointURL == null) ? ""
: endpointURL, soap);
- generateEPRElement(fac, port, endpointURL);
+ generateEPRElement(axisEndpoint, fac, port, endpointURL);
addPolicyAsExtElement(axisEndpoint, port);
service.addChild(modifyPort(port));
if (isAlreadyAdded(axisBinding, definition)) {
@@ -726,7 +726,7 @@ public class AxisService2WSDL11 implemen
WSDLSerializationUtil.addExtensionElement(fac, port,
SOAP_ADDRESS, LOCATION, (endpointURL == null) ? ""
: endpointURL, soap12);
- generateEPRElement(fac, port, endpointURL);
+ generateEPRElement(axisEndpoint, fac, port, endpointURL);
addPolicyAsExtElement(axisEndpoint, port);
service.addChild(modifyPort(port));
if (isAlreadyAdded(axisBinding, definition)) {
@@ -1310,10 +1310,10 @@ public class AxisService2WSDL11 implemen
OMElement definitionElement) {
QName bindingName = axisBinding.getName();
QName name = new QName("name");
- for (Iterator iterator = definitionElement
+ for (Iterator<OMElement> iterator = definitionElement
.getChildrenWithName(new QName(wsdl.getNamespaceURI(),
BINDING_LOCAL_NAME)); iterator.hasNext();) {
- OMElement element = (OMElement) iterator.next();
+ OMElement element = iterator.next();
String value = element.getAttributeValue(name);
if (bindingName.getLocalPart().equals(value)) {
return true;
@@ -1351,27 +1351,61 @@ public class AxisService2WSDL11 implemen
}
}
- /**
- * Generate the Identity element according to the WS-AddressingAndIdentity if the
- * AddressingConstants.IDENTITY_PARAMETER parameter is set.
- * http://schemas.xmlsoap.org/ws/2006/02/addressingidentity/
- */
-
- private void generateIdentityElement(OMFactory fac,OMElement epr, Parameter wsaIdParam) {
-
- // Create the Identity element
- OMElement identity = fac.createOMElement(AddressingConstants.QNAME_IDENTITY);
- OMElement keyInfo = fac.createOMElement(AddressingConstants.QNAME_IDENTITY_KEY_INFO);
- OMElement x509Data = fac.createOMElement(AddressingConstants.QNAME_IDENTITY_X509_DATA);
- OMElement x509cert = fac.createOMElement(AddressingConstants.QNAME_IDENTITY_X509_CERT);
- x509cert.setText((String)wsaIdParam.getValue());
-
- x509Data.addChild(x509cert);
- keyInfo.addChild(x509Data);
- identity.addChild(keyInfo);
-
- epr.addChild(identity);
-
+ /**
+ * Generate a <wsid:Identity> element according to the <a
+ * href="http://www.oasis-open.org/committees/download.php/29516/ws-addressingandidentity.doc"
+ * >WS-AddressingAndIdentity specification</a> and add it as a child of the given
+ * <code>epr</code> <wsa:EndpointReference> element.
+ * <p>
+ * If none of the <code>identityParameter</code> and <code>x509CertIdentityParameter</code>
+ * configures a valid value, this method will skip creating and adding an identity element.
+ * </p>
+ *
+ * @param fac
+ * A factory to use for creating OMElements.
+ * @param epr
+ * The endpoint reference element to add the generated identity element to. Must not
+ * be <code>null</code>.
+ * @param identity
+ * An optional <wsid:Identity> OMElement to clone and use, instead of
+ * generating a new one.
+ * @param x509CertIdentityParameter
+ * An optional parameter that may contain a <ds:X509Certificate> String literal
+ * value to set as key info in the created identity element.
+ */
+ private void generateIdentityElement(OMFactory fac, OMElement epr, OMElement identity, Parameter x509CertIdentityParameter) {
+ if (identity != null) {
+ identity = identity.cloneOMElement();
+ epr.addChild(identity);
+ }
+
+ if (x509CertIdentityParameter != null && x509CertIdentityParameter.getValue() != null) {
+ if (identity == null) {
+ identity = fac.createOMElement(AddressingConstants.QNAME_IDENTITY);
+ epr.addChild(identity);
+ }
+
+ OMElement keyInfo = identity.getFirstChildWithName(AddressingConstants.QNAME_IDENTITY_KEY_INFO);
+ if (keyInfo == null) {
+ keyInfo = fac.createOMElement(AddressingConstants.QNAME_IDENTITY_KEY_INFO);
+ identity.addChild(keyInfo);
+ }
+
+ OMElement x509Data = keyInfo.getFirstChildWithName(AddressingConstants.QNAME_IDENTITY_X509_DATA);
+ if (x509Data == null) {
+ x509Data = fac.createOMElement(AddressingConstants.QNAME_IDENTITY_X509_DATA);
+ keyInfo.addChild(x509Data);
+ }
+
+ OMElement x509cert = x509Data.getFirstChildWithName(AddressingConstants.QNAME_IDENTITY_X509_CERT);
+ if (x509cert == null) {
+ x509cert = fac.createOMElement(AddressingConstants.QNAME_IDENTITY_X509_CERT);
+ x509Data.addChild(x509cert);
+ }
+
+ String x509CertValue = (String) x509CertIdentityParameter.getValue();
+ x509cert.setText(x509CertValue);
+ }
}
@@ -1384,12 +1418,15 @@ public class AxisService2WSDL11 implemen
* </wsa:EndpointReference>
*
*/
- private void generateEPRElement(OMFactory fac, OMElement port, String endpointURL){
+ private void generateEPRElement(AxisEndpoint endpoint, OMFactory fac, OMElement port, String endpointURL){
+ //an optional String parameter that contains x509 certificate information
+ Parameter x509CertIdentityParameter = axisService.getParameter(AddressingConstants.IDENTITY_PARAMETER);
- Parameter parameter = axisService.getParameter(AddressingConstants.IDENTITY_PARAMETER);
-
- // If the parameter is not set, return
- if (parameter == null || parameter.getValue() == null) {
+ //an optional OMElement parameter that represents an <wsid:Identity> element
+ OMElement identityElement = AddressingHelper.getAddressingIdentityParameterValue(endpoint);
+
+ if ((x509CertIdentityParameter == null || x509CertIdentityParameter.getValue() == null) && identityElement == null) {
+ //none of these is configured, for backward compatibility do not generate anything and return
return;
}
@@ -1401,7 +1438,7 @@ public class AxisService2WSDL11 implemen
wsaEpr.addChild(address);
// This will generate the identity element if the service parameter is set
- generateIdentityElement(fac, wsaEpr, parameter);
+ generateIdentityElement(fac, wsaEpr, identityElement, x509CertIdentityParameter);
port.addChild(wsaEpr);
Modified: axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/description/ParameterIncludeImpl.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/description/ParameterIncludeImpl.java?rev=1818518&r1=1818517&r2=1818518&view=diff
==============================================================================
--- axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/description/ParameterIncludeImpl.java (original)
+++ axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/description/ParameterIncludeImpl.java Sun Dec 17 22:34:08 2017
@@ -38,13 +38,9 @@ import java.io.Externalizable;
import java.io.IOException;
import java.io.ObjectInput;
import java.io.ObjectOutput;
-import java.util.concurrent.ConcurrentHashMap;
import java.util.ArrayList;
-import java.util.ConcurrentModificationException;
import java.util.HashMap;
import java.util.Iterator;
-import java.util.Map;
-
/**
* Class ParameterIncludeImpl
@@ -88,15 +84,13 @@ public class ParameterIncludeImpl
/**
* Field parmeters
*/
- protected Map<String, Parameter> parameters;
+ private final HashMap<String, Parameter> parameters;
/**
* Constructor ParameterIncludeImpl.
*/
public ParameterIncludeImpl() {
- // Use a capacity large enough to prevent
- // resizing
- parameters = new HashMap<String, Parameter>(64);
+ parameters = new HashMap<String, Parameter>();
}
/**
@@ -108,26 +102,6 @@ public class ParameterIncludeImpl
if (param != null) {
synchronized (parameters) {
parameters.put(param.getName(), param);
- try {
- parameters.put(param.getName(), param);
- } catch (ConcurrentModificationException cme) {
- // The ParameteterIncludeImpl is supposed to be immutable after it is populated.
- // But alas, sometimes the callers forget and try to add new items. If
- // this occurs, swap over to the slower ConcurrentHashMap and continue.
- if (log.isDebugEnabled()) {
- log.debug("ConcurrentModificationException Occured...changing to ConcurrentHashMap");
- log.debug("The exception is: " + cme);
- }
-
- Map newMap = new ConcurrentHashMap(parameters);
- newMap.put(param.getName(), param);
- parameters = newMap;
- }
-
- if (DEBUG_ENABLED) {
- this.debugParameterAdd(param);
- }
-
}
if (DEBUG_ENABLED) {
@@ -138,22 +112,8 @@ public class ParameterIncludeImpl
public void removeParameter(Parameter param) throws AxisFault {
synchronized (parameters) {
- try {
- parameters.remove(param.getName());
- } catch (ConcurrentModificationException cme) {
- // The ParameteterIncludeImpl is supposed to be immutable after it is populated.
- // But alas, sometimes the callers forget and try to add new items. If
- // this occurs, swap over to the slower ConcurrentHashMap and continue.
- if (log.isDebugEnabled()) {
- log.debug("ConcurrentModificationException Occured...changing to ConcurrentHashMap");
- log.debug("The exception is: " + cme);
- }
-
- Map newMap = new ConcurrentHashMap(parameters);
- newMap.remove(param.getName());
- parameters = newMap;
- }
- }
+ parameters.remove(param.getName());
+ }
}
/**
@@ -164,13 +124,13 @@ public class ParameterIncludeImpl
* @throws AxisFault
*/
public void deserializeParameters(OMElement parameters) throws AxisFault {
- Iterator iterator =
+ Iterator<OMElement> iterator =
parameters.getChildrenWithName(new QName(DeploymentConstants.TAG_PARAMETER));
while (iterator.hasNext()) {
// this is to check whether some one has locked the parmeter at the top level
- OMElement parameterElement = (OMElement) iterator.next();
+ OMElement parameterElement = iterator.next();
Parameter parameter = new Parameter();
// setting parameterElement
@@ -220,11 +180,13 @@ public class ParameterIncludeImpl
* @return Returns parameter.
*/
public Parameter getParameter(String name) {
- return parameters.get(name);
+ synchronized (parameters) {
+ return parameters.get(name);
+ }
}
public ArrayList<Parameter> getParameters() {
- synchronized(parameters) {
+ synchronized (parameters) {
return new ArrayList<Parameter>(parameters.values());
}
}
Modified: axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/description/WSDL11ToAxisServiceBuilder.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/description/WSDL11ToAxisServiceBuilder.java?rev=1818518&r1=1818517&r2=1818518&view=diff
==============================================================================
--- axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/description/WSDL11ToAxisServiceBuilder.java (original)
+++ axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/description/WSDL11ToAxisServiceBuilder.java Sun Dec 17 22:34:08 2017
@@ -91,7 +91,6 @@ import javax.wsdl.extensions.soap12.SOAP
import javax.wsdl.extensions.soap12.SOAP12Body;
import javax.wsdl.extensions.soap12.SOAP12Header;
import javax.wsdl.extensions.soap12.SOAP12Operation;
-import javax.wsdl.factory.WSDLFactory;
import javax.wsdl.xml.WSDLLocator;
import javax.wsdl.xml.WSDLReader;
import javax.xml.namespace.QName;
@@ -333,10 +332,16 @@ public class WSDL11ToAxisServiceBuilder
Binding binding = findBinding(wsdl4jDefinition, wsdl4jService);
Definition bindingWSDL = getParentDefinition(wsdl4jDefinition,
binding.getQName(), COMPONENT_BINDING, new HashSet());
- Definition portTypeWSDL = getParentDefinition(bindingWSDL,
- binding.getPortType().getQName(), COMPONENT_PORT_TYPE, new HashSet());
- PortType portType = portTypeWSDL.getPortType(binding.getPortType().getQName());
-
+
+ //do not search for wsdl where port type is defined, this search is depth-first
+ //and might lead to a wsdl where the port is only referenced but undefined
+ //instead look up the port type in the wsdl and only if not found fall back to binding's port type
+ PortType portType = wsdl4jDefinition.getPortType(binding.getPortType().getQName());
+ if (portType == null) {
+ //TODO in case of recursive imports, binding's port type will contain operations with null input message
+ //requires fix for http://sourceforge.net/p/wsdl4j/bugs/39
+ portType = binding.getPortType();
+ }
if (portType == null) {
throw new AxisFault("There is no port type associated with the binding");
@@ -362,7 +367,7 @@ public class WSDL11ToAxisServiceBuilder
addDocumentation(axisService, documentationElement);
axisService.setName(wsdl4jService.getQName().getLocalPart());
- populateEndpoints(binding, bindingWSDL,wsdl4jService, portType, portTypeWSDL);
+ populateEndpoints(binding, bindingWSDL,wsdl4jService, portType);
processPoliciesInDefintion(wsdl4jDefinition);
axisService.getPolicyInclude().setPolicyRegistry(registry);
@@ -458,8 +463,7 @@ public class WSDL11ToAxisServiceBuilder
private void populateEndpoints(Binding binding,
Definition bindingWSDL,
Service wsdl4jService,
- PortType portType,
- Definition portTypeWSDL) throws AxisFault {
+ PortType portType) throws AxisFault {
Map wsdl4jPorts = wsdl4jService.getPorts();
QName bindingName = binding.getQName();
@@ -472,7 +476,7 @@ public class WSDL11ToAxisServiceBuilder
// process the port type for this binding
// although we support multiports they must be belongs to same port type and should have the
// same soap style
- populatePortType(portType, portTypeWSDL);
+ populatePortType(portType);
Binding currentBinding;
Definition currentBindingWSDL = null;
@@ -493,12 +497,12 @@ public class WSDL11ToAxisServiceBuilder
if (axisService.getEndpointName() == null &&
bindingName.equals(port.getBinding().getQName())) {
populateEndpoint(axisEndpoint, port, currentBinding,
- bindingWSDL, portType, portTypeWSDL, true);
+ bindingWSDL, portType, true);
axisService.setEndpointName(axisEndpoint.getName());
axisService.setBindingName(axisEndpoint.getBinding().getName().getLocalPart());
} else {
populateEndpoint(axisEndpoint, port, currentBinding,
- bindingWSDL, portType, portTypeWSDL, false);
+ bindingWSDL, portType, false);
}
axisEndpoint.setParent(axisService);
@@ -524,7 +528,6 @@ public class WSDL11ToAxisServiceBuilder
Binding wsdl4jBinding,
Definition bindingWSDL,
PortType portType,
- Definition portTypeWSDL,
boolean isSetMessageQNames)
throws AxisFault {
@@ -545,7 +548,6 @@ public class WSDL11ToAxisServiceBuilder
wsdl4jBinding,
bindingWSDL,
portType,
- portTypeWSDL,
isSetMessageQNames);
processedBindings.put(wsdl4jBinding.getQName(), axisBinding);
}
@@ -564,6 +566,12 @@ public class WSDL11ToAxisServiceBuilder
if(referenceParameters != null){
axisEndpoint.addParameter(AddressingConstants.REFERENCE_PARAMETER_PARAMETER, new ArrayList(referenceParameters.values()));
}
+ for (OMElement extensibleElement : epr.getExtensibleElements()) {
+ if (AddressingConstants.QNAME_IDENTITY.equals(extensibleElement.getQName())) {
+ axisEndpoint.addParameter(AddressingConstants.ADDRESSING_IDENTITY_PARAMETER, extensibleElement.cloneOMElement());
+ break;
+ }
+ }
} catch (Exception e) {
if(log.isDebugEnabled()){
log.debug("Exception encountered processing embedded wsa:EndpointReference", e);
@@ -573,8 +581,7 @@ public class WSDL11ToAxisServiceBuilder
}
}
- private void populatePortType(PortType wsdl4jPortType,
- Definition portTypeWSDL) throws AxisFault {
+ private void populatePortType(PortType wsdl4jPortType) throws AxisFault {
copyExtensionAttributes(wsdl4jPortType.getExtensionAttributes(),
axisService, PORT_TYPE);
List wsdl4jOperations = wsdl4jPortType.getOperations();
@@ -595,7 +602,7 @@ public class WSDL11ToAxisServiceBuilder
for (Iterator iterator = wsdl4jOperations.iterator(); iterator.hasNext();) {
wsdl4jOperation = (Operation) iterator.next();
- axisOperation = populateOperations(wsdl4jOperation, wsdl4jPortType, portTypeWSDL);
+ axisOperation = populateOperations(wsdl4jOperation, wsdl4jPortType);
addDocumentation(axisOperation, wsdl4jOperation.getDocumentationElement());
if (wsdl4jOperation.getInput() != null) {
addMessageDocumentation(axisOperation, wsdl4jOperation.getInput().getDocumentationElement(), WSDLConstants.MESSAGE_LABEL_IN_VALUE);
@@ -640,7 +647,6 @@ public class WSDL11ToAxisServiceBuilder
Binding wsdl4jBinding,
Definition bindingWSDL,
PortType portType,
- Definition portTypeWSDL,
boolean isSetMessageQNames)
throws AxisFault {
@@ -673,7 +679,7 @@ public class WSDL11ToAxisServiceBuilder
axisBindingOperation.setName(new QName(bindingWSDL.getTargetNamespace(), wsdl4jBindingOperation.getName()));
addDocumentation(axisBindingOperation, wsdl4jBindingOperation.getDocumentationElement());
- axisOperation = axisService.getOperation(new QName(portTypeWSDL.getTargetNamespace(), wsdl4jOperation.getName()));
+ axisOperation = axisService.getOperation(new QName(portType.getQName().getNamespaceURI(), wsdl4jOperation.getName()));
axisBindingOperation.setAxisOperation(axisOperation);
// process ExtensibilityElements of the wsdl4jBinding
@@ -1401,9 +1407,9 @@ public class WSDL11ToAxisServiceBuilder
* @throws AxisFault
*/
private AxisOperation populateOperations(Operation wsdl4jOperation,
- PortType wsdl4jPortType, Definition dif)
+ PortType wsdl4jPortType)
throws AxisFault {
- QName opName = new QName(dif.getTargetNamespace(), wsdl4jOperation.getName());
+ QName opName = new QName(wsdl4jPortType.getQName().getNamespaceURI(), wsdl4jOperation.getName());
// Copy Name Attribute
AxisOperation axisOperation = axisService.getOperation(opName);
if (axisOperation == null) {
@@ -1439,7 +1445,7 @@ public class WSDL11ToAxisServiceBuilder
String action = null;
if (inputActions == null || inputActions.size() == 0) {
action = WSDL11ActionHelper
- .getActionFromInputElement(dif, wsdl4jPortType,
+ .getActionFromInputElement(wsdl4jDefinition, wsdl4jPortType,
wsdl4jOperation, wsdl4jInputMessage);
}
if (action != null) {
@@ -1470,7 +1476,7 @@ public class WSDL11ToAxisServiceBuilder
// with the Default Action Pattern
String action = axisOperation.getOutputAction();
if (action == null) {
- action = WSDL11ActionHelper.getActionFromOutputElement(dif,
+ action = WSDL11ActionHelper.getActionFromOutputElement(wsdl4jDefinition,
wsdl4jPortType,
wsdl4jOperation,
wsdl4jOutputMessage);
@@ -1502,7 +1508,7 @@ public class WSDL11ToAxisServiceBuilder
String action = axisOperation.getOutputAction();
if (action == null) {
action = WSDL11ActionHelper
- .getActionFromInputElement(dif, wsdl4jPortType,
+ .getActionFromInputElement(wsdl4jDefinition, wsdl4jPortType,
wsdl4jOperation, wsdl4jInputMessage);
}
if (action != null) {
@@ -1529,7 +1535,7 @@ public class WSDL11ToAxisServiceBuilder
ArrayList inputActions = axisOperation.getWSAMappingList();
String action = null;
if (inputActions == null || inputActions.size() == 0) {
- action = WSDL11ActionHelper.getActionFromOutputElement(dif,
+ action = WSDL11ActionHelper.getActionFromOutputElement(wsdl4jDefinition,
wsdl4jPortType,
wsdl4jOperation,
wsdl4jOutputMessage);
@@ -1558,7 +1564,7 @@ public class WSDL11ToAxisServiceBuilder
.setName(faultMessage.getQName().getLocalPart());
copyExtensibleElements(faultMessage.getExtensibilityElements(),
- dif, axisFaultMessage, PORT_TYPE_OPERATION_FAULT);
+ wsdl4jDefinition, axisFaultMessage, PORT_TYPE_OPERATION_FAULT);
}
@@ -1567,7 +1573,7 @@ public class WSDL11ToAxisServiceBuilder
// with the Default Action Pattern
String action = axisOperation.getFaultAction(fault.getName());
if (action == null) {
- action = WSDL11ActionHelper.getActionFromFaultElement(dif,
+ action = WSDL11ActionHelper.getActionFromFaultElement(wsdl4jDefinition,
wsdl4jPortType,
wsdl4jOperation, fault);
}
@@ -1588,7 +1594,7 @@ public class WSDL11ToAxisServiceBuilder
String faultAction = axisOperation.getFaultAction(exceptionClassName);
if (faultAction == null) {
- faultAction = WSDL11ActionHelper.getActionFromFaultElement(dif,
+ faultAction = WSDL11ActionHelper.getActionFromFaultElement(wsdl4jDefinition,
wsdl4jPortType,
wsdl4jOperation, fault);
if (log.isDebugEnabled()) {
@@ -2322,7 +2328,7 @@ public class WSDL11ToAxisServiceBuilder
*/
private Definition readInTheWSDLFile(InputStream in) throws WSDLException {
- WSDLReader reader = WSDLFactory.newInstance().newWSDLReader();
+ WSDLReader reader = WSDLUtil.newWSDLReaderWithPopulatedExtensionRegistry();
// switch off the verbose mode for all usecases
reader.setFeature(JAVAX_WSDL_VERBOSE_MODE_KEY, false);
Modified: axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/description/java2wsdl/DefaultSchemaGenerator.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/description/java2wsdl/DefaultSchemaGenerator.java?rev=1818518&r1=1818517&r2=1818518&view=diff
==============================================================================
--- axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/description/java2wsdl/DefaultSchemaGenerator.java (original)
+++ axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/description/java2wsdl/DefaultSchemaGenerator.java Sun Dec 17 22:34:08 2017
@@ -73,6 +73,7 @@ import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
+import java.util.Collections;
import java.util.Comparator;
import java.util.Hashtable;
import java.util.LinkedHashMap;
@@ -301,6 +302,14 @@ public class DefaultSchemaGenerator impl
serviceMethods.add(method);
}
}
+ // The order of the methods returned by getMethods is undefined, but the test cases assume that the
+ // order is the same on all Java versions. Java 6 seems to use reverse lexical order, so we use that
+ // here to make things deterministic.
+ Collections.sort(serviceMethods, new Comparator<Method>() {
+ public int compare(Method o1, Method o2) {
+ return -o1.getName().compareTo(o2.getName());
+ }
+ });
methods = processMethods(serviceMethods.toArray(new Method[serviceMethods.size()]));
for (String extraClassName : getExtraClasses()) {
Modified: axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/engine/DependencyManager.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/engine/DependencyManager.java?rev=1818518&r1=1818517&r2=1818518&view=diff
==============================================================================
--- axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/engine/DependencyManager.java (original)
+++ axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/engine/DependencyManager.java Sun Dec 17 22:34:08 2017
@@ -29,8 +29,10 @@ import org.apache.axis2.context.ServiceG
import org.apache.axis2.description.AxisService;
import org.apache.axis2.description.AxisServiceGroup;
import org.apache.axis2.description.Parameter;
+import org.apache.axis2.i18n.Messages;
import org.apache.axis2.service.Lifecycle;
import org.apache.axis2.util.Loader;
+import org.apache.axis2.util.Utils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -116,7 +118,7 @@ public class DependencyManager {
Class<?> implClass = Loader.loadClass(
classLoader,
((String) implInfoParam.getValue()).trim());
- Object serviceImpl = implClass.newInstance();
+ Object serviceImpl = makeNewServiceObject(service);
serviceContext.setProperty(ServiceContext.SERVICE_OBJECT, serviceImpl);
initServiceObject(serviceImpl, serviceContext);
restoreThreadContext(tc);
@@ -126,6 +128,17 @@ public class DependencyManager {
}
}
}
+
+ protected static Object makeNewServiceObject(AxisService service) throws AxisFault {
+ Object serviceObject = Utils.createServiceObject(service);
+ if (serviceObject == null) {
+ throw new AxisFault(
+ Messages.getMessage("paramIsNotSpecified", "SERVICE_OBJECT_SUPPLIER"));
+ } else {
+ return serviceObject;
+ }
+ }
+
/**
* Notify a service object that it's on death row.
Modified: axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/transport/TransportUtils.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/transport/TransportUtils.java?rev=1818518&r1=1818517&r2=1818518&view=diff
==============================================================================
--- axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/transport/TransportUtils.java (original)
+++ axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/transport/TransportUtils.java Sun Dec 17 22:34:08 2017
@@ -28,7 +28,6 @@ import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMException;
import org.apache.axiom.om.OMOutputFormat;
import org.apache.axiom.om.OMXMLParserWrapper;
-import org.apache.axiom.om.util.DetachableInputStream;
import org.apache.axiom.soap.SOAP11Constants;
import org.apache.axiom.soap.SOAP12Constants;
import org.apache.axiom.soap.SOAPEnvelope;
@@ -106,16 +105,8 @@ public class TransportUtils {
SOAPEnvelope env = createSOAPMessage(msgContext, inStream, contentType);
- // if we were told to detach, we will make the call here, this is only applicable
- // if a DetachableInputStream instance is found on the MessageContext
if(detach) {
- DetachableInputStream dis = (DetachableInputStream) msgContext.getProperty(Constants.DETACHABLE_INPUT_STREAM);
- if(dis != null) {
- if(log.isDebugEnabled()) {
- log.debug("Detaching input stream after SOAPEnvelope construction");
- }
- dis.detach();
- }
+ detachInputStream(msgContext);
}
return env;
} catch (Exception e) {
@@ -196,10 +187,10 @@ public class TransportUtils {
type = getContentType(contentType, msgContext);
Builder builder = MessageProcessorSelector.getMessageBuilder(type, msgContext);
if (builder != null) {
- if (log.isDebugEnabled()) {
- log.debug("createSOAPEnvelope using Builder (" +
- builder.getClass() + ") selected from type (" + type +")");
- }
+ if (log.isDebugEnabled()) {
+ log.debug("createSOAPEnvelope using Builder (" +
+ builder.getClass() + ") selected from type (" + type +")");
+ }
documentElement = builder.processDocument(inStream, contentType, msgContext);
}
}
@@ -241,10 +232,10 @@ public class TransportUtils {
if (contentType != null) {
type = getContentType(contentType, msgContext);
if (builder != null) {
- if (log.isDebugEnabled()) {
- log.debug("createSOAPEnvelope using Builder (" +
- builder.getClass() + ") selected from type (" + type +")");
- }
+ if (log.isDebugEnabled()) {
+ log.debug("createSOAPEnvelope using Builder (" +
+ builder.getClass() + ") selected from type (" + type +")");
+ }
documentElement = builder.processDocument(inStream, contentType, msgContext);
}
}
@@ -438,114 +429,107 @@ public class TransportUtils {
}
}
+ /**
+ * This is a helper method to get the response written flag from the RequestResponseTransport
+ * instance.
+ */
+ public static boolean isResponseWritten(MessageContext messageContext) {
+ RequestResponseTransport reqResTransport = getRequestResponseTransport(messageContext);
+ if (reqResTransport != null) {
+ if (log.isDebugEnabled()) {
+ log.debug("Found RequestResponseTransport returning isResponseWritten()");
+ }
+ return reqResTransport.isResponseWritten();
+ } else {
+ if (log.isDebugEnabled()) {
+ log.debug("Did not find RequestResponseTransport returning false from get"
+ + "ResponseWritten()");
+ }
+ return false;
+ }
+ }
+ /**
+ * This is a helper method to set the response written flag on the RequestResponseTransport
+ * instance.
+ */
+ public static void setResponseWritten(MessageContext messageContext, boolean responseWritten) {
+ RequestResponseTransport reqResTransport = getRequestResponseTransport(messageContext);
+ if (reqResTransport != null) {
+ if (log.isDebugEnabled()) {
+ log.debug("Found RequestResponseTransport setting response written");
+ }
+ reqResTransport.setResponseWritten(responseWritten);
+ } else {
+ if (log.isDebugEnabled()) {
+ log.debug("Did not find RequestResponseTransport cannot set response written");
+ }
+ }
+ }
+ /**
+ * This is an internal helper method to retrieve the RequestResponseTransport instance
+ * from the MessageContext object. The MessageContext may be the response MessageContext so
+ * in that case we will have to retrieve the request MessageContext from the OperationContext.
+ */
+ private static RequestResponseTransport getRequestResponseTransport(MessageContext messageContext) {
+ try {
+ // If this is the request MessageContext we should find it directly by the getProperty()
+ // method
+ RequestResponseTransport transportControl = (RequestResponseTransport)
+ messageContext.getProperty(RequestResponseTransport.TRANSPORT_CONTROL);
+
+ if (transportControl != null) {
+ return transportControl;
+ }
+ // If this is the response MessageContext we need to look for the request MessageContext
+ else if (messageContext.getOperationContext() != null
+ && messageContext.getOperationContext().getMessageContext(WSDLConstants.MESSAGE_LABEL_IN_VALUE) != null) {
+ return (RequestResponseTransport) messageContext.getOperationContext().getMessageContext(
+ WSDLConstants.MESSAGE_LABEL_IN_VALUE).getProperty(RequestResponseTransport.TRANSPORT_CONTROL);
+ }
+ else {
+ return null;
+ }
+ }
+ catch(AxisFault af) {
+ // probably should not be fatal, so just log the message
+ String msg = Messages.getMessage("getMessageContextError", af.toString());
+ log.debug(msg);
+ return null;
+ }
+ }
-
- /**
- * This is a helper method to get the response written flag from the RequestResponseTransport
- * instance.
- */
- public static boolean isResponseWritten(MessageContext messageContext) {
- RequestResponseTransport reqResTransport = getRequestResponseTransport(messageContext);
- if (reqResTransport != null) {
- if (log.isDebugEnabled()) {
- log.debug("Found RequestResponseTransport returning isResponseWritten()");
- }
- return reqResTransport.isResponseWritten();
- } else {
- if (log.isDebugEnabled()) {
- log.debug("Did not find RequestResponseTransport returning false from get"
- + "ResponseWritten()");
- }
- return false;
- }
+ /**
+ * Clean up cached attachment file
+ * @param msgContext
+ */
+ public static void deleteAttachments(MessageContext msgContext) {
+ if (log.isDebugEnabled()) {
+ log.debug("Entering deleteAttachments()");
}
- /**
- * This is a helper method to set the response written flag on the RequestResponseTransport
- * instance.
- */
- public static void setResponseWritten(MessageContext messageContext, boolean responseWritten) {
- RequestResponseTransport reqResTransport = getRequestResponseTransport(messageContext);
- if (reqResTransport != null) {
- if (log.isDebugEnabled()) {
- log.debug("Found RequestResponseTransport setting response written");
- }
- reqResTransport.setResponseWritten(responseWritten);
- } else {
- if (log.isDebugEnabled()) {
- log.debug("Did not find RequestResponseTransport cannot set response written");
- }
- }
- }
-
- /**
- * This is an internal helper method to retrieve the RequestResponseTransport instance
- * from the MessageContext object. The MessageContext may be the response MessageContext so
- * in that case we will have to retrieve the request MessageContext from the OperationContext.
- */
- private static RequestResponseTransport getRequestResponseTransport(MessageContext messageContext) {
- try {
- // If this is the request MessageContext we should find it directly by the getProperty()
- // method
- RequestResponseTransport transportControl = (RequestResponseTransport)
- messageContext.getProperty(RequestResponseTransport.TRANSPORT_CONTROL);
-
- if (transportControl != null) {
- return transportControl;
- }
- // If this is the response MessageContext we need to look for the request MessageContext
- else if (messageContext.getOperationContext() != null
- && messageContext.getOperationContext()
- .getMessageContext(WSDLConstants.MESSAGE_LABEL_IN_VALUE) != null) {
- return (RequestResponseTransport) messageContext.
- getOperationContext().getMessageContext(
- WSDLConstants.MESSAGE_LABEL_IN_VALUE).getProperty(
- RequestResponseTransport.TRANSPORT_CONTROL);
- }
- else {
- return null;
- }
- }
- catch(AxisFault af) {
- // probably should not be fatal, so just log the message
- String msg = Messages.getMessage("getMessageContextError", af.toString());
- log.debug(msg);
- return null;
- }
- }
-
- /**
- * Clean up cached attachment file
- * @param msgContext
- */
- public static void deleteAttachments(MessageContext msgContext) {
- if (log.isDebugEnabled()) {
- log.debug("Entering deleteAttachments()");
- }
-
- Attachments attachments = msgContext.getAttachmentMap();
-
- if (attachments != null) {
- // Get the list of Content IDs for the attachments...but does not try to pull the stream for new attachments.
- // (Pulling the stream for new attachments will probably fail...the stream is probably closed)
- List keys = attachments.getContentIDList();
- if (keys != null && keys.size() > 0) {
- String key = null;
- File file = null;
- LifecycleManager lcm = (LifecycleManager)msgContext.getRootContext().getAxisConfiguration().getParameterValue(DeploymentConstants.ATTACHMENTS_LIFECYCLE_MANAGER);
- DataSource dataSource = null;
- for (int i = 0; i < keys.size(); i++) {
- try {
- key = (String) keys.get(i);
- dataSource = attachments.getDataHandler(key).getDataSource();
- if(dataSource instanceof CachedFileDataSource){
- file = ((CachedFileDataSource)dataSource).getFile();
- if (log.isDebugEnabled()) {
- log.debug("Delete cache attachment file: "+file.getName());
+ Attachments attachments = msgContext.getAttachmentMap();
+
+ if (attachments != null) {
+ // Get the list of Content IDs for the attachments...but does not try to pull the stream for new attachments.
+ // (Pulling the stream for new attachments will probably fail...the stream is probably closed)
+ List keys = attachments.getContentIDList();
+ if (keys != null && keys.size() > 0) {
+ String key = null;
+ File file = null;
+ LifecycleManager lcm = (LifecycleManager)msgContext.getRootContext().getAxisConfiguration().getParameterValue(DeploymentConstants.ATTACHMENTS_LIFECYCLE_MANAGER);
+ DataSource dataSource = null;
+ for (int i = 0; i < keys.size(); i++) {
+ try {
+ key = (String) keys.get(i);
+ dataSource = attachments.getDataHandler(key).getDataSource();
+ if(dataSource instanceof CachedFileDataSource){
+ file = ((CachedFileDataSource)dataSource).getFile();
+ if (log.isDebugEnabled()) {
+ log.debug("Delete cache attachment file: "+file.getName());
}
- if(lcm!=null){
+ if(lcm!=null){
if(log.isDebugEnabled()){
log.debug("deleting file using lifecyclemanager");
}
@@ -553,63 +537,59 @@ public class TransportUtils {
}else{
file.delete();
}
- }
- }
- catch (Exception e) {
- if (log.isDebugEnabled()) {
- log.debug("Delete cache attachment file failed"+ e.getMessage());
- }
-
- if (file != null) {
- if(lcm!=null){
- try{
- lcm.deleteOnExit(file);
- }catch(Exception ex){
- file.deleteOnExit();
- }
- }
- else{
- file.deleteOnExit();
- }
- }
- }
- }
- }
- }
-
- if (log.isDebugEnabled()) {
- log.debug("Exiting deleteAttachments()");
- }
- }
-
- /**
- * This method can be called by components wishing to detach the DetachableInputStream
- * object that is present on the MessageContext. This is meant to shield components
- * from any logic that needs to be executed on the DetachableInputStream in order to
- * have it effectively detached. If the DetachableInputStream is not present, or if
- * the supplied MessageContext is null, no action will be taken.
- */
- public static void detachInputStream(MessageContext msgContext) throws AxisFault {
- try {
- if(msgContext != null
- &&
- msgContext.getProperty(Constants.DETACHABLE_INPUT_STREAM) != null) {
- DetachableInputStream dis = (DetachableInputStream) msgContext.getProperty(Constants.DETACHABLE_INPUT_STREAM);
- if(log.isDebugEnabled()) {
- log.debug("Detaching DetachableInputStream: " + dis);
- }
- dis.detach();
- }
- else {
- if(log.isDebugEnabled()) {
- log.debug("Detach not performed for MessageContext: " + msgContext);
- }
- }
- }
- catch(Throwable t) {
- throw AxisFault.makeFault(t);
- }
- }
+ }
+ }
+ catch (Exception e) {
+ if (log.isDebugEnabled()) {
+ log.debug("Delete cache attachment file failed"+ e.getMessage());
+ }
+
+ if (file != null) {
+ if(lcm!=null){
+ try{
+ lcm.deleteOnExit(file);
+ }catch(Exception ex){
+ file.deleteOnExit();
+ }
+ }
+ else{
+ file.deleteOnExit();
+ }
+ }
+ }
+ }
+ }
+ }
+
+ if (log.isDebugEnabled()) {
+ log.debug("Exiting deleteAttachments()");
+ }
+ }
+
+ /**
+ * Prepare the message in the given message context so that the underlying input stream can be
+ * closed.
+ *
+ * @param msgContext
+ */
+ public static void detachInputStream(MessageContext msgContext) throws AxisFault {
+ if (msgContext != null) {
+ OMXMLParserWrapper builder = (OMXMLParserWrapper)msgContext.getProperty(Constants.BUILDER);
+ if (builder != null) {
+ builder.detach();
+ } else {
+ Attachments attachments = msgContext.getAttachmentMap(false);
+ if (attachments != null) {
+ attachments.getAllContentIDs();
+ } else {
+ SOAPEnvelope envelope = msgContext.getEnvelope();
+ if (envelope != null) {
+ envelope.build();
+ }
+ }
+ }
+ }
+ }
/**
* <p>
@@ -746,4 +726,3 @@ public class TransportUtils {
}
}
-
\ No newline at end of file
Modified: axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/transport/http/HTTPConstants.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/transport/http/HTTPConstants.java?rev=1818518&r1=1818517&r2=1818518&view=diff
==============================================================================
--- axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/transport/http/HTTPConstants.java (original)
+++ axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/transport/http/HTTPConstants.java Sun Dec 17 22:34:08 2017
@@ -512,11 +512,6 @@ public class HTTPConstants {
public static final String AUTO_RELEASE_CONNECTION = "AutoReleaseConnection" ;
/**
- * Cleanup response
- */
- public static final String CLEANUP_RESPONSE = "CleanupResponse";
-
- /**
* Method getBytes.
*
* @param data
Modified: axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/transport/http/SOAPMessageFormatter.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/transport/http/SOAPMessageFormatter.java?rev=1818518&r1=1818517&r2=1818518&view=diff
==============================================================================
--- axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/transport/http/SOAPMessageFormatter.java (original)
+++ axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/transport/http/SOAPMessageFormatter.java Sun Dec 17 22:34:08 2017
@@ -20,9 +20,13 @@
package org.apache.axis2.transport.http;
import org.apache.axiom.attachments.Attachments;
+import org.apache.axiom.om.OMContainer;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMOutputFormat;
import org.apache.axiom.om.impl.OMMultipartWriter;
+import org.apache.axiom.soap.SOAPEnvelope;
+import org.apache.axiom.soap.SOAPFactory;
+import org.apache.axiom.soap.SOAPMessage;
import org.apache.axiom.util.UIDGenerator;
import org.apache.axis2.AxisFault;
import org.apache.axis2.Constants;
@@ -67,11 +71,23 @@ public class SOAPMessageFormatter implem
if (!(format.isOptimized()) && format.isDoingSWA()) {
writeSwAMessage(msgCtxt, out, format, preserve);
} else {
- OMElement element = msgCtxt.getEnvelope();
+ SOAPEnvelope envelope = msgCtxt.getEnvelope();
+ // Always use a SOAPMessage for serialization so that we produce an XML declaration.
+ // Note that an XML declaration shouldn't be necessary except for weird cases such as
+ // the UDP transport. This is for compatibility with Axis2 1.7.0 and Axiom 1.2.x;
+ // Axiom 1.3.x no longer produces an XML declaration when serializing a SOAPEnvelope.
+ SOAPMessage message;
+ OMContainer parent = envelope.getParent();
+ if (parent instanceof SOAPMessage) {
+ message = (SOAPMessage)parent;
+ } else {
+ message = ((SOAPFactory)envelope.getOMFactory()).createSOAPMessage();
+ message.setSOAPEnvelope(envelope);
+ }
if (preserve) {
- element.serialize(out, format);
+ message.serialize(out, format);
} else {
- element.serializeAndConsume(out, format);
+ message.serializeAndConsume(out, format);
}
}
} catch (XMLStreamException e) {
@@ -85,34 +101,9 @@ public class SOAPMessageFormatter implem
public byte[] getBytes(MessageContext msgCtxt, OMOutputFormat format)
throws AxisFault {
- if (log.isDebugEnabled()) {
- log.debug("start getBytes()");
- log.debug(" isOptimized=" + format.isOptimized());
- log.debug(" isDoingSWA=" + format.isDoingSWA());
- }
- OMElement element = msgCtxt.getEnvelope();
- try {
- ByteArrayOutputStream bytesOut = new ByteArrayOutputStream();
- if (!format.isOptimized()) {
- if (format.isDoingSWA()) {
- writeSwAMessage(msgCtxt, bytesOut, format, false);
- } else {
- element.serializeAndConsume(bytesOut, format);
- }
- return bytesOut.toByteArray();
- } else {
- element.serializeAndConsume(bytesOut, format);
- return bytesOut.toByteArray();
- }
- } catch (XMLStreamException e) {
- throw AxisFault.makeFault(e);
- } catch (FactoryConfigurationError e) {
- throw AxisFault.makeFault(e);
- } finally {
- if (log.isDebugEnabled()) {
- log.debug("end getBytes()");
- }
- }
+ ByteArrayOutputStream out = new ByteArrayOutputStream();
+ writeTo(msgCtxt, format, out, true);
+ return out.toByteArray();
}
public String getContentType(MessageContext msgCtxt, OMOutputFormat format,
Modified: axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/util/MessageProcessorSelector.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/util/MessageProcessorSelector.java?rev=1818518&r1=1818517&r2=1818518&view=diff
==============================================================================
--- axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/util/MessageProcessorSelector.java (original)
+++ axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/util/MessageProcessorSelector.java Sun Dec 17 22:34:08 2017
@@ -19,14 +19,6 @@
package org.apache.axis2.util;
-import org.apache.axiom.attachments.Attachments;
-import org.apache.axiom.om.OMException;
-import org.apache.axiom.om.impl.MTOMConstants;
-import org.apache.axiom.om.impl.builder.StAXBuilder;
-import org.apache.axiom.om.impl.builder.StAXOMBuilder;
-import org.apache.axiom.om.impl.builder.XOPAwareStAXOMBuilder;
-import org.apache.axiom.soap.impl.builder.MTOMStAXSOAPModelBuilder;
-import org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder;
import org.apache.axis2.AxisFault;
import org.apache.axis2.Constants;
import org.apache.axis2.builder.Builder;
@@ -41,9 +33,6 @@ import org.apache.axis2.transport.http.X
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import javax.xml.parsers.FactoryConfigurationError;
-import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamReader;
import java.util.Map;
/**
@@ -163,47 +152,6 @@ public class MessageProcessorSelector {
return messageFormatter;
}
- public static StAXBuilder getAttachmentBuilder(MessageContext msgContext,
- Attachments attachments, XMLStreamReader streamReader,
- String soapEnvelopeNamespaceURI,
- boolean isSOAP)
- throws OMException, XMLStreamException, FactoryConfigurationError {
-
- StAXBuilder builder = null;
-
- if (isSOAP) {
- if (attachments.getAttachmentSpecType().equals(
- MTOMConstants.MTOM_TYPE)) {
- //Creates the MTOM specific MTOMStAXSOAPModelBuilder
- builder = new MTOMStAXSOAPModelBuilder(streamReader,
- attachments, soapEnvelopeNamespaceURI);
- msgContext.setDoingMTOM(true);
- } else if (attachments.getAttachmentSpecType().equals(
- MTOMConstants.SWA_TYPE)) {
- builder = new StAXSOAPModelBuilder(streamReader,
- soapEnvelopeNamespaceURI);
- } else if (attachments.getAttachmentSpecType().equals(
- MTOMConstants.SWA_TYPE_12)) {
- builder = new StAXSOAPModelBuilder(streamReader,
- soapEnvelopeNamespaceURI);
- }
-
- }
- // To handle REST XOP case
- else {
- if (attachments.getAttachmentSpecType().equals(MTOMConstants.MTOM_TYPE)) {
- builder = new XOPAwareStAXOMBuilder(streamReader, attachments);
-
- } else if (attachments.getAttachmentSpecType().equals(MTOMConstants.SWA_TYPE)) {
- builder = new StAXOMBuilder(streamReader);
- } else if (attachments.getAttachmentSpecType().equals(MTOMConstants.SWA_TYPE_12)) {
- builder = new StAXOMBuilder(streamReader);
- }
- }
-
- return builder;
- }
-
private static String getMessageFormatterProperty(MessageContext msgContext) {
String messageFormatterProperty = null;
Object property = msgContext
Modified: axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/util/Utils.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/util/Utils.java?rev=1818518&r1=1818517&r2=1818518&view=diff
==============================================================================
--- axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/util/Utils.java (original)
+++ axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/util/Utils.java Sun Dec 17 22:34:08 2017
@@ -733,10 +733,9 @@ public class Utils {
final Class<?> serviceClass = Loader.loadClass(
classLoader,
((String) serviceClassParam.getValue()).trim());
- String className = ((String) serviceClassParam.getValue()).trim();
- Class serviceObjectMaker = Loader.loadClass(classLoader, className);
- if (serviceObjectMaker.getModifiers() != Modifier.PUBLIC) {
- throw new AxisFault("Service class " + className +
+ int mod = serviceClass.getModifiers();
+ if (!Modifier.isPublic(mod) || Modifier.isAbstract(mod) || Modifier.isInterface(mod)) {
+ throw new AxisFault("Service class " + serviceClass.getName() +
" must have public as access Modifier");
}
return org.apache.axis2.java.security.AccessController.doPrivileged(
Modified: axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/util/XMLUtils.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/util/XMLUtils.java?rev=1818518&r1=1818517&r2=1818518&view=diff
==============================================================================
--- axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/util/XMLUtils.java (original)
+++ axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/util/XMLUtils.java Sun Dec 17 22:34:08 2017
@@ -45,12 +45,6 @@ import javax.xml.parsers.ParserConfigura
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import javax.xml.stream.XMLStreamException;
-import javax.xml.transform.Result;
-import javax.xml.transform.Source;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.dom.DOMSource;
-import javax.xml.transform.stream.StreamResult;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
@@ -509,40 +503,10 @@ public class XMLUtils {
* @throws Exception
*/
public static OMElement toOM(Element element) throws Exception {
- return toOM(element, true);
+ OMXMLParserWrapper builder = OMXMLBuilderFactory.createOMBuilder(element, true);
+ builder.detach();
+ return builder.getDocumentElement();
}
-
- /**
- * Convert DOM Element into a fully built OMElement
- * @param element
- * @param buildAll if true, full OM tree is immediately built. if false, caller is responsible
- * for building the tree and closing the parser.
- * @return
- * @throws Exception
- */
- public static OMElement toOM(Element element, boolean buildAll) throws Exception {
-
- Source source = new DOMSource(element);
-
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- Result result = new StreamResult(baos);
-
- Transformer xformer = TransformerFactory.newInstance().newTransformer();
- xformer.transform(source, result);
-
- ByteArrayInputStream is = new ByteArrayInputStream(baos.toByteArray());
-
- OMXMLParserWrapper builder = OMXMLBuilderFactory.createOMBuilder(is);
- builder.setCache(true);
-
- OMElement omElement = builder.getDocumentElement();
- if (buildAll) {
- omElement.build();
- builder.close();
- }
- return omElement;
- }
-
/**
* Converts a given OMElement to a DOM Element.
@@ -588,7 +552,6 @@ public class XMLUtils {
*/
public static OMNode toOM(InputStream inputStream, boolean buildAll) throws XMLStreamException {
OMXMLParserWrapper builder = OMXMLBuilderFactory.createOMBuilder(inputStream);
- builder.setCache(true);
OMNode omNode = builder.getDocumentElement();
if (buildAll) {
@@ -623,7 +586,6 @@ public class XMLUtils {
*/
public static OMNode toOM(Reader reader, boolean buildAll) throws XMLStreamException {
OMXMLParserWrapper builder = OMXMLBuilderFactory.createOMBuilder(reader);
- builder.setCache(true);
OMNode omNode = builder.getDocumentElement();
if (buildAll) {
Modified: axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/wsdl/WSDLUtil.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/wsdl/WSDLUtil.java?rev=1818518&r1=1818517&r2=1818518&view=diff
==============================================================================
--- axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/wsdl/WSDLUtil.java (original)
+++ axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/wsdl/WSDLUtil.java Sun Dec 17 22:34:08 2017
@@ -19,8 +19,17 @@
package org.apache.axis2.wsdl;
+import org.apache.axis2.addressing.AddressingConstants;
import org.apache.axis2.description.WSDL2Constants;
+import javax.wsdl.Fault;
+import javax.wsdl.Input;
+import javax.wsdl.Output;
+import javax.wsdl.WSDLException;
+import javax.wsdl.extensions.AttributeExtensible;
+import javax.wsdl.extensions.ExtensionRegistry;
+import javax.wsdl.factory.WSDLFactory;
+import javax.wsdl.xml.WSDLReader;
import javax.xml.namespace.QName;
/**
@@ -108,4 +117,68 @@ public class WSDLUtil {
return buffer.toString();
}
+ /**
+ * Registers default extension attributes types to given <code>extensionRegistry</code> instance.
+ * <p>
+ * The method configures the following attributes of {@link Input}, {@link Output} and {@link Fault} WSDL elements
+ * to use {@link AttributeExtensible.STRING_TYPE}:
+ * <ul>
+ * <li>{http://www.w3.org/2005/08/addressing}Action</li>
+ * <li>{http://www.w3.org/2006/05/addressing/wsdl}Action</li>
+ * <li>{http://www.w3.org/2007/05/addressing/metadata}Action</li>
+ * <li>{http://schemas.xmlsoap.org/ws/2004/08/addressing}Action</li>
+ * </ul>
+ * </p>
+ * @param extensionRegistry The extension registry to add default extension attribute types to. Must not be null.
+ */
+ public static void registerDefaultExtensionAttributeTypes(ExtensionRegistry extensionRegistry) {
+ if (extensionRegistry == null) {
+ throw new IllegalArgumentException("Extension registry must not be null");
+ }
+
+ QName finalWSANS = new QName(AddressingConstants.Final.WSA_NAMESPACE, AddressingConstants.WSA_ACTION);
+ extensionRegistry.registerExtensionAttributeType(Input.class, finalWSANS, AttributeExtensible.STRING_TYPE);
+ extensionRegistry.registerExtensionAttributeType(Output.class, finalWSANS, AttributeExtensible.STRING_TYPE);
+ extensionRegistry.registerExtensionAttributeType(Fault.class, finalWSANS, AttributeExtensible.STRING_TYPE);
+
+ QName finalWSAWNS = new QName(AddressingConstants.Final.WSAW_NAMESPACE, AddressingConstants.WSA_ACTION);
+ extensionRegistry.registerExtensionAttributeType(Input.class, finalWSAWNS, AttributeExtensible.STRING_TYPE);
+ extensionRegistry.registerExtensionAttributeType(Output.class, finalWSAWNS, AttributeExtensible.STRING_TYPE);
+ extensionRegistry.registerExtensionAttributeType(Fault.class, finalWSAWNS, AttributeExtensible.STRING_TYPE);
+
+ QName finalWSAMNS = new QName(AddressingConstants.Final.WSAM_NAMESPACE, AddressingConstants.WSA_ACTION);
+ extensionRegistry.registerExtensionAttributeType(Input.class, finalWSAMNS, AttributeExtensible.STRING_TYPE);
+ extensionRegistry.registerExtensionAttributeType(Output.class, finalWSAMNS, AttributeExtensible.STRING_TYPE);
+ extensionRegistry.registerExtensionAttributeType(Fault.class, finalWSAMNS, AttributeExtensible.STRING_TYPE);
+
+ QName submissionWSAWNS = new QName(AddressingConstants.Submission.WSA_NAMESPACE, AddressingConstants.WSA_ACTION);
+ extensionRegistry.registerExtensionAttributeType(Input.class, submissionWSAWNS, AttributeExtensible.STRING_TYPE);
+ extensionRegistry.registerExtensionAttributeType(Output.class, submissionWSAWNS, AttributeExtensible.STRING_TYPE);
+ extensionRegistry.registerExtensionAttributeType(Fault.class, submissionWSAWNS, AttributeExtensible.STRING_TYPE);
+ }
+
+ /**
+ * Creates a new WSDLReader and configures it with a {@link WSDLFactory#newPopulatedExtensionRegistry()} if it does not specify an extension registry.
+ * The method will register default extension attribute types in WSDLReader's {@link WSDLReader#getExtensionRegistry() extensionRegistry},
+ * see {@link #registerDefaultExtensionAttributeTypes(ExtensionRegistry)}.
+ *
+ * @return The newly created WSDLReader instance.
+ * @throws WSDLException
+ */
+ public static WSDLReader newWSDLReaderWithPopulatedExtensionRegistry()
+ throws WSDLException {
+ WSDLFactory wsdlFactory = WSDLFactory.newInstance();
+ WSDLReader reader = wsdlFactory.newWSDLReader();
+
+ ExtensionRegistry extensionRegistry = reader.getExtensionRegistry();
+ if (extensionRegistry == null) {
+ extensionRegistry = wsdlFactory.newPopulatedExtensionRegistry();
+ }
+
+ WSDLUtil.registerDefaultExtensionAttributeTypes(extensionRegistry);
+
+ reader.setExtensionRegistry(extensionRegistry);
+
+ return reader;
+ }
}
Modified: axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/wsdl/util/WSDLWrapperReloadImpl.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/wsdl/util/WSDLWrapperReloadImpl.java?rev=1818518&r1=1818517&r2=1818518&view=diff
==============================================================================
--- axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/wsdl/util/WSDLWrapperReloadImpl.java (original)
+++ axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/wsdl/util/WSDLWrapperReloadImpl.java Sun Dec 17 22:34:08 2017
@@ -18,12 +18,13 @@
*/
package org.apache.axis2.wsdl.util;
-
-import org.apache.axis2.java.security.AccessController;
-import org.apache.axis2.util.JavaUtils;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.w3c.dom.Element;
+
+import org.apache.axis2.java.security.AccessController;
+import org.apache.axis2.util.JavaUtils;
+import org.apache.axis2.wsdl.WSDLUtil;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.w3c.dom.Element;
import javax.wsdl.Binding;
import javax.wsdl.BindingFault;
@@ -42,13 +43,12 @@ import javax.wsdl.Port;
import javax.wsdl.PortType;
import javax.wsdl.Service;
import javax.wsdl.Types;
-import javax.wsdl.WSDLException;
-import javax.wsdl.extensions.ExtensibilityElement;
-import javax.wsdl.extensions.ExtensionRegistry;
-import javax.wsdl.factory.WSDLFactory;
-import javax.wsdl.xml.WSDLReader;
-import javax.xml.namespace.QName;
-import java.io.File;
+import javax.wsdl.WSDLException;
+import javax.wsdl.extensions.ExtensibilityElement;
+import javax.wsdl.extensions.ExtensionRegistry;
+import javax.wsdl.xml.WSDLReader;
+import javax.xml.namespace.QName;
+import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.lang.ref.SoftReference;
@@ -1514,14 +1514,13 @@ public class WSDLWrapperReloadImpl imple
*/
private WSDLReader getWSDLReader() throws WSDLException {
WSDLReader reader;
- try {
- reader = (WSDLReader) AccessController.doPrivileged(new PrivilegedExceptionAction() {
- public Object run() throws WSDLException {
- WSDLFactory factory = WSDLFactory.newInstance();
- return factory.newWSDLReader();
- }
- });
- } catch (PrivilegedActionException e) {
+ try {
+ reader = (WSDLReader) AccessController.doPrivileged(new PrivilegedExceptionAction() {
+ public Object run() throws WSDLException {
+ return WSDLUtil.newWSDLReaderWithPopulatedExtensionRegistry();
+ }
+ });
+ } catch (PrivilegedActionException e) {
throw (WSDLException) e.getException();
}
// prevent system out from occurring
Modified: axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/test-resources/deployment/BadConfigOrderChange/axis2.xml
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/test-resources/deployment/BadConfigOrderChange/axis2.xml?rev=1818518&r1=1818517&r2=1818518&view=diff
==============================================================================
--- axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/test-resources/deployment/BadConfigOrderChange/axis2.xml (original)
+++ axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/test-resources/deployment/BadConfigOrderChange/axis2.xml Sun Dec 17 22:34:08 2017
@@ -33,7 +33,7 @@
<messageReceiver mep="INOUT" class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
- <transportSender name="http" class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
+ <transportSender name="http" class="org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender">
<parameter name="PROTOCOL">HTTP/1.0</parameter>
</transportSender>
Modified: axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/test-resources/deployment/SystemPhaseRemove/axis2.xml
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/test-resources/deployment/SystemPhaseRemove/axis2.xml?rev=1818518&r1=1818517&r2=1818518&view=diff
==============================================================================
--- axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/test-resources/deployment/SystemPhaseRemove/axis2.xml (original)
+++ axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/test-resources/deployment/SystemPhaseRemove/axis2.xml Sun Dec 17 22:34:08 2017
@@ -34,7 +34,7 @@
<messageReceiver mep="INOUT" class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
- <transportSender name="http" class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
+ <transportSender name="http" class="org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender">
<parameter name="PROTOCOL">HTTP/1.0</parameter>
</transportSender>