svn commit: r918320 - in /axis/axis2/java/core/trunk/modules: kernel/src/org/apache/axis2/engine/DispatchPhase.java transport/local/src/org/apache/axis2/transport/local/LocalTransportReceiver.java
Author: azeez Date: Wed Mar 3 04:07:50 2010 New Revision: 918320 URL: http://svn.apache.org/viewvc?rev=918320&view=rev Log: Applying patch from Dumindu Pallewela https://issues.apache.org/jira/browse/AXIS2-4636 Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/engine/DispatchPhase.java axis/axis2/java/core/trunk/modules/transport/local/src/org/apache/axis2/transport/local/LocalTransportReceiver.java Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/engine/DispatchPhase.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/engine/DispatchPhase.java?rev=918320&r1=918319&r2=918320&view=diff == --- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/engine/DispatchPhase.java (original) +++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/engine/DispatchPhase.java Wed Mar 3 04:07:50 2010 @@ -202,7 +202,7 @@ } /** - * To check wether the incoming request has come in valid transport , simpley the transports + * To check whether the incoming request has come in valid transport , simply the transports * that service author wants to expose * * @param msgctx the current MessageContext @@ -214,10 +214,16 @@ return; } else { List trs = service.getExposedTransports(); -String incommingTrs = msgctx.getIncomingTransportName(); +String incomingTrs = msgctx.getIncomingTransportName(); + +//local transport is a special case, it need not be exposed. +if (Constants.TRANSPORT_LOCAL.equals(incomingTrs)) { +return; +} + for (int i = 0; i < trs.size(); i++) { String tr = (String) trs.get(i); -if (incommingTrs != null && incommingTrs.equals(tr)) { +if (incomingTrs != null && incomingTrs.equals(tr)) { return; } } Modified: axis/axis2/java/core/trunk/modules/transport/local/src/org/apache/axis2/transport/local/LocalTransportReceiver.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/transport/local/src/org/apache/axis2/transport/local/LocalTransportReceiver.java?rev=918320&r1=918319&r2=918320&view=diff == --- axis/axis2/java/core/trunk/modules/transport/local/src/org/apache/axis2/transport/local/LocalTransportReceiver.java (original) +++ axis/axis2/java/core/trunk/modules/transport/local/src/org/apache/axis2/transport/local/LocalTransportReceiver.java Wed Mar 3 04:07:50 2010 @@ -99,6 +99,7 @@ localTransportResOut.setSender(new LocalResponder(response)); try { +msgCtx.setIncomingTransportName(Constants.TRANSPORT_LOCAL); msgCtx.setTransportIn(tIn); msgCtx.setTransportOut(localTransportResOut); msgCtx.setProperty(MessageContext.TRANSPORT_OUT, response);
svn commit: r947015 - /axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/RepositoryListener.java
Author: azeez Date: Fri May 21 14:12:45 2010 New Revision: 947015 URL: http://svn.apache.org/viewvc?rev=947015&view=rev Log: Ignore directories starting with . Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/RepositoryListener.java Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/RepositoryListener.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/RepositoryListener.java?rev=947015&r1=947014&r2=947015&view=diff == --- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/RepositoryListener.java (original) +++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/RepositoryListener.java Fri May 21 14:12:45 2010 @@ -339,7 +339,23 @@ public class RepositoryListener implemen if (isSourceControlDir(file)) { continue; } -if (!file.isDirectory()) { +if (file.isDirectory()) { +if (!(servicesDir && "lib".equalsIgnoreCase(file.getName())) && +!file.getName().startsWith(".")) { +File servicesXML = new File(file, DeploymentConstants.SERVICES_XML); +if (!servicesXML.exists()) { +servicesXML = +new File(file, DeploymentConstants.SERVICES_XML.toLowerCase()); +} +if (servicesXML.exists()) { +addFileToDeploy(file, deploymentEngine.getServiceDeployer(), +WSInfo.TYPE_SERVICE); +} else { +findServicesInDirectory(file); +} +undeployableDir = false; +} +} else { if (DeploymentFileData.isServiceArchiveFile(file.getName())) { addFileToDeploy(file, deploymentEngine.getServiceDeployer(), WSInfo.TYPE_SERVICE); @@ -355,21 +371,6 @@ public class RepositoryListener implemen undeployableDir = false; } } -} else { -if (!(servicesDir && "lib".equalsIgnoreCase(file.getName( { -File servicesXML = new File(file, DeploymentConstants.SERVICES_XML); -if (!servicesXML.exists()) { -servicesXML = -new File(file, DeploymentConstants.SERVICES_XML.toLowerCase()); -} -if (servicesXML.exists()) { -addFileToDeploy(file, deploymentEngine.getServiceDeployer(), -WSInfo.TYPE_SERVICE); -} else { -findServicesInDirectory(file); -} -undeployableDir = false; -} } } if (!servicesDir && undeployableDir) {
svn commit: r947552 - /axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/ModuleDeployer.java
Author: azeez Date: Mon May 24 07:14:53 2010 New Revision: 947552 URL: http://svn.apache.org/viewvc?rev=947552&view=rev Log: Ignore special meta directories starting with "." Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/ModuleDeployer.java Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/ModuleDeployer.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/ModuleDeployer.java?rev=947552&r1=947551&r2=947552&view=diff == --- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/ModuleDeployer.java (original) +++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/ModuleDeployer.java Mon May 24 07:14:53 2010 @@ -59,10 +59,15 @@ public class ModuleDeployer implements D //Will process the file and add that to axisConfig public void deploy(DeploymentFileData deploymentFileData) { +File deploymentFile = deploymentFileData.getFile(); +boolean isDirectory = deploymentFile.isDirectory(); +if (isDirectory && deploymentFileData.getName().startsWith(".")) { // Ignore special meta directories starting with . +return; +} + ArchiveReader archiveReader = new ArchiveReader(); String moduleStatus = ""; StringWriter errorWriter = new StringWriter(); -boolean isDirectory = deploymentFileData.getFile().isDirectory(); try { deploymentFileData.setClassLoader(isDirectory, @@ -73,7 +78,7 @@ public class ModuleDeployer implements D metaData.setModuleClassLoader(deploymentFileData.getClassLoader()); metaData.setParent(axisConfig); archiveReader.readModuleArchive(deploymentFileData, metaData, isDirectory, axisConfig); -URL url = deploymentFileData.getFile().toURL(); +URL url = deploymentFile.toURL(); metaData.setFileName(url); DeploymentEngine.addNewModule(metaData, axisConfig); log.info(Messages.getMessage(DeploymentErrorMsgs.DEPLOYING_MODULE,
svn commit: r947705 - /axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/axis2_default.xml
Author: azeez Date: Mon May 24 16:31:53 2010 New Revision: 947705 URL: http://svn.apache.org/viewvc?rev=947705&view=rev Log: Adding more default MessageReceivers Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/axis2_default.xml Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/axis2_default.xml URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/axis2_default.xml?rev=947705&r1=947704&r2=947705&view=diff == --- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/axis2_default.xml (original) +++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/axis2_default.xml Mon May 24 16:31:53 2010 @@ -88,6 +88,12 @@ class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver"/> http://www.w3.org/2006/01/wsdl/in-out"; class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/> +http://www.w3.org/ns/wsdl/in-only"; + class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver"/> +http://www.w3.org/ns/wsdl/robust-in-only"; + class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver"/> +http://www.w3.org/ns/wsdl/in-out"; + class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
svn commit: r949379 - in /axis/axis2/java/core/trunk/modules: clustering/pom.xml kernel/src/org/apache/axis2/deployment/axis2_default.xml metadata/pom.xml saaj/pom.xml
Author: azeez Date: Sat May 29 11:07:32 2010 New Revision: 949379 URL: http://svn.apache.org/viewvc?rev=949379&view=rev Log: Adding more default MSG receivers Modified: axis/axis2/java/core/trunk/modules/clustering/pom.xml axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/axis2_default.xml axis/axis2/java/core/trunk/modules/metadata/pom.xml axis/axis2/java/core/trunk/modules/saaj/pom.xml Modified: axis/axis2/java/core/trunk/modules/clustering/pom.xml URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/clustering/pom.xml?rev=949379&r1=949378&r2=949379&view=diff == --- axis/axis2/java/core/trunk/modules/clustering/pom.xml (original) +++ axis/axis2/java/core/trunk/modules/clustering/pom.xml Sat May 29 11:07:32 2010 @@ -40,6 +40,12 @@ org.apache.axis2 +axis2-adb +${version} +test + + +org.apache.axis2 axis2-transport-http ${version} test Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/axis2_default.xml URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/axis2_default.xml?rev=949379&r1=949378&r2=949379&view=diff == --- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/axis2_default.xml (original) +++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/axis2_default.xml Sat May 29 11:07:32 2010 @@ -88,6 +88,12 @@ class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver"/> http://www.w3.org/2006/01/wsdl/in-out"; class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/> +http://www.w3.org/ns/wsdl/in-only"; + class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver"/> +http://www.w3.org/ns/wsdl/robust-in-only"; + class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver"/> +http://www.w3.org/ns/wsdl/in-out"; + class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/> Modified: axis/axis2/java/core/trunk/modules/metadata/pom.xml URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/metadata/pom.xml?rev=949379&r1=949378&r2=949379&view=diff == --- axis/axis2/java/core/trunk/modules/metadata/pom.xml (original) +++ axis/axis2/java/core/trunk/modules/metadata/pom.xml Sat May 29 11:07:32 2010 @@ -38,6 +38,12 @@ ${version} +org.apache.axis2 +axis2-adb +${version} +test + + org.apache.geronimo.specs geronimo-jaxws_2.2_spec Modified: axis/axis2/java/core/trunk/modules/saaj/pom.xml URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/saaj/pom.xml?rev=949379&r1=949378&r2=949379&view=diff == --- axis/axis2/java/core/trunk/modules/saaj/pom.xml (original) +++ axis/axis2/java/core/trunk/modules/saaj/pom.xml Sat May 29 11:07:32 2010 @@ -42,6 +42,12 @@ org.apache.geronimo.specs geronimo-saaj_1.3_spec + +org.apache.axis2 +axis2-adb +${version} +test + org.apache.axis2 axis2-transport-http
svn commit: r952925 - /axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/engine/AxisConfiguration.java
Author: azeez Date: Wed Jun 9 09:39:28 2010 New Revision: 952925 URL: http://svn.apache.org/viewvc?rev=952925&view=rev Log: Printing the filename as well Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/engine/AxisConfiguration.java Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/engine/AxisConfiguration.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/engine/AxisConfiguration.java?rev=952925&r1=952924&r2=952925&view=diff == --- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/engine/AxisConfiguration.java (original) +++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/engine/AxisConfiguration.java Wed Jun 9 09:39:28 2010 @@ -490,7 +490,8 @@ public class AxisConfiguration extends A // If we were already there, that's fine. If not, fault! if (oldService != axisService) { throw new AxisFault(Messages.getMessage("twoservicecannothavesamename", - axisService.getName())); +axisService.getName() + +" [" + axisService.getFileName() + "]")); } } }
svn commit: r956974 - /axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/AtMostOnceInterceptor.java
Author: azeez Date: Tue Jun 22 18:53:35 2010 New Revision: 956974 URL: http://svn.apache.org/viewvc?rev=956974&view=rev Log: Improvements as suggested in https://issues.apache.org/jira/browse/AXIS2-4749 Modified: axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/AtMostOnceInterceptor.java Modified: axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/AtMostOnceInterceptor.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/AtMostOnceInterceptor.java?rev=956974&r1=956973&r2=956974&view=diff == --- axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/AtMostOnceInterceptor.java (original) +++ axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/AtMostOnceInterceptor.java Tue Jun 22 18:53:35 2010 @@ -25,6 +25,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import java.util.ArrayList; +import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -35,8 +36,8 @@ import java.util.Map; public class AtMostOnceInterceptor extends ChannelInterceptorBase { private static Log log = LogFactory.getLog(AtMostOnceInterceptor.class); -private static final Map receivedMessages = -new HashMap(); +private static final Map receivedMessages = +new HashMap(); /** * The time a message lives in the receivedMessages Map @@ -52,8 +53,9 @@ public class AtMostOnceInterceptor exten public void messageReceived(ChannelMessage msg) { if (okToProcess(msg.getOptions())) { synchronized (receivedMessages) { -if (receivedMessages.get(msg) == null) { // If it is a new message, keep track of it -receivedMessages.put(msg, System.currentTimeMillis()); +MessageId msgId = new MessageId(msg.getUniqueId()); +if (receivedMessages.get(msgId) == null) { // If it is a new message, keep track of it +receivedMessages.put(msgId, System.currentTimeMillis()); super.messageReceived(msg); } else { // If it is a duplicate message, discard it. i.e. dont call super.messageReceived log.info("Duplicate message received from " + TribesUtil.getName(msg.getAddress())); @@ -64,7 +66,7 @@ public class AtMostOnceInterceptor exten } } -private class MessageCleanupTask implements Runnable { +private static class MessageCleanupTask implements Runnable { public void run() { while (true) { // This task should never terminate @@ -74,20 +76,20 @@ public class AtMostOnceInterceptor exten e.printStackTrace(); } try { -List toBeRemoved = new ArrayList(); +List toBeRemoved = new ArrayList(); Thread.yield(); synchronized (receivedMessages) { -for (ChannelMessage msg : receivedMessages.keySet()) { -long arrivalTime = receivedMessages.get(msg); +for (MessageId msgId : receivedMessages.keySet()) { +long arrivalTime = receivedMessages.get(msgId); if (System.currentTimeMillis() - arrivalTime >= TIMEOUT) { -toBeRemoved.add(msg); +toBeRemoved.add(msgId); if (toBeRemoved.size() > 1) { // Do not allow this thread to run for too long break; } } } -for (ChannelMessage msg : toBeRemoved) { -receivedMessages.remove(msg); +for (MessageId msgId : toBeRemoved) { +receivedMessages.remove(msgId); if (log.isDebugEnabled()) { log.debug("Cleaned up message "); } @@ -99,4 +101,38 @@ public class AtMostOnceInterceptor exten } } } + +/** + * Represents a Message ID + */ +private static class MessageId { +private byte[] id; + +private MessageId(byte[] id) { +this.id = id; +} + +@Override +public boolean equals(Object o) { +if (this == o) { +return true; +} +if (o == null || getClass() != o.getClass()) { +return false; +} + +MessageId me
svn commit: r959241 - in /axis/axis2/java/core/trunk/modules: corba/src/org/apache/axis2/corba/deployer/ jaxws/src/org/apache/axis2/jaxws/framework/ kernel/src/org/apache/axis2/deployment/ kernel/test
Author: azeez Date: Wed Jun 30 09:17:30 2010 New Revision: 959241 URL: http://svn.apache.org/viewvc?rev=959241&view=rev Log: 1. Added cleanup method to Deployer to facilitate cleanup when cleanup is called on DeploymentEngine 2. Introduced AbstractDeployer 3. Renamed the badly named unDeploy method to undeploy Added: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/AbstractDeployer.java Modified: axis/axis2/java/core/trunk/modules/corba/src/org/apache/axis2/corba/deployer/CorbaDeployer.java axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/framework/JAXWSDeployer.java axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/Deployer.java axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/ModuleDeployer.java axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/POJODeployer.java axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/ServiceDeployer.java axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/TransportDeployer.java axis/axis2/java/core/trunk/modules/kernel/test/org/apache/axis2/deployment/deployers/CustomDeployer.java Modified: axis/axis2/java/core/trunk/modules/corba/src/org/apache/axis2/corba/deployer/CorbaDeployer.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/corba/src/org/apache/axis2/corba/deployer/CorbaDeployer.java?rev=959241&r1=959240&r2=959241&view=diff == --- axis/axis2/java/core/trunk/modules/corba/src/org/apache/axis2/corba/deployer/CorbaDeployer.java (original) +++ axis/axis2/java/core/trunk/modules/corba/src/org/apache/axis2/corba/deployer/CorbaDeployer.java Wed Jun 30 09:17:30 2010 @@ -30,7 +30,7 @@ import org.apache.axis2.corba.idl.types. import org.apache.axis2.corba.idl.types.Interface; import org.apache.axis2.corba.idl.types.Operation; import org.apache.axis2.corba.receivers.CorbaUtil; -import org.apache.axis2.deployment.Deployer; +import org.apache.axis2.deployment.AbstractDeployer; import org.apache.axis2.deployment.DeploymentConstants; import org.apache.axis2.deployment.DeploymentEngine; import org.apache.axis2.deployment.DeploymentErrorMsgs; @@ -73,7 +73,7 @@ import java.util.HashMap; import java.util.Iterator; import java.util.List; -public class CorbaDeployer implements Deployer, DeploymentConstants, CorbaConstants { +public class CorbaDeployer extends AbstractDeployer implements DeploymentConstants, CorbaConstants { private static final Log log = LogFactory.getLog(CorbaDeployer.class); private AxisConfiguration axisConfig; private ConfigurationContext configCtx; @@ -97,6 +97,7 @@ public class CorbaDeployer implements De ArrayList serviceList = processService(deploymentFileData, serviceGroup, configCtx); DeploymentEngine.addServiceGroup(serviceGroup, serviceList, deploymentFileData.getFile().toURL(), deploymentFileData, axisConfig); name = deploymentFileData.getName(); +super.deploy(deploymentFileData); log.info("Deploying " + name); } catch (AxisFault axisFault) { log.error("Error while deploying " + name, axisFault); @@ -595,8 +596,9 @@ public class CorbaDeployer implements De public void setExtension(String extension) { } -public void unDeploy(String fileName) throws DeploymentException { +public void undeploy(String fileName) throws DeploymentException { try { +super.undeploy(fileName); fileName = Utils.getShortFileName(fileName); axisConfig.removeServiceGroup(fileName); log.info(Messages.getMessage(DeploymentErrorMsgs.SERVICE_REMOVED, fileName)); Modified: axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/framework/JAXWSDeployer.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/framework/JAXWSDeployer.java?rev=959241&r1=959240&r2=959241&view=diff == --- axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/framework/JAXWSDeployer.java (original) +++ axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/framework/JAXWSDeployer.java Wed Jun 30 09:17:30 2010 @@ -22,7 +22,7 @@ package org.apache.axis2.jaxws.framework import org.apache.axis2.AxisFault; import org.apache.axis2.Constants; import org.apache.axis2.context.ConfigurationContext; -import org.apache.axis2.deployment.Deployer; +import org.apache.axis2.deployment.AbstractDeployer; import org.apache.axis2.deployment.DeploymentEngine; import org.apache.axis2.deployme
svn commit: r959418 - in /axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2: context/ConfigurationContext.java engine/AxisConfiguration.java
Author: azeez Date: Wed Jun 30 19:48:34 2010 New Revision: 959418 URL: http://svn.apache.org/viewvc?rev=959418&view=rev Log: Cleaning up some stuff on cleanup Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/context/ConfigurationContext.java axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/engine/AxisConfiguration.java Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/context/ConfigurationContext.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/context/ConfigurationContext.java?rev=959418&r1=959417&r2=959418&view=diff == --- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/context/ConfigurationContext.java (original) +++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/context/ConfigurationContext.java Wed Jun 30 19:48:34 2010 @@ -786,6 +786,7 @@ public class ConfigurationContext extend } axisConfiguration.cleanup(); cleanupTemp(); +this.axisConfiguration = null; } /** Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/engine/AxisConfiguration.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/engine/AxisConfiguration.java?rev=959418&r1=959417&r2=959418&view=diff == --- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/engine/AxisConfiguration.java (original) +++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/engine/AxisConfiguration.java Wed Jun 30 19:48:34 2010 @@ -1408,6 +1408,15 @@ public class AxisConfiguration extends A if (configurator != null) { configurator.cleanup(); } +this.policySupportedModules.clear(); +this.moduleConfigmap.clear(); +this.allEndpoints.clear(); +this.allModules.clear(); +this.allServices.clear(); +this.outPhases.clear(); +this.messageReceivers.clear(); +this.targetResolvers.clear(); +this.configurator = null; } /**
svn commit: r959581 - in /axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2: context/ConfigurationContext.java engine/AxisConfiguration.java
Author: azeez Date: Thu Jul 1 10:00:47 2010 New Revision: 959581 URL: http://svn.apache.org/viewvc?rev=959581&view=rev Log: Few more cleanup related stuff Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/context/ConfigurationContext.java axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/engine/AxisConfiguration.java Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/context/ConfigurationContext.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/context/ConfigurationContext.java?rev=959581&r1=959580&r2=959581&view=diff == --- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/context/ConfigurationContext.java (original) +++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/context/ConfigurationContext.java Thu Jul 1 10:00:47 2010 @@ -775,7 +775,7 @@ public class ConfigurationContext extend public void terminate() throws AxisFault { if (listenerManager != null) { listenerManager.destroy(); -}else{ +} else { if(log.isDebugEnabled()){ log.debug("Start Invoke modules and services shutdown."); } @@ -784,9 +784,11 @@ public class ConfigurationContext extend log.debug("End Invoke modules and services shutdown."); } } -axisConfiguration.cleanup(); -cleanupTemp(); -this.axisConfiguration = null; +if (axisConfiguration != null) { +axisConfiguration.cleanup(); +cleanupTemp(); +this.axisConfiguration = null; +} } /** Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/engine/AxisConfiguration.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/engine/AxisConfiguration.java?rev=959581&r1=959580&r2=959581&view=diff == --- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/engine/AxisConfiguration.java (original) +++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/engine/AxisConfiguration.java Thu Jul 1 10:00:47 2010 @@ -1408,6 +1408,9 @@ public class AxisConfiguration extends A if (configurator != null) { configurator.cleanup(); } +if (clusteringAgent != null) { +clusteringAgent.finalize(); +} this.policySupportedModules.clear(); this.moduleConfigmap.clear(); this.allEndpoints.clear(); @@ -1416,6 +1419,9 @@ public class AxisConfiguration extends A this.outPhases.clear(); this.messageReceivers.clear(); this.targetResolvers.clear(); +if (this.engagedModules != null) { +this.engagedModules.clear(); +} this.configurator = null; }
svn commit: r960818 - /axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/AbstractDeployer.java
Author: azeez Date: Tue Jul 6 06:52:59 2010 New Revision: 960818 URL: http://svn.apache.org/viewvc?rev=960818&view=rev Log: Removing default cleanup behavior. This has to be implemented by the relevant deployers. Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/AbstractDeployer.java Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/AbstractDeployer.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/AbstractDeployer.java?rev=960818&r1=960817&r2=960818&view=diff == --- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/AbstractDeployer.java (original) +++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/AbstractDeployer.java Tue Jul 6 06:52:59 2010 @@ -25,7 +25,11 @@ import java.util.concurrent.ConcurrentHa */ public abstract class AbstractDeployer implements Deployer{ -private Map deploymentFileDataMap +/** + * The Map of all artifacts deployed by this + * deployer. + */ +protected Map deploymentFileDataMap = new ConcurrentHashMap(); public void deploy(DeploymentFileData deploymentFileData) throws DeploymentException { @@ -37,8 +41,6 @@ public abstract class AbstractDeployer i } public void cleanup() throws DeploymentException { -for (String filePath : deploymentFileDataMap.keySet()) { -undeploy(filePath); -} +// Deployers which require cleaning up should override this method } }
svn commit: r966097 - /axis/axis2/java/transports/trunk/modules/base/src/main/java/org/apache/axis2/transport/base/TransportMBeanSupport.java
Author: azeez Date: Wed Jul 21 05:55:41 2010 New Revision: 966097 URL: http://svn.apache.org/viewvc?rev=966097&view=rev Log: Applying patch contributed by Hiranya Jaythilaka https://issues.apache.org/jira/browse/AXIS2-4784 Modified: axis/axis2/java/transports/trunk/modules/base/src/main/java/org/apache/axis2/transport/base/TransportMBeanSupport.java Modified: axis/axis2/java/transports/trunk/modules/base/src/main/java/org/apache/axis2/transport/base/TransportMBeanSupport.java URL: http://svn.apache.org/viewvc/axis/axis2/java/transports/trunk/modules/base/src/main/java/org/apache/axis2/transport/base/TransportMBeanSupport.java?rev=966097&r1=966096&r2=966097&view=diff == --- axis/axis2/java/transports/trunk/modules/base/src/main/java/org/apache/axis2/transport/base/TransportMBeanSupport.java (original) +++ axis/axis2/java/transports/trunk/modules/base/src/main/java/org/apache/axis2/transport/base/TransportMBeanSupport.java Wed Jul 21 05:55:41 2010 @@ -71,11 +71,11 @@ public class TransportMBeanSupport { } public TransportMBeanSupport(TransportListener listener, String name) { -this(name + "-listener", new TransportView(listener, null)); +this(name + "-listener-" + listener.hashCode(), new TransportView(listener, null)); } public TransportMBeanSupport(TransportSender sender, String name) { -this(name + "-sender", new TransportView(null, sender)); +this(name + "-sender-" + sender.hashCode(), new TransportView(null, sender)); } public ObjectName getMBeanName() {
svn commit: r982308 - /axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java
Author: azeez Date: Wed Aug 4 15:42:14 2010 New Revision: 982308 URL: http://svn.apache.org/viewvc?rev=982308&view=rev Log: Setting empty string to avoid peculiar i18n string Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java?rev=982308&r1=982307&r2=982308&view=diff == --- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java (original) +++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java Wed Aug 4 15:42:14 2010 @@ -617,7 +617,7 @@ public abstract class DeploymentEngine i } else if (!JavaUtils.isTrueExplicitly(serviceGroup.getParameterValue( Constants.HIDDEN_SERVICE_PARAM_NAME))) { log.info(Messages.getMessage(DeploymentErrorMsgs.DEPLOYING_WS, -serviceGroup.getServiceGroupName())); +serviceGroup.getServiceGroupName(), "")); } }
svn commit: r1004684 - in /axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment: DeploymentEngine.java scheduler/SchedulerTask.java
Author: azeez Date: Tue Oct 5 15:52:38 2010 New Revision: 1004684 URL: http://svn.apache.org/viewvc?rev=1004684&view=rev Log: Added a method to check whether the deployment task is running. If an Axis2 server is shutdown while the deployment task is running, there can be exceptions that are thrown. So. in a graceful shutdown scenario, we can first check whether the deployment task is running, and then initiate the shutdown procedure, once the task has ended. Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/scheduler/SchedulerTask.java Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java?rev=1004684&r1=1004683&r2=1004684&view=diff == --- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java (original) +++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java Tue Oct 5 15:52:38 2010 @@ -75,6 +75,11 @@ import java.util.zip.ZipInputStream; public abstract class DeploymentEngine implements DeploymentConstants { private static final Log log = LogFactory.getLog(DeploymentEngine.class); +/** + * Indicates that the deployment task is running + */ +public static final String DEPLOYMENT_TASK_RUNNING = "deployment.task.running"; + //to keep the web resource location if any protected static String webLocationString = null; protected Scheduler scheduler; @@ -870,7 +875,19 @@ public abstract class DeploymentEngine i protected void startSearch(RepositoryListener listener) { scheduler = new Scheduler(); -scheduler.schedule(new SchedulerTask(listener), new DeploymentIterator()); +scheduler.schedule(new SchedulerTask(listener, configContext), new DeploymentIterator()); +} + +/** + * Method to check whether the deployment task is currently running. Will be used is graceful + * shutdown & restart scenarios. + * + * @return true - if the deployment task is running, false - otherwise + */ +public boolean isDeploymentTaskRunning() { +Boolean deploymentTaskRunning = + (Boolean)configContext.getProperty(DeploymentEngine.DEPLOYMENT_TASK_RUNNING); +return deploymentTaskRunning != null && deploymentTaskRunning; } public synchronized void unDeploy() { Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/scheduler/SchedulerTask.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/scheduler/SchedulerTask.java?rev=1004684&r1=1004683&r2=1004684&view=diff == --- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/scheduler/SchedulerTask.java (original) +++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/scheduler/SchedulerTask.java Tue Oct 5 15:52:38 2010 @@ -20,6 +20,8 @@ package org.apache.axis2.deployment.scheduler; +import org.apache.axis2.context.ConfigurationContext; +import org.apache.axis2.deployment.DeploymentEngine; import org.apache.axis2.deployment.RepositoryListener; import java.util.TimerTask; @@ -31,12 +33,14 @@ public class SchedulerTask implements Ru int state = 0; TimerTask timerTask; private RepositoryListener wsListener; +private ConfigurationContext configCtx; /** * Creates a new scheduler task. */ -public SchedulerTask(RepositoryListener listener) { +public SchedulerTask(RepositoryListener listener, ConfigurationContext configCtx) { this.wsListener = listener; +this.configCtx = configCtx; } /** @@ -68,6 +72,13 @@ public class SchedulerTask implements Ru * The action to be performed by this scheduler task. */ public void run() { -checkRepository(); +synchronized (configCtx) { +try { + configCtx.setNonReplicableProperty(DeploymentEngine.DEPLOYMENT_TASK_RUNNING, "true"); +checkRepository(); +} finally { + configCtx.removePropertyNonReplicable(DeploymentEngine.DEPLOYMENT_TASK_RUNNING); +} +} } }
svn commit: r1004960 - in /axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment: DeploymentEngine.java scheduler/Scheduler.java scheduler/SchedulerTask.java
Author: azeez Date: Wed Oct 6 10:04:15 2010 New Revision: 1004960 URL: http://svn.apache.org/viewvc?rev=1004960&view=rev Log: Fixing bug: CCE since we are setting a String and trying to retrieve it as a Boolean Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/scheduler/Scheduler.java axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/scheduler/SchedulerTask.java Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java?rev=1004960&r1=1004959&r2=1004960&view=diff == --- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java (original) +++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java Wed Oct 6 10:04:15 2010 @@ -83,6 +83,7 @@ public abstract class DeploymentEngine i //to keep the web resource location if any protected static String webLocationString = null; protected Scheduler scheduler; +private SchedulerTask schedulerTask; public static void setWebLocationString(String webLocationString) { DeploymentEngine.webLocationString = webLocationString; @@ -875,7 +876,8 @@ public abstract class DeploymentEngine i protected void startSearch(RepositoryListener listener) { scheduler = new Scheduler(); -scheduler.schedule(new SchedulerTask(listener, configContext), new DeploymentIterator()); +schedulerTask = new SchedulerTask(listener, configContext); +scheduler.schedule(schedulerTask, new DeploymentIterator()); } /** @@ -1382,7 +1384,7 @@ public abstract class DeploymentEngine i ((JarFileClassLoader) axisConfig.getSystemClassLoader()).destroy(); } if (scheduler != null) { -scheduler.cleanup(); +scheduler.cleanup(schedulerTask); } for (Map stringDeployerMap : deployerMap.values()) { for (Deployer deployer : stringDeployerMap.values()) { Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/scheduler/Scheduler.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/scheduler/Scheduler.java?rev=1004960&r1=1004959&r2=1004960&view=diff == --- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/scheduler/Scheduler.java (original) +++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/scheduler/Scheduler.java Wed Oct 6 10:04:15 2010 @@ -20,13 +20,13 @@ package org.apache.axis2.deployment.scheduler; +import org.apache.axis2.java.security.AccessController; + import java.security.PrivilegedAction; import java.util.Date; import java.util.Timer; import java.util.TimerTask; -import org.apache.axis2.java.security.AccessController; - public class Scheduler { private final Timer timer = (Timer)AccessController.doPrivileged(new PrivilegedAction() { public Object run() { @@ -73,8 +73,11 @@ public class Scheduler { } } -public void cleanup(){ -timer.cancel(); +public void cleanup(SchedulerTask schedulerTask){ +synchronized (schedulerTask.lock) { +schedulerTask.state = SchedulerTask.CANCELLED; +timer.cancel(); +} } public class SchedulerTimerTask extends TimerTask { Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/scheduler/SchedulerTask.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/scheduler/SchedulerTask.java?rev=1004960&r1=1004959&r2=1004960&view=diff == --- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/scheduler/SchedulerTask.java (original) +++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/scheduler/SchedulerTask.java Wed Oct 6 10:04:15 2010 @@ -74,7 +74,8 @@ public class SchedulerTask implements Ru public void run() { synchronized (configCtx) { try { - configCtx.setNonReplicableProperty(DeploymentEngine.DEPLOYMENT_TASK_RUNNING, "true"); + configCtx.setNonReplicableProperty(DeploymentEngine.DEPLOYMENT_TASK_RUNNING, + Boolean.TRUE); checkRepository(); } finally {
svn commit: r1051441 - in /axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering: ./ control/wka/ management/commands/ state/ tribes/
Author: azeez Date: Tue Dec 21 10:01:54 2010 New Revision: 1051441 URL: http://svn.apache.org/viewvc?rev=1051441&view=rev Log: Code improvements based on FindBugs feedback Added: axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/Axis2ChannelListener.java Removed: axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/ChannelListener.java Modified: axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/ClusteringUtils.java axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/control/wka/MemberJoinedCommand.java axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/control/wka/MemberListCommand.java axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/management/commands/ShutdownMemberCommand.java axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/state/DefaultStateManager.java axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/AtMostOnceInterceptor.java axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesClusteringAgent.java axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/WkaMembershipService.java Modified: axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/ClusteringUtils.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/ClusteringUtils.java?rev=1051441&r1=1051440&r2=1051441&view=diff == --- axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/ClusteringUtils.java (original) +++ axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/ClusteringUtils.java Tue Dec 21 10:01:54 2010 @@ -37,6 +37,8 @@ import java.util.Random; */ public class ClusteringUtils { +private static final Random RANDOM = new Random(); + /** * Load a ServiceGroup having name serviceGroupName * @@ -55,14 +57,23 @@ public class ClusteringUtils { String axis2Repo = System.getProperty(Constants.AXIS2_REPO); if (isURL(axis2Repo)) { DataHandler dh = new DataHandler(new URL(axis2Repo + "services/" + serviceGroupName)); -String tempDir = +String tempDirName = tempDirectory + File.separator + -(System.currentTimeMillis() + new Random().nextDouble()); -new File(tempDir).mkdirs(); -serviceArchive = new File(tempDir + File.separator + serviceGroupName); -FileOutputStream out = new FileOutputStream(serviceArchive); -dh.writeTo(out); -out.close(); +(System.currentTimeMillis() + RANDOM.nextDouble()); +if(!new File(tempDirName).mkdirs()) { + throw new Exception("Could not create temp dir " + tempDirName); +} +serviceArchive = new File(tempDirName + File.separator + serviceGroupName); +FileOutputStream out = null; +try { +out = new FileOutputStream(serviceArchive); +dh.writeTo(out); +out.close(); +} finally { +if (out != null) { +out.close(); +} +} } else { serviceArchive = new File(axis2Repo + File.separator + "services" + File.separator + serviceGroupName); Modified: axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/control/wka/MemberJoinedCommand.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/control/wka/MemberJoinedCommand.java?rev=1051441&r1=1051440&r2=1051441&view=diff == --- axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/control/wka/MemberJoinedCommand.java (original) +++ axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/control/wka/MemberJoinedCommand.java Tue Dec 21 10:01:54 2010 @@ -30,8 +30,9 @@ import java.util.Arrays; */ public class MemberJoinedCommand extends ControlCommand { +private static final long serialVersionUID = -6596472883950279349L; private Member member; -private MembershipManager membershipManager; +private transient MembershipManager membershipManager; public void setMembershipManager(MembershipManager membershipManager) { this.membershipManager = membershipManager; Modified: axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/control/wka/Memb
svn commit: r1051479 - /axis/axis2/java/core/trunk/modules/transport/http/src/org/apache/axis2/transport/http/AxisServlet.java
Author: azeez Date: Tue Dec 21 12:54:09 2010 New Revision: 1051479 URL: http://svn.apache.org/viewvc?rev=1051479&view=rev Log: Fix for AXIS2-3863 Modified: axis/axis2/java/core/trunk/modules/transport/http/src/org/apache/axis2/transport/http/AxisServlet.java Modified: axis/axis2/java/core/trunk/modules/transport/http/src/org/apache/axis2/transport/http/AxisServlet.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/transport/http/src/org/apache/axis2/transport/http/AxisServlet.java?rev=1051479&r1=1051478&r2=1051479&view=diff == --- axis/axis2/java/core/trunk/modules/transport/http/src/org/apache/axis2/transport/http/AxisServlet.java (original) +++ axis/axis2/java/core/trunk/modules/transport/http/src/org/apache/axis2/transport/http/AxisServlet.java Tue Dec 21 12:54:09 2010 @@ -478,19 +478,21 @@ public class AxisServlet extends HttpSer "must be configured with a port number. WSDL generation will be " + "unreliable."); } - -ListenerManager listenerManager = new ListenerManager(); -listenerManager.init(configContext); -listenerManager.start(); -agent = new ListingAgent(configContext); +initTransport(); initParams(); - } catch (Exception e) { throw new ServletException(e); } } - + +protected void initTransport() { +ListenerManager listenerManager = new ListenerManager(); +listenerManager.init(configContext); +listenerManager.start(); +agent = new ListingAgent(configContext); +} + private AxisServletListener getAxisServletListener(String name) { TransportInDescription desc = axisConfiguration.getTransportIn(name); if (desc == null) { @@ -550,9 +552,7 @@ public class AxisServlet extends HttpSer */ @Override public void init() throws ServletException { -if (this.servletConfig != null -&& -!initCalled) { +if (this.servletConfig != null && !initCalled) { init(this.servletConfig); } }
svn commit: r1051503 - in /axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment: DeploymentEngine.java scheduler/SchedulerTask.java
Author: azeez Date: Tue Dec 21 14:09:55 2010 New Revision: 1051503 URL: http://svn.apache.org/viewvc?rev=1051503&view=rev Log: The configContext may not be set in all cases, hence was throwing an NPE. Now we are storing the DEPLOYMENT_TASK_RUNNING parameter in the AxisConfig Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/scheduler/SchedulerTask.java Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java?rev=1051503&r1=1051502&r2=1051503&view=diff == --- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java (original) +++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java Tue Dec 21 14:09:55 2010 @@ -876,7 +876,7 @@ public abstract class DeploymentEngine i protected void startSearch(RepositoryListener listener) { scheduler = new Scheduler(); -schedulerTask = new SchedulerTask(listener, configContext); +schedulerTask = new SchedulerTask(listener, axisConfig); scheduler.schedule(schedulerTask, new DeploymentIterator()); } @@ -887,9 +887,14 @@ public abstract class DeploymentEngine i * @return true - if the deployment task is running, false - otherwise */ public boolean isDeploymentTaskRunning() { -Boolean deploymentTaskRunning = - (Boolean)configContext.getProperty(DeploymentEngine.DEPLOYMENT_TASK_RUNNING); -return deploymentTaskRunning != null && deploymentTaskRunning; +synchronized (axisConfig) { +Parameter deploymentTaskRunningParam = + axisConfig.getParameter(DeploymentEngine.DEPLOYMENT_TASK_RUNNING); +if (deploymentTaskRunningParam != null) { +return (Boolean) deploymentTaskRunningParam.getValue(); +} +return false; +} } public synchronized void unDeploy() { Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/scheduler/SchedulerTask.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/scheduler/SchedulerTask.java?rev=1051503&r1=1051502&r2=1051503&view=diff == --- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/scheduler/SchedulerTask.java (original) +++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/scheduler/SchedulerTask.java Tue Dec 21 14:09:55 2010 @@ -20,9 +20,12 @@ package org.apache.axis2.deployment.scheduler; +import org.apache.axis2.AxisFault; import org.apache.axis2.context.ConfigurationContext; import org.apache.axis2.deployment.DeploymentEngine; import org.apache.axis2.deployment.RepositoryListener; +import org.apache.axis2.description.Parameter; +import org.apache.axis2.engine.AxisConfiguration; import java.util.TimerTask; @@ -33,14 +36,16 @@ public class SchedulerTask implements Ru int state = 0; TimerTask timerTask; private RepositoryListener wsListener; -private ConfigurationContext configCtx; +private AxisConfiguration axisConfig; +private static final Parameter DEPLOYMENT_TASK_STATUS_PARAM = +new Parameter(DeploymentEngine.DEPLOYMENT_TASK_RUNNING, Boolean.FALSE); /** * Creates a new scheduler task. */ -public SchedulerTask(RepositoryListener listener, ConfigurationContext configCtx) { +public SchedulerTask(RepositoryListener listener, AxisConfiguration axisConfig) { this.wsListener = listener; -this.configCtx = configCtx; +this.axisConfig = axisConfig; } /** @@ -72,13 +77,23 @@ public class SchedulerTask implements Ru * The action to be performed by this scheduler task. */ public void run() { -synchronized (configCtx) { +synchronized (axisConfig) { +Parameter param = + axisConfig.getParameter(DeploymentEngine.DEPLOYMENT_TASK_RUNNING); +if (param == null) { +try { +axisConfig.addParameter(DEPLOYMENT_TASK_STATUS_PARAM); +} catch (AxisFault e) { +// this is thrown only if the parameter is locked. Since we are sure that this +// param will not be locked, we will ignore this +} +} + try { - configCtx.setNonReplicableProperty(DeploymentEngine.DEPLOYMENT_TASK_RUNNING, -
svn commit: r1051770 - /axis/axis2/java/core/trunk/modules/transport/http/src/org/apache/axis2/transport/http/AxisServlet.java
Author: azeez Date: Wed Dec 22 06:40:00 2010 New Revision: 1051770 URL: http://svn.apache.org/viewvc?rev=1051770&view=rev Log: Introducing a few more init methods so that they can be overridden Modified: axis/axis2/java/core/trunk/modules/transport/http/src/org/apache/axis2/transport/http/AxisServlet.java Modified: axis/axis2/java/core/trunk/modules/transport/http/src/org/apache/axis2/transport/http/AxisServlet.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/transport/http/src/org/apache/axis2/transport/http/AxisServlet.java?rev=1051770&r1=1051769&r2=1051770&view=diff == --- axis/axis2/java/core/trunk/modules/transport/http/src/org/apache/axis2/transport/http/AxisServlet.java (original) +++ axis/axis2/java/core/trunk/modules/transport/http/src/org/apache/axis2/transport/http/AxisServlet.java Wed Dec 22 06:40:00 2010 @@ -431,15 +431,13 @@ public class AxisServlet extends HttpSer } } } - - AxisEngine.sendFault(faultContext); } /** * Main init method * - * @param config + * @param config The ServletConfig * @throws ServletException */ @Override @@ -458,39 +456,53 @@ public class AxisServlet extends HttpSer config.getServletContext().setAttribute(CONFIGURATION_CONTEXT, configContext); } axisConfiguration = configContext.getAxisConfiguration(); - -httpListener = getAxisServletListener(Constants.TRANSPORT_HTTP); -httpsListener = getAxisServletListener(Constants.TRANSPORT_HTTPS); - -if (httpListener == null && httpsListener == null) { -log.warn("No transportReceiver for " + AxisServletListener.class.getName() + -" found. An instance for HTTP will be configured automatically. " + -"Please update your axis2.xml file!"); -httpListener = new AxisServletListener(); -TransportInDescription transportInDescription = new TransportInDescription( -Constants.TRANSPORT_HTTP); -transportInDescription.setReceiver(httpListener); -axisConfiguration.addTransportIn(transportInDescription); -} else if (httpListener != null && httpsListener != null -&& httpListener.getPort() == -1 && httpsListener.getPort() == -1) { -log.warn("If more than one transportReceiver for " + -AxisServletListener.class.getName() + " exists, then all instances " + -"must be configured with a port number. WSDL generation will be " + -"unreliable."); -} - -initTransport(); +initTransports(); +initGetRequestProcessors(config); initParams(); } catch (Exception e) { throw new ServletException(e); } } -protected void initTransport() { +/** + * Initialize HTTP GET request processors + * + * @param config The ServletConfig of this Servlet + */ +protected void initGetRequestProcessors(ServletConfig config) { +// The ListingAgent is an HTTP GET request processor +agent = new ListingAgent(configContext); +} + +/** + * Initialize HTTP transports + * + * @throws AxisFault If an error occurs while initializing transports + */ +protected void initTransports() throws AxisFault { +httpListener = getAxisServletListener(Constants.TRANSPORT_HTTP); +httpsListener = getAxisServletListener(Constants.TRANSPORT_HTTPS); + +if (httpListener == null && httpsListener == null) { +log.warn("No transportReceiver for " + AxisServletListener.class.getName() + + " found. An instance for HTTP will be configured automatically. " + + "Please update your axis2.xml file!"); +httpListener = new AxisServletListener(); +TransportInDescription transportInDescription = new TransportInDescription( +Constants.TRANSPORT_HTTP); +transportInDescription.setReceiver(httpListener); +axisConfiguration.addTransportIn(transportInDescription); +} else if (httpListener != null && httpsListener != null + && httpListener.getPort() == -1 && httpsListener.getPort() == -1) { +log.warn("If more than one transportReceiver for " + + AxisServletListener.class.getName() + " exists, then all instances " + + "must be configured with
svn commit: r1051771 - in /axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/clustering: ClusteringAgent.java management/NodeManager.java state/StateManager.java
Author: azeez Date: Wed Dec 22 06:45:27 2010 New Revision: 1051771 URL: http://svn.apache.org/viewvc?rev=1051771&view=rev Log: Changing URL Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/clustering/ClusteringAgent.java axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/clustering/management/NodeManager.java axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/clustering/state/StateManager.java Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/clustering/ClusteringAgent.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/clustering/ClusteringAgent.java?rev=1051771&r1=1051770&r2=1051771&view=diff == --- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/clustering/ClusteringAgent.java (original) +++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/clustering/ClusteringAgent.java Wed Dec 22 06:45:27 2010 @@ -42,7 +42,7 @@ import java.util.Set; * This interface is also responsible for * properly instantiating a {...@link org.apache.axis2.clustering.state.StateManager} & * {...@link org.apache.axis2.clustering.management.NodeManager}. In the case of - * a static http://afkham.org/2008/05/group-membership-management-schemes.html";> + * a static http://blog.afkham.org/2008/05/group-membership-management-schemes.html";> * membership scheme, * this members are read from the axis2.xml file and added to the ClusteringAgent. * @@ -141,7 +141,7 @@ public interface ClusteringAgent extends /** * Set the static members of the cluster. This is used only with - * http://afkham.org/2008/05/group-membership-management-schemes.html";> + * http://blog.afkham.org/2008/05/group-membership-management-schemes.html";> * static group membership * * @param members Members to be added @@ -150,7 +150,7 @@ public interface ClusteringAgent extends /** * Get the list of members in a - * http://afkham.org/2008/05/group-membership-management-schemes.html";> + * http://blog.afkham.org/2008/05/group-membership-management-schemes.html";> * static group * * Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/clustering/management/NodeManager.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/clustering/management/NodeManager.java?rev=1051771&r1=1051770&r2=1051771&view=diff == --- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/clustering/management/NodeManager.java (original) +++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/clustering/management/NodeManager.java Wed Dec 22 06:45:27 2010 @@ -41,7 +41,7 @@ import org.apache.axis2.description.Para * * * It is not mandatory to have a NodeManager in a node. In which case the cluster may be - * used only for http://afkham.org/2008/05/definition-of-high-availability.html";> + * used only for http://blog.afkham.org/2008/05/definition-of-high-availability.html";> * High Availability through context replication. However, it is difficult to imagine that * a cluster will be deployed in production with only context replication but without cluster * configuration management. Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/clustering/state/StateManager.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/clustering/state/StateManager.java?rev=1051771&r1=1051770&r2=1051771&view=diff == --- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/clustering/state/StateManager.java (original) +++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/clustering/state/StateManager.java Wed Dec 22 06:45:27 2010 @@ -36,11 +36,11 @@ import java.util.Map; * * * It is not mandatory to have a StateManager in a node. If we are not interested in - * http://afkham.org/2008/05/definition-of-high-availability.html";> + * http://blog.afkham.org/2008/05/definition-of-high-availability.html";> * High Availability, we may disable context replication by commenting out the "contextManager" * section in the axis2.xml cluster configuration section. In such a scenatio, the cluster will be * used only for the purpose of - * http://afkham.org/2008/05/definition-of-scalability.html";>Scalability + * http://blog.afkham.org/2008/05/definition-of-scalability.html";>Scalability * * * The implementation of this interface is set by the
svn commit: r1051831 - /axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/RepositoryListener.java
Author: azeez Date: Wed Dec 22 11:00:38 2010 New Revision: 1051831 URL: http://svn.apache.org/viewvc?rev=1051831&view=rev Log: Logging classpath module loading error at error level as per AXIS2-3756 Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/RepositoryListener.java Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/RepositoryListener.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/RepositoryListener.java?rev=1051831&r1=1051830&r2=1051831&view=diff == --- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/RepositoryListener.java (original) +++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/RepositoryListener.java Wed Dec 22 11:00:38 2010 @@ -153,7 +153,7 @@ public class RepositoryListener implemen } } catch (Exception e) { // Oh well, log the problem -log.debug(e); +log.error("Error occurred while loading modules from classpath", e); } String classPath = getLocation();
svn commit: r1051860 - /axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/framework/JAXWSDeployer.java
Author: azeez Date: Wed Dec 22 11:50:08 2010 New Revision: 1051860 URL: http://svn.apache.org/viewvc?rev=1051860&view=rev Log: Fix for AXIS2-4785 Modified: axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/framework/JAXWSDeployer.java Modified: axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/framework/JAXWSDeployer.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/framework/JAXWSDeployer.java?rev=1051860&r1=1051859&r2=1051860&view=diff == --- axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/framework/JAXWSDeployer.java (original) +++ axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/framework/JAXWSDeployer.java Wed Dec 22 11:50:08 2010 @@ -104,6 +104,10 @@ public class JAXWSDeployer extends Abstr axisConfig.isChildFirstClassLoading()); Thread.currentThread().setContextClassLoader(classLoader); deployClasses("JAXWS-Builtin", file.toURL(), Thread.currentThread().getContextClassLoader(), classList); +} catch (NoClassDefFoundError e) { +if (log.isDebugEnabled()) { +log.debug(Messages.getMessage("deployingexception", e.getMessage()), e); +} } catch (Exception e) { log.info(Messages.getMessage("deployingexception", e.getMessage()), e); } finally {
svn commit: r1051884 - in /axis/axis2/java/core/trunk/modules: jaxws/src/org/apache/axis2/jaxws/handler/ metadata/src/org/apache/axis2/jaxws/description/impl/ metadata/src/org/apache/axis2/jaxws/i18n/
Author: azeez Date: Wed Dec 22 13:09:19 2010 New Revision: 1051884 URL: http://svn.apache.org/viewvc?rev=1051884&view=rev Log: Applying patch provided in AXIS2-4750 Modified: axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/handler/SoapMessageContext.java axis/axis2/java/core/trunk/modules/metadata/src/org/apache/axis2/jaxws/description/impl/EndpointDescriptionImpl.java axis/axis2/java/core/trunk/modules/metadata/src/org/apache/axis2/jaxws/i18n/resource.properties axis/axis2/java/core/trunk/modules/metadata/src/org/apache/axis2/jaxws/util/WSDLExtensionUtils.java Modified: axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/handler/SoapMessageContext.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/handler/SoapMessageContext.java?rev=1051884&r1=1051883&r2=1051884&view=diff == --- axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/handler/SoapMessageContext.java (original) +++ axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/handler/SoapMessageContext.java Wed Dec 22 13:09:19 2010 @@ -87,7 +87,7 @@ public class SoapMessageContext extends if(log.isDebugEnabled()){ log.debug("Invalid JAXBContext, JAXBContext cannot be null"); } -throw ExceptionFactory.makeWebServiceException(Messages.getMessage("SOAPMessageContextErr2")); +throw ExceptionFactory.makeWebServiceException(Messages.getMessage("soapMessageContextErr2")); } // The header information is returned as a list of jaxb objects Modified: axis/axis2/java/core/trunk/modules/metadata/src/org/apache/axis2/jaxws/description/impl/EndpointDescriptionImpl.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/metadata/src/org/apache/axis2/jaxws/description/impl/EndpointDescriptionImpl.java?rev=1051884&r1=1051883&r2=1051884&view=diff == --- axis/axis2/java/core/trunk/modules/metadata/src/org/apache/axis2/jaxws/description/impl/EndpointDescriptionImpl.java (original) +++ axis/axis2/java/core/trunk/modules/metadata/src/org/apache/axis2/jaxws/description/impl/EndpointDescriptionImpl.java Wed Dec 22 13:09:19 2010 @@ -616,7 +616,7 @@ public class EndpointDescriptionImpl try { axisService.addParameter(parameter); } catch (AxisFault e) { - throw ExceptionFactory.makeWebServiceException(Messages.getMessage("endpointDescriptionErr5"),e); + throw ExceptionFactory.makeWebServiceException(Messages.getMessage("endpointDescriptionErr5", EndpointDescription.AXIS_SERVICE_PARAMETER), e); } } } Modified: axis/axis2/java/core/trunk/modules/metadata/src/org/apache/axis2/jaxws/i18n/resource.properties URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/metadata/src/org/apache/axis2/jaxws/i18n/resource.properties?rev=1051884&r1=1051883&r2=1051884&view=diff == --- axis/axis2/java/core/trunk/modules/metadata/src/org/apache/axis2/jaxws/i18n/resource.properties (original) +++ axis/axis2/java/core/trunk/modules/metadata/src/org/apache/axis2/jaxws/i18n/resource.properties Wed Dec 22 13:09:19 2010 @@ -61,27 +61,21 @@ addPortErr0=Only the SOAP11HTTP_BINDING, addPortErr1=An attempt was made to add the {0} port with the {1} endpoint address, which is not valid, to the ServiceDelegate. This addition is not allowed. addPortErr2=An attempt was made to add a port without a name to the ServiceDelegate object. This addition is not allowed. serviceDelegateConstruct0=An attempt was made to construct the ServiceDelegate object with an service name that is not valid: {0}. -serviceDelegateConstruct1=An attempt was made to construct the ServiceDelegate object with the {0} service, but the service is not defined in the {1} WSDL file. serviceDescErr0=The service class is not valid. The service QName cannot be null. serviceDescErr1=The service class is not valid. The Service class {0} must be assignable to javax.xml.ws.Service. serviceDescErr2=The service is not valid. The {0} service QName cannot be found in the WSDL file. wsdlNotFoundErr=The WSDL file could not be found: {0} wsdlException=The following WSDL exception occurred: {0} -noWebResultForProperty=The system cannot create the WebResult object for the {0} property of the {1} Java bean. portInfoErr0=The system cannot construct the port data. The {0} service name is not valid. portInfoErr1=The system cannot construct the port data. The {0} port name is not valid. portInfoErr2=The system cannot construct the port data. The {0} bi
svn commit: r1051887 - /axis/axis2/java/core/trunk/modules/adb/src/org/apache/axis2/databinding/utils/reader/ADBXMLStreamReaderImpl.java
Author: azeez Date: Wed Dec 22 13:22:19 2010 New Revision: 1051887 URL: http://svn.apache.org/viewvc?rev=1051887&view=rev Log: Fix for AXIS2-4741 Modified: axis/axis2/java/core/trunk/modules/adb/src/org/apache/axis2/databinding/utils/reader/ADBXMLStreamReaderImpl.java Modified: axis/axis2/java/core/trunk/modules/adb/src/org/apache/axis2/databinding/utils/reader/ADBXMLStreamReaderImpl.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/adb/src/org/apache/axis2/databinding/utils/reader/ADBXMLStreamReaderImpl.java?rev=1051887&r1=1051886&r2=1051887&view=diff == --- axis/axis2/java/core/trunk/modules/adb/src/org/apache/axis2/databinding/utils/reader/ADBXMLStreamReaderImpl.java (original) +++ axis/axis2/java/core/trunk/modules/adb/src/org/apache/axis2/databinding/utils/reader/ADBXMLStreamReaderImpl.java Wed Dec 22 13:22:19 2010 @@ -129,7 +129,7 @@ public class ADBXMLStreamReaderImpl impl QName qname = (QName) complexTypeMap.get(key); if(qname !=null){ String prefix =qname.getPrefix(); -if(prefix ==null && "".equals(prefix)){ +if(prefix == null || "".equals(prefix)){ prefix = OMSerializerUtil.getNextNSPrefix(); } qname = new QName(qname.getNamespaceURI(),qname.getLocalPart(),prefix);
svn commit: r1051967 - in /axis/axis2/java/core/trunk/modules: codegen/src/org/apache/axis2/wsdl/codegen/emitter/ jaxws/src/org/apache/axis2/jaxws/message/util/ kernel/src/org/apache/axis2/context/ext
Author: azeez Date: Wed Dec 22 16:10:45 2010 New Revision: 1051967 URL: http://svn.apache.org/viewvc?rev=1051967&view=rev Log: FindBugs improvements based on suggestions AXIS2-4661[A Modified: axis/axis2/java/core/trunk/modules/codegen/src/org/apache/axis2/wsdl/codegen/emitter/AxisServiceBasedMultiLanguageEmitter.java axis/axis2/java/core/trunk/modules/codegen/src/org/apache/axis2/wsdl/codegen/emitter/CEmitter.java axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/message/util/Reader.java axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/context/externalize/DebugObjectOutputStream.java axis/axis2/java/core/trunk/modules/metadata/src/org/apache/axis2/jaxws/description/builder/ActionAnnot.java axis/axis2/java/core/trunk/modules/metadata/src/org/apache/axis2/jaxws/description/impl/AttachmentDescriptionImpl.java axis/axis2/java/core/trunk/modules/metadata/src/org/apache/axis2/jaxws/description/impl/OperationDescriptionImpl.java axis/axis2/java/core/trunk/modules/metadata/src/org/apache/axis2/jaxws/description/impl/URIResolverImpl.java axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/SOAPHeaderImpl.java Modified: axis/axis2/java/core/trunk/modules/codegen/src/org/apache/axis2/wsdl/codegen/emitter/AxisServiceBasedMultiLanguageEmitter.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/codegen/src/org/apache/axis2/wsdl/codegen/emitter/AxisServiceBasedMultiLanguageEmitter.java?rev=1051967&r1=1051966&r2=1051967&view=diff == --- axis/axis2/java/core/trunk/modules/codegen/src/org/apache/axis2/wsdl/codegen/emitter/AxisServiceBasedMultiLanguageEmitter.java (original) +++ axis/axis2/java/core/trunk/modules/codegen/src/org/apache/axis2/wsdl/codegen/emitter/AxisServiceBasedMultiLanguageEmitter.java Wed Dec 22 16:10:45 2010 @@ -113,17 +113,18 @@ public class AxisServiceBasedMultiLangua protected static final String MESSAGE_RECEIVER_SUFFIX = "MessageReceiver"; protected static final String DATABINDING_SUPPORTER_NAME_SUFFIX = "DatabindingSupporter"; -protected static Map mepToClassMap; -protected static Map mepToSuffixMap; +protected static final Map mepToClassMap; +protected static final Map mepToSuffixMap; protected AxisBinding axisBinding; protected AxisEndpoint axisEndpoint; protected int uniqueFaultNameCounter = 0; + /** * Field constructorMap */ -protected static HashMap constructorMap = new HashMap(50); +protected static final HashMap constructorMap = new HashMap(50); //~--- static initializers @@ -2635,11 +2636,9 @@ public class AxisServiceBasedMultiLangua outputDir = new File(outputDir, dir2); } -if (!outputDir.exists()) {//$NON-SEC-3 -outputDir.mkdirs();//$NON-SEC-2 +if (!outputDir.exists() && !outputDir.mkdirs()){ +log.warn("Cannot create output directory " + outputDir.getAbsolutePath()); } - - return outputDir; } @@ -3218,30 +3217,26 @@ public class AxisServiceBasedMultiLangua * @param operation * @return Returns Element. */ -protected Element getOutputParamElement(Document doc, AxisOperation operation) { +protected Element getOutputParamElement(Document doc, AxisOperation operation) { Element paramElement = doc.createElement("param"); AxisMessage outputMessage = operation.getMessage(WSDLConstants.MESSAGE_LABEL_OUT_VALUE); -String typeMappingStr; +if (outputMessage == null) { +return null; +} String parameterName; +String typeMappingStr; +parameterName = this.mapper.getParameterName(outputMessage.getElementQName()); +String typeMapping = this.mapper.getTypeMappingName(outputMessage.getElementQName()); +typeMappingStr = (typeMapping == null) ? "" : typeMapping; -if (outputMessage != null) { -parameterName = this.mapper.getParameterName(outputMessage.getElementQName()); -String typeMapping = this.mapper.getTypeMappingName(outputMessage.getElementQName()); -typeMappingStr = (typeMapping == null) -? "" -: typeMapping; -} else { -parameterName = ""; -typeMappingStr = ""; -} addAttribute(doc, "name", parameterName, paramElement); addAttribute(doc, "type", typeMappingStr, paramElement); //adds the short type addShortType(paramElement, -(outputMessage.getElementQName() == null) ? null : -outputMessage.getElementQName().getLocalPart()); +
svn commit: r1053581 - in /axis/axis2/java/core/trunk/modules: kernel/src/org/apache/axis2/JAXRS/ kernel/src/org/apache/axis2/deployment/util/ kernel/src/org/apache/axis2/description/java2wsdl/ kernel
Author: azeez Date: Wed Dec 29 09:32:29 2010 New Revision: 1053581 URL: http://svn.apache.org/viewvc?rev=1053581&view=rev Log: 1. Fix AXIS2-2944 2. s/JAXRS/jaxrs according the standard Java package naming conventions Added: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/java/security/SSLProtocolSocketFactory.java axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/java/security/TrustAllTrustManager.java axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/jaxrs/ - copied from r1051884, axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/JAXRS/ Removed: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/JAXRS/ Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/util/Utils.java axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/java2wsdl/DefaultSchemaGenerator.java axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/jaxrs/JAXRSModel.java axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/jaxrs/JAXRSUtils.java axis/axis2/java/core/trunk/modules/osgi/pom.xml Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/util/Utils.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/util/Utils.java?rev=1053581&r1=1053580&r2=1053581&view=diff == --- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/util/Utils.java (original) +++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/util/Utils.java Wed Dec 29 09:32:29 2010 @@ -27,7 +27,7 @@ import org.apache.axiom.soap.SOAP12Const 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.jaxrs.JAXRSModel; import org.apache.axis2.context.ConfigurationContext; import org.apache.axis2.deployment.DeploymentClassLoader; import org.apache.axis2.deployment.DeploymentConstants; Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/java2wsdl/DefaultSchemaGenerator.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/java2wsdl/DefaultSchemaGenerator.java?rev=1053581&r1=1053580&r2=1053581&view=diff == --- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/java2wsdl/DefaultSchemaGenerator.java (original) +++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/java2wsdl/DefaultSchemaGenerator.java Wed Dec 29 09:32:29 2010 @@ -20,8 +20,8 @@ package org.apache.axis2.description.java2wsdl; import org.apache.axis2.AxisFault; -import org.apache.axis2.JAXRS.JAXRSUtils; -import org.apache.axis2.JAXRS.JAXRSModel; +import org.apache.axis2.jaxrs.JAXRSUtils; +import org.apache.axis2.jaxrs.JAXRSModel; import org.apache.axis2.util.JavaUtils; import org.apache.axis2.deployment.util.BeanExcludeInfo; import org.apache.axis2.deployment.util.Utils; Added: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/java/security/SSLProtocolSocketFactory.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/java/security/SSLProtocolSocketFactory.java?rev=1053581&view=auto == --- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/java/security/SSLProtocolSocketFactory.java (added) +++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/java/security/SSLProtocolSocketFactory.java Wed Dec 29 09:32:29 2010 @@ -0,0 +1,82 @@ +/* + * Copyright 2004,2005 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 permis
svn commit: r1053623 - /axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java
Author: azeez Date: Wed Dec 29 12:03:11 2010 New Revision: 1053623 URL: http://svn.apache.org/viewvc?rev=1053623&view=rev Log: introduced constant Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java?rev=1053623&r1=1053622&r2=1053623&view=diff == --- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java (original) +++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java Wed Dec 29 12:03:11 2010 @@ -80,6 +80,8 @@ public abstract class DeploymentEngine i */ public static final String DEPLOYMENT_TASK_RUNNING = "deployment.task.running"; +private static final String MODULE_DEPLOYER = "moduleDeployer"; + //to keep the web resource location if any protected static String webLocationString = null; protected Scheduler scheduler; @@ -1185,7 +1187,6 @@ public abstract class DeploymentEngine i public static AxisModule buildModule(File modulearchive, AxisConfiguration config) throws DeploymentException { -final String MODULE_DEPLOYER = "moduleDeployer"; AxisModule axismodule; ModuleDeployer deployer = (ModuleDeployer) config.getParameterValue(MODULE_DEPLOYER); try {
svn commit: r1055120 - /axis/axis2/java/core/trunk/modules/transport/http/src/org/apache/axis2/transport/http/AxisServlet.java
Author: azeez Date: Tue Jan 4 17:56:00 2011 New Revision: 1055120 URL: http://svn.apache.org/viewvc?rev=1055120&view=rev Log: When enableMTOM is set to true on the server side, Axis2 sends an invalid response. The root cause is the Content-Type which is correctly set by the MessageFormatters being overridden by some code in the AxisServlet. Removing this bit of code which blindly sets the Content-Type. For more details see: http://markmail.org/message/jrxjexqwi6oicvat?q=list:org.apache.ws.axis-dev Modified: axis/axis2/java/core/trunk/modules/transport/http/src/org/apache/axis2/transport/http/AxisServlet.java Modified: axis/axis2/java/core/trunk/modules/transport/http/src/org/apache/axis2/transport/http/AxisServlet.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/transport/http/src/org/apache/axis2/transport/http/AxisServlet.java?rev=1055120&r1=1055119&r2=1055120&view=diff == --- axis/axis2/java/core/trunk/modules/transport/http/src/org/apache/axis2/transport/http/AxisServlet.java (original) +++ axis/axis2/java/core/trunk/modules/transport/http/src/org/apache/axis2/transport/http/AxisServlet.java Tue Jan 4 17:56:00 2011 @@ -159,9 +159,7 @@ public class AxisServlet extends HttpSer .getProperty(RequestResponseTransport.TRANSPORT_CONTROL)) .awaitResponse(); } -response.setContentType("text/xml; charset=" -+ msgContext - .getProperty(Constants.Configuration.CHARACTER_SET_ENCODING)); + // if data has not been sent back and this is not a signal response if (!TransportUtils.isResponseWritten(msgContext) && (((RequestResponseTransport)
svn commit: r1055381 - in /axis/axis2/java/core/trunk/modules/kernel: src/org/apache/axis2/description/WSDL11ToAxisServiceBuilder.java test-resources/wsdl/meps-wsdl11.wsdl test/org/apache/axis2/descri
Author: azeez Date: Wed Jan 5 09:43:02 2011 New Revision: 1055381 URL: http://svn.apache.org/viewvc?rev=1055381&view=rev Log: Applying patch provided by Antonio Andrade for AXIS2-4090 - https://issues.apache.org/jira/browse/AXIS2-4090 Added: axis/axis2/java/core/trunk/modules/kernel/test-resources/wsdl/meps-wsdl11.wsdl axis/axis2/java/core/trunk/modules/kernel/test/org/apache/axis2/description/MessageExchangePatternsTest.java Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/WSDL11ToAxisServiceBuilder.java Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/WSDL11ToAxisServiceBuilder.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/WSDL11ToAxisServiceBuilder.java?rev=1055381&r1=1055380&r2=1055381&view=diff == --- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/WSDL11ToAxisServiceBuilder.java (original) +++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/WSDL11ToAxisServiceBuilder.java Wed Jan 5 09:43:02 2011 @@ -1490,7 +1490,7 @@ public class WSDL11ToAxisServiceBuilder if (null != message) { outMessage.setName(message.getQName().getLocalPart()); - copyExtensionAttributes(wsdl4jInputMessage.getExtensionAttributes(), + copyExtensionAttributes(wsdl4jOutputMessage.getExtensionAttributes(), outMessage, PORT_TYPE_OPERATION_INPUT); // wsdl:portType -> wsdl:operation -> wsdl:output Added: axis/axis2/java/core/trunk/modules/kernel/test-resources/wsdl/meps-wsdl11.wsdl URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/test-resources/wsdl/meps-wsdl11.wsdl?rev=1055381&view=auto == --- axis/axis2/java/core/trunk/modules/kernel/test-resources/wsdl/meps-wsdl11.wsdl (added) +++ axis/axis2/java/core/trunk/modules/kernel/test-resources/wsdl/meps-wsdl11.wsdl Wed Jan 5 09:43:02 2011 @@ -0,0 +1,198 @@ + +http://www.example.org"; + xmlns:tns="http://www.example.org"; + xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"; + xmlns:xsd="http://www.w3.org/2001/XMLSchema"; + xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"; + xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/";> + + +Message Exchange Patterns + + + +http://www.example.org";> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +http://schemas.xmlsoap.org/soap/http"; /> + + http://www.example.org/in-only"; +style="document" /> + + + + + + http://www.example.org/robust-in-only"; +style="document" /> + + + + + + + + + http://www.example.org/in-out"; +style="document" /> + + + + + + + + + + + + http://www.example.org/out-only"; +style="document" /> + + + + + + http://www.example.org/robust-out-only"; +style="document" /> + + + + + + + + + http://www.example.org/out-in"; +style="document" /> + + + + + + + + + + + + + +http://schemas.xmlsoap.org/soap/http"; /> + + http://www.example.org/in-only"; +style="document" /> + + + + + + http://www.example.org/robust-in-only"; +style="document" /> + + + + + + + + + http://www.example.org/in-out"; +style="document" /> + + + + + + + + + + + + http://www.example.org/out-only"; +style="document" /> + + + + + + http://www.example.org/robust-out-only"; +style="document" /> + + + + + + + + + http://www.example.org/out-in"; +style="document" /> + + + + + + + + + + + + + + + Message Exchange Patterns + + +
svn commit: r1055403 - /axis/axis2/java/core/trunk/modules/kernel/test/org/apache/axis2/description/OperationReference.java
Author: azeez Date: Wed Jan 5 10:38:15 2011 New Revision: 1055403 URL: http://svn.apache.org/viewvc?rev=1055403&view=rev Log: Oops... forgot to svn add a file when committing patch AXIS2-4090 Added: axis/axis2/java/core/trunk/modules/kernel/test/org/apache/axis2/description/OperationReference.java Added: axis/axis2/java/core/trunk/modules/kernel/test/org/apache/axis2/description/OperationReference.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/test/org/apache/axis2/description/OperationReference.java?rev=1055403&view=auto == --- axis/axis2/java/core/trunk/modules/kernel/test/org/apache/axis2/description/OperationReference.java (added) +++ axis/axis2/java/core/trunk/modules/kernel/test/org/apache/axis2/description/OperationReference.java Wed Jan 5 10:38:15 2011 @@ -0,0 +1,65 @@ +package org.apache.axis2.description; + +import javax.xml.namespace.QName; + +/** + * This class is used to encapsulate WSDL operations information. It's used by + * other data-driven JUnit Test Classes that deal with AxisOperations. + */ +class OperationReference { + +private String wsdlPath; +private QName serviceName; +private String portName; +private QName operationName; + +public OperationReference() { } + +public OperationReference(String wsdlPath, + QName serviceName, + String portName, + QName operationName) { +this.wsdlPath = wsdlPath; +this.serviceName = serviceName; +this.portName = portName; +this.operationName = operationName; +} + +public String getWsdlPath() { +return wsdlPath; +} + +public QName getServiceName() { +return serviceName; +} + +public String getPortName() { +return portName; +} + +public QName getOperationName() { +return operationName; +} + +public void setWsdlPath(String wsdlPath_) { +wsdlPath = wsdlPath_; +} + +public void setServiceName(QName serviceName_) { +serviceName = serviceName_; +} + +public void setPortName(String portName_) { +portName = portName_; +} + +public void setOperationName(QName operationName_) { +operationName = operationName_; +} + +public String toString() { +return "serviceName:" + serviceName + "; portName:" + portName + +"; operationName:" + operationName; +} + +}
svn commit: r1055758 - /axis/axis2/java/core/trunk/modules/webapp/src/main/webapp/axis2-web/include/httpbase.jsp
Author: azeez Date: Thu Jan 6 06:36:40 2011 New Revision: 1055758 URL: http://svn.apache.org/viewvc?rev=1055758&view=rev Log: Applying patch provided by Boris Milonov for AXIS2-4461 Modified: axis/axis2/java/core/trunk/modules/webapp/src/main/webapp/axis2-web/include/httpbase.jsp Modified: axis/axis2/java/core/trunk/modules/webapp/src/main/webapp/axis2-web/include/httpbase.jsp URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/webapp/src/main/webapp/axis2-web/include/httpbase.jsp?rev=1055758&r1=1055757&r2=1055758&view=diff == --- axis/axis2/java/core/trunk/modules/webapp/src/main/webapp/axis2-web/include/httpbase.jsp (original) +++ axis/axis2/java/core/trunk/modules/webapp/src/main/webapp/axis2-web/include/httpbase.jsp Thu Jan 6 06:36:40 2011 @@ -17,76 +17,55 @@ ~ under the License. --%> -<%@ page import="org.apache.axis2.AxisFault" %> <%@ page import="org.apache.axis2.Constants" %> -<%@ page import="org.apache.axis2.addressing.EndpointReference" %> -<%@ page import="org.apache.axis2.client.Options" %> -<%@ page import="org.apache.axis2.client.ServiceClient" %> <%@ page import="org.apache.axis2.context.ConfigurationContext" %> -<%@ page import="org.apache.axis2.context.ConfigurationContextFactory" %> -<%@ page import="org.apache.axis2.context.ServiceContext" %> -<%@ page import="org.apache.axis2.context.ServiceGroupContext" %> -<%@ page import="org.apache.axis2.deployment.util.PhasesInfo" %> -<%@ page import="org.apache.axis2.description.AxisModule" %> -<%@ page import="org.apache.axis2.description.AxisOperation" %> -<%@ page import="org.apache.axis2.description.AxisService" %> -<%@ page import="org.apache.axis2.description.AxisServiceGroup" %> <%@ page import="org.apache.axis2.description.Parameter" %> -<%@ page import="org.apache.axis2.engine.AxisConfiguration" %> -<%@ page import="org.apache.axis2.engine.Handler" %> -<%@ page import="org.apache.axis2.engine.Phase" %> <%@ page import="org.apache.axis2.transport.http.AxisServlet" %> -<%@ page import="org.apache.axis2.util.JavaUtils" %> -<%@ page import="javax.xml.parsers.SAXParser" %> -<%@ page import="javax.xml.parsers.SAXParserFactory" %> -<%@ page import="java.io.IOException" %> -<%@ page import="java.io.InputStream" %> -<%@ page import="java.io.StringWriter" %> -<%@ page import="java.util.ArrayList" %> -<%@ page import="java.util.Collection" %> -<%@ page import="java.util.Enumeration" %> -<%@ page import="java.util.HashMap" %> -<%@ page import="java.util.Hashtable" %> -<%@ page import="java.util.Iterator" %> +<%@ page import="org.apache.axis2.transport.TransportListener" %> <%! - private String frontendHostUrl; +private String frontendHostUrl; +private String hostname; - public void jspInit() { -ServletContext context = this.getServletConfig().getServletContext(); -ConfigurationContext configctx = (ConfigurationContext) context.getAttribute(AxisServlet.CONFIGURATION_CONTEXT); -if (configctx != null){ -Parameter parameter = configctx.getAxisConfiguration().getParameter(Constants.HTTP_FRONTEND_HOST_URL); -if (parameter != null) { - frontendHostUrl = (String) parameter.getValue(); +public void jspInit() { +ServletContext context = this.getServletConfig().getServletContext(); +ConfigurationContext configctx = (ConfigurationContext) context.getAttribute(AxisServlet.CONFIGURATION_CONTEXT); +if (configctx != null) { +Parameter parameter = configctx.getAxisConfiguration().getParameter(Constants.HTTP_FRONTEND_HOST_URL); +if (parameter != null) { +frontendHostUrl = (String) parameter.getValue(); +} +Parameter hostnameParam = configctx.getAxisConfiguration().getParameter(TransportListener.HOST_ADDRESS); +if (hostnameParam != null) { +hostname = (String) hostnameParam.getValue(); +} } } - } - public String calculateHttpBase(HttpServletRequest aRequest) { -StringBuffer stringBuffer = new StringBuffer(); -if (frontendHostUrl != null) { - stringBuffer.append(frontendHostUrl); -} else { - String scheme = aRequest.getScheme(); - stringBuffer.append(scheme); - stringBuffer.append("://"); - stringBuffer.append(aRequest.getServerName()); - if (("http".equal
svn commit: r1055787 - in /axis/axis2/java/core/trunk/modules/adb: src/org/apache/axis2/databinding/utils/BeanUtil.java test/org/apache/axis2/databinding/utils/BeanUtilTest.java
Author: azeez Date: Thu Jan 6 08:27:31 2011 New Revision: 1055787 URL: http://svn.apache.org/viewvc?rev=1055787&view=rev Log: Applying patch provided by Pétur Runólfsson for AXIS2-4398 Modified: axis/axis2/java/core/trunk/modules/adb/src/org/apache/axis2/databinding/utils/BeanUtil.java axis/axis2/java/core/trunk/modules/adb/test/org/apache/axis2/databinding/utils/BeanUtilTest.java Modified: axis/axis2/java/core/trunk/modules/adb/src/org/apache/axis2/databinding/utils/BeanUtil.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/adb/src/org/apache/axis2/databinding/utils/BeanUtil.java?rev=1055787&r1=1055786&r2=1055787&view=diff == --- axis/axis2/java/core/trunk/modules/adb/src/org/apache/axis2/databinding/utils/BeanUtil.java (original) +++ axis/axis2/java/core/trunk/modules/adb/src/org/apache/axis2/databinding/utils/BeanUtil.java Thu Jan 6 08:27:31 2011 @@ -335,17 +335,19 @@ public class BeanUtil { // to get the type table. if (messageContext != null) { AxisService axisService = messageContext.getAxisService(); -QName typeQName = beanElement.resolveQName(instanceTypeName); -TypeTable typeTable = axisService.getTypeTable(); -String className = typeTable.getClassNameForQName(typeQName); -if (className != null) { -try { -beanClass = Loader.loadClass(beanClass.getClassLoader(), className); -} catch (ClassNotFoundException ce) { -throw AxisFault.makeFault(ce); +if (axisService != null) { +QName typeQName = beanElement.resolveQName(instanceTypeName); +TypeTable typeTable = axisService.getTypeTable(); +String className = typeTable.getClassNameForQName(typeQName); +if (className != null) { +try { +beanClass = Loader.loadClass(beanClass.getClassLoader(), className); +} catch (ClassNotFoundException ce) { +throw AxisFault.makeFault(ce); +} +} else { +throw new AxisFault("Unknow type " + typeQName); } -} else { -throw new AxisFault("Unknow type " + typeQName); } } } @@ -391,7 +393,7 @@ public class BeanUtil { } } else { if (SimpleTypeMapper.isSimpleType(beanClass)) { -return SimpleTypeMapper.getSimpleTypeObject(beanClass, beanElement); +return getSimpleTypeObjectChecked(beanClass, beanElement); } else if ("java.lang.Object".equals(beanClass.getName())) { return beanElement.getFirstOMChild(); } @@ -808,7 +810,7 @@ public class BeanUtil { String value = omElement.getText(); return Base64.decode(value); } else { -return SimpleTypeMapper.getSimpleTypeObject(classType, omElement); +return getSimpleTypeObjectChecked(classType, omElement); } } else if (SimpleTypeMapper.isCollection(classType)) { if (generictype != null && (generictype instanceof ParameterizedType)) { @@ -965,4 +967,19 @@ public class BeanUtil { } } +private static Object getSimpleTypeObjectChecked(Class classType, + OMElement omElement) throws AxisFault { +try { +return SimpleTypeMapper.getSimpleTypeObject(classType, omElement); +} catch (NumberFormatException e) { +MessageContext msgContext = MessageContext.getCurrentMessageContext(); +QName faultCode = msgContext != null ? + msgContext.getEnvelope().getVersion().getSenderFaultCode() : + null; + +throw new AxisFault("Invalid value \"" + omElement.getText() + "\" for element " + +omElement.getLocalName(), faultCode, e); +} +} + } Modified: axis/axis2/java/core/trunk/modules/adb/test/org/apache/axis2/databinding/utils/BeanUtilTest.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/adb/test/org/apache/axis2/databinding/utils/BeanUtilTest.java?rev=1055787&r1=1055786&r2=1055787&view=diff
svn commit: r1055823 - /axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/ServiceBuilder.java
Author: azeez Date: Thu Jan 6 10:36:35 2011 New Revision: 1055823 URL: http://svn.apache.org/viewvc?rev=1055823&view=rev Log: Fix for AXIS2-4080 invoke ServiceLifecycle.startup() after completely populating the AxisService Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/ServiceBuilder.java Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/ServiceBuilder.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/ServiceBuilder.java?rev=1055823&r1=1055822&r2=1055823&view=diff == --- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/ServiceBuilder.java (original) +++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/ServiceBuilder.java Thu Jan 6 10:36:35 2011 @@ -430,6 +430,7 @@ public class ServiceBuilder extends Desc throw new DeploymentException(axisFault); } +startupServiceLifecycle(); return service; } @@ -507,14 +508,13 @@ public class ServiceBuilder extends Desc private void loadServiceLifeCycleClass(String className) throws DeploymentException { - if (className != null) { - try { - ClassLoader loader = service.getClassLoader(); - Class serviceLifeCycleClassImpl = Loader.loadClass(loader, +if (className != null) { +try { +ClassLoader loader = service.getClassLoader(); +Class serviceLifeCycleClassImpl = Loader.loadClass(loader, className); - ServiceLifeCycle serviceLifeCycle = (ServiceLifeCycle) serviceLifeCycleClassImpl - .newInstance(); - serviceLifeCycle.startUp(configCtx, service); +ServiceLifeCycle serviceLifeCycle = +(ServiceLifeCycle) serviceLifeCycleClassImpl.newInstance(); service.setServiceLifeCycle(serviceLifeCycle); } catch (Exception e) { throw new DeploymentException(e.getMessage(), e); @@ -915,8 +915,10 @@ public class ServiceBuilder extends Desc } } - private void processPolicyAttachments(OMElement serviceElement, AxisService service) throws DeploymentException { - Iterator attachmentElements = serviceElement.getChildrenWithName(new QName(POLICY_NS_URI, TAG_POLICY_ATTACHMENT)); + private void processPolicyAttachments(OMElement serviceElement, + AxisService service) throws DeploymentException { + Iterator attachmentElements = +serviceElement.getChildrenWithName(new QName(POLICY_NS_URI, TAG_POLICY_ATTACHMENT)); try { Utils.processPolicyAttachments(attachmentElements, service); } catch (Exception e) { @@ -924,4 +926,9 @@ public class ServiceBuilder extends Desc } } +private void startupServiceLifecycle() { +if (service.getServiceLifeCycle() != null) { +service.getServiceLifeCycle().startUp(configCtx, service); +} +} }
svn commit: r1055832 - in /axis/axis2/java/core/trunk/modules: adb-codegen/src/org/apache/axis2/schema/template/ kernel/src/org/apache/axis2/util/
Author: azeez Date: Thu Jan 6 11:24:55 2011 New Revision: 1055832 URL: http://svn.apache.org/viewvc?rev=1055832&view=rev Log: Fix for AXIS2-1871 & AXIS2-1890 Modified: axis/axis2/java/core/trunk/modules/adb-codegen/src/org/apache/axis2/schema/template/ADBBeanTemplate-bean.xsl axis/axis2/java/core/trunk/modules/adb-codegen/src/org/apache/axis2/schema/template/ADBBeanTemplate.xsl axis/axis2/java/core/trunk/modules/adb-codegen/src/org/apache/axis2/schema/template/PlainBeanTemplate.xsl axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/util/Utils.java Modified: axis/axis2/java/core/trunk/modules/adb-codegen/src/org/apache/axis2/schema/template/ADBBeanTemplate-bean.xsl URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/adb-codegen/src/org/apache/axis2/schema/template/ADBBeanTemplate-bean.xsl?rev=1055832&r1=1055831&r2=1055832&view=diff == --- axis/axis2/java/core/trunk/modules/adb-codegen/src/org/apache/axis2/schema/template/ADBBeanTemplate-bean.xsl (original) +++ axis/axis2/java/core/trunk/modules/adb-codegen/src/org/apache/axis2/schema/template/ADBBeanTemplate-bean.xsl Thu Jan 6 11:24:55 2011 @@ -57,6 +57,7 @@ /** * bean class */ +@SuppressWarnings({"unchecked","unused"}) public static abstract class extends extends extends org.apache.axis2.databinding.types.Union Modified: axis/axis2/java/core/trunk/modules/adb-codegen/src/org/apache/axis2/schema/template/ADBBeanTemplate.xsl URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/adb-codegen/src/org/apache/axis2/schema/template/ADBBeanTemplate.xsl?rev=1055832&r1=1055831&r2=1055832&view=diff == --- axis/axis2/java/core/trunk/modules/adb-codegen/src/org/apache/axis2/schema/template/ADBBeanTemplate.xsl (original) +++ axis/axis2/java/core/trunk/modules/adb-codegen/src/org/apache/axis2/schema/template/ADBBeanTemplate.xsl Thu Jan 6 11:24:55 2011 @@ -37,6 +37,7 @@ /** * wrapped bean classes */ +@SuppressWarnings({"unchecked","unused"}) public class { @@ -80,6 +81,7 @@ /** * class */ +@SuppressWarnings({"unchecked","unused"}) public static class { Modified: axis/axis2/java/core/trunk/modules/adb-codegen/src/org/apache/axis2/schema/template/PlainBeanTemplate.xsl URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/adb-codegen/src/org/apache/axis2/schema/template/PlainBeanTemplate.xsl?rev=1055832&r1=1055831&r2=1055832&view=diff == --- axis/axis2/java/core/trunk/modules/adb-codegen/src/org/apache/axis2/schema/template/PlainBeanTemplate.xsl (original) +++ axis/axis2/java/core/trunk/modules/adb-codegen/src/org/apache/axis2/schema/template/PlainBeanTemplate.xsl Thu Jan 6 11:24:55 2011 @@ -35,6 +35,7 @@ /** * wrapped bean classes */ +@SuppressWarnings({"unchecked","unused"}) public class { Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/util/Utils.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/util/Utils.java?rev=1055832&r1=1055831&r2=1055832&view=diff == --- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/util/Utils.java (original) +++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/util/Utils.java Thu Jan 6 11:24:55 2011 @@ -58,6 +58,7 @@ import org.apache.commons.logging.LogFac import javax.xml.namespace.QName; import java.io.File; +import java.lang.reflect.Modifier; import java.security.AccessController; import java.security.PrivilegedAction; import java.security.PrivilegedExceptionAction; @@ -262,12 +263,12 @@ public class Utils { if (path == null) { return null; } - + //with this chances that substring matching a different place in the URL is reduced if(!servicePath.endsWith("/")){ servicePath = servicePath+"/"; } - + int index = path.lastIndexOf(servicePath); String serviceOpPart = null; @@ -375,7 +376,7 @@ public class Utils { public static String getModuleName(String moduleName, String moduleVersion) { if (moduleVersion != null && moduleVersion.length() != 0) { moduleName = moduleName + "-" + moduleVersion; -} +} return
svn commit: r1055836 - in /axis/axis2/java/core/trunk/modules/adb/src/org/apache/axis2/databinding/types: NegativeInteger.java NonNegativeInteger.java NonPositiveInteger.java PositiveInteger.java
Author: azeez Date: Thu Jan 6 11:37:06 2011 New Revision: 1055836 URL: http://svn.apache.org/viewvc?rev=1055836&view=rev Log: Fix for AXIS2-3848 Modified: axis/axis2/java/core/trunk/modules/adb/src/org/apache/axis2/databinding/types/NegativeInteger.java axis/axis2/java/core/trunk/modules/adb/src/org/apache/axis2/databinding/types/NonNegativeInteger.java axis/axis2/java/core/trunk/modules/adb/src/org/apache/axis2/databinding/types/NonPositiveInteger.java axis/axis2/java/core/trunk/modules/adb/src/org/apache/axis2/databinding/types/PositiveInteger.java Modified: axis/axis2/java/core/trunk/modules/adb/src/org/apache/axis2/databinding/types/NegativeInteger.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/adb/src/org/apache/axis2/databinding/types/NegativeInteger.java?rev=1055836&r1=1055835&r2=1055836&view=diff == --- axis/axis2/java/core/trunk/modules/adb/src/org/apache/axis2/databinding/types/NegativeInteger.java (original) +++ axis/axis2/java/core/trunk/modules/adb/src/org/apache/axis2/databinding/types/NegativeInteger.java Thu Jan 6 11:37:06 2011 @@ -84,11 +84,15 @@ public class NegativeInteger extends Non * * @return BigIntegerRep * @throws java.io.ObjectStreamException + * @deprecated As per https://issues.apache.org/jira/browse/AXIS2-3848 */ public Object writeReplace() throws ObjectStreamException { return new BigIntegerRep(toByteArray()); } +/** + * @deprecated As per https://issues.apache.org/jira/browse/AXIS2-3848 + */ protected static class BigIntegerRep implements java.io.Serializable { private static final long serialVersionUID = 1209618487031404110L; private byte[] array; Modified: axis/axis2/java/core/trunk/modules/adb/src/org/apache/axis2/databinding/types/NonNegativeInteger.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/adb/src/org/apache/axis2/databinding/types/NonNegativeInteger.java?rev=1055836&r1=1055835&r2=1055836&view=diff == --- axis/axis2/java/core/trunk/modules/adb/src/org/apache/axis2/databinding/types/NonNegativeInteger.java (original) +++ axis/axis2/java/core/trunk/modules/adb/src/org/apache/axis2/databinding/types/NonNegativeInteger.java Thu Jan 6 11:37:06 2011 @@ -78,11 +78,15 @@ public class NonNegativeInteger extends * * @return BigIntegerRep * @throws ObjectStreamException + * @deprecated As per https://issues.apache.org/jira/browse/AXIS2-3848 */ public Object writeReplace() throws ObjectStreamException { return new BigIntegerRep(toByteArray()); } +/** + * @deprecated As per https://issues.apache.org/jira/browse/AXIS2-3848 + */ protected static class BigIntegerRep implements java.io.Serializable { private static final long serialVersionUID = -6135065605514678689L; private byte[] array; Modified: axis/axis2/java/core/trunk/modules/adb/src/org/apache/axis2/databinding/types/NonPositiveInteger.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/adb/src/org/apache/axis2/databinding/types/NonPositiveInteger.java?rev=1055836&r1=1055835&r2=1055836&view=diff == --- axis/axis2/java/core/trunk/modules/adb/src/org/apache/axis2/databinding/types/NonPositiveInteger.java (original) +++ axis/axis2/java/core/trunk/modules/adb/src/org/apache/axis2/databinding/types/NonPositiveInteger.java Thu Jan 6 11:37:06 2011 @@ -82,11 +82,15 @@ public class NonPositiveInteger extends * * @return BigIntegerRep * @throws java.io.ObjectStreamException + * @deprecated As per https://issues.apache.org/jira/browse/AXIS2-3848 */ public Object writeReplace() throws ObjectStreamException { return new BigIntegerRep(toByteArray()); } +/** + * @deprecated As per https://issues.apache.org/jira/browse/AXIS2-3848 + */ protected static class BigIntegerRep implements java.io.Serializable { private static final long serialVersionUID = -3601357690365698517L; private byte[] array; Modified: axis/axis2/java/core/trunk/modules/adb/src/org/apache/axis2/databinding/types/PositiveInteger.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/adb/src/org/apache/axis2/databinding/types/PositiveInteger.java?rev=1055836&r1=1055835&r2=1055836&view=diff == --- axis/axis2/java/core/trunk/modules/adb/src/org/apache/axis2/databinding/types/PositiveInteger.java (original) +++ axis/axis2/java/core/trunk/modules/adb/src/org/apache/axis2/databinding/types/PositiveInteger.java Thu Jan 6 11:37:06 2
svn commit: r1055844 - in /axis/axis2/java/core/trunk/modules: distribution/src/main/assembly/bin-assembly.xml tool/script/axis2server.bat tool/script/setenv.sh
Author: azeez Date: Thu Jan 6 12:14:06 2011 New Revision: 1055844 URL: http://svn.apache.org/viewvc?rev=1055844&view=rev Log: Fix for AXIS2-3073 Modified: axis/axis2/java/core/trunk/modules/distribution/src/main/assembly/bin-assembly.xml axis/axis2/java/core/trunk/modules/tool/script/axis2server.bat axis/axis2/java/core/trunk/modules/tool/script/setenv.sh Modified: axis/axis2/java/core/trunk/modules/distribution/src/main/assembly/bin-assembly.xml URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/distribution/src/main/assembly/bin-assembly.xml?rev=1055844&r1=1055843&r2=1055844&view=diff == --- axis/axis2/java/core/trunk/modules/distribution/src/main/assembly/bin-assembly.xml (original) +++ axis/axis2/java/core/trunk/modules/distribution/src/main/assembly/bin-assembly.xml Thu Jan 6 12:14:06 2011 @@ -100,7 +100,7 @@ ../../modules/kernel/conf - +conf log4j.properties commons-logging.properties Modified: axis/axis2/java/core/trunk/modules/tool/script/axis2server.bat URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/tool/script/axis2server.bat?rev=1055844&r1=1055843&r2=1055844&view=diff == --- axis/axis2/java/core/trunk/modules/tool/script/axis2server.bat (original) +++ axis/axis2/java/core/trunk/modules/tool/script/axis2server.bat Thu Jan 6 12:14:06 2011 @@ -98,7 +98,7 @@ goto end :runAxis2 rem set the classes by looping through the libs setlocal EnableDelayedExpansion -set AXIS2_CLASS_PATH=%AXIS2_HOME%;%JAVA_HOME%\lib\tools.jar; +set AXIS2_CLASS_PATH=%AXIS2_HOME%;%AXIS2_HOME%\conf;%JAVA_HOME%\lib\tools.jar; FOR %%c in ("%AXIS2_HOME%\lib\*.jar") DO set AXIS2_CLASS_PATH=!AXIS2_CLASS_PATH!;%%c echo Using JAVA_HOME%JAVA_HOME% Modified: axis/axis2/java/core/trunk/modules/tool/script/setenv.sh URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/tool/script/setenv.sh?rev=1055844&r1=1055843&r2=1055844&view=diff == --- axis/axis2/java/core/trunk/modules/tool/script/setenv.sh (original) +++ axis/axis2/java/core/trunk/modules/tool/script/setenv.sh Thu Jan 6 12:14:06 2011 @@ -89,7 +89,7 @@ for f in "$AXIS2_HOME"/lib/*.jar do AXIS2_CLASSPATH="$AXIS2_CLASSPATH":$f done -AXIS2_CLASSPATH="$AXIS2_HOME":"$JAVA_HOME/lib/tools.jar":"$AXIS2_CLASSPATH":"$CLASSPATH" +AXIS2_CLASSPATH="$AXIS2_HOME":"$AXIS2_HOME/conf":"$JAVA_HOME/lib/tools.jar":"$AXIS2_CLASSPATH":"$CLASSPATH" # For Cygwin, switch paths to Windows format before running java if $cygwin; then
svn commit: r1055871 - in /axis/axis2/java/core/trunk/src/site/resources/schemas: module.xsd services.xsd
Author: azeez Date: Thu Jan 6 13:39:17 2011 New Revision: 1055871 URL: http://svn.apache.org/viewvc?rev=1055871&view=rev Log: Appying patch provided by Kathiravelu Pradeeban for AXIS2-4646 Modified: axis/axis2/java/core/trunk/src/site/resources/schemas/module.xsd axis/axis2/java/core/trunk/src/site/resources/schemas/services.xsd Modified: axis/axis2/java/core/trunk/src/site/resources/schemas/module.xsd URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/src/site/resources/schemas/module.xsd?rev=1055871&r1=1055870&r2=1055871&view=diff == --- axis/axis2/java/core/trunk/src/site/resources/schemas/module.xsd (original) +++ axis/axis2/java/core/trunk/src/site/resources/schemas/module.xsd Thu Jan 6 13:39:17 2011 @@ -24,14 +24,14 @@ - + - + @@ -40,14 +40,14 @@ - + - + Modified: axis/axis2/java/core/trunk/src/site/resources/schemas/services.xsd URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/src/site/resources/schemas/services.xsd?rev=1055871&r1=1055870&r2=1055871&view=diff == --- axis/axis2/java/core/trunk/src/site/resources/schemas/services.xsd (original) +++ axis/axis2/java/core/trunk/src/site/resources/schemas/services.xsd Thu Jan 6 13:39:17 2011 @@ -65,7 +65,7 @@ - +
svn commit: r1055894 - /axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/context/MessageContext.java
Author: azeez Date: Thu Jan 6 14:35:12 2011 New Revision: 1055894 URL: http://svn.apache.org/viewvc?rev=1055894&view=rev Log: Applying patch provided by Stefan Vladov AXIS2-4049 & other minor code improvements Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/context/MessageContext.java Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/context/MessageContext.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/context/MessageContext.java?rev=1055894&r1=1055893&r2=1055894&view=diff == --- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/context/MessageContext.java (original) +++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/context/MessageContext.java Thu Jan 6 14:35:12 2011 @@ -1668,32 +1668,38 @@ public class MessageContext extends Abst if (DEBUG_ENABLED) { checkActivateWarning("isEngaged"); } -boolean enegage; +boolean isEngaged; if (configurationContext != null) { AxisConfiguration axisConfig = configurationContext.getAxisConfiguration(); AxisModule module = axisConfig.getModule(moduleName); if (module == null) { return false; } -enegage = axisConfig.isEngaged(module); -if (enegage) { +isEngaged = axisConfig.isEngaged(module); +if (isEngaged) { return true; } if (axisServiceGroup != null) { -enegage = axisServiceGroup.isEngaged(module); -if (enegage) { +isEngaged = axisServiceGroup.isEngaged(module); +if (isEngaged) { return true; } } if (axisService != null) { -enegage = axisService.isEngaged(module); -if (enegage) { +isEngaged = axisService.isEngaged(module); +if (isEngaged) { return true; } } if (axisOperation != null) { -enegage = axisOperation.isEngaged(module); -if (enegage) { +isEngaged = axisOperation.isEngaged(module); +if (isEngaged) { +return true; +} +} +if (axisMessage != null) { +isEngaged = axisMessage.isEngaged(module); +if (isEngaged) { return true; } } @@ -2234,7 +2240,7 @@ public class MessageContext extends Abst * able to find matching objects when the message * context is re-constituted. * - * @param out The stream to write the object contents to + * @param o The stream to write the object contents to * @throws IOException */ public void writeExternal(ObjectOutput o) throws IOException { @@ -2824,7 +2830,7 @@ public class MessageContext extends Abst * as it was written. Some data will need to be validated when * resurrected. * - * @param in The stream to read the object contents from + * @param inObject The stream to read the object contents from * @throws IOException * @throws ClassNotFoundException */
svn commit: r1055937 - in /axis/axis2/java/core/trunk/modules: corba/src/org/apache/axis2/corba/idl/values/EnumValue.java kernel/src/org/apache/axis2/description/OutInAxisOperation.java
Author: azeez Date: Thu Jan 6 16:56:34 2011 New Revision: 1055937 URL: http://svn.apache.org/viewvc?rev=1055937&view=rev Log: Fix for AXIS2-3796 (Applying patch provided by Hans G Knudsen) Fix for AXIS2-3386 (Based on suggestion in the patch by Jihad Abdul-Latif) Modified: axis/axis2/java/core/trunk/modules/corba/src/org/apache/axis2/corba/idl/values/EnumValue.java axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/OutInAxisOperation.java Modified: axis/axis2/java/core/trunk/modules/corba/src/org/apache/axis2/corba/idl/values/EnumValue.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/corba/src/org/apache/axis2/corba/idl/values/EnumValue.java?rev=1055937&r1=1055936&r2=1055937&view=diff == --- axis/axis2/java/core/trunk/modules/corba/src/org/apache/axis2/corba/idl/values/EnumValue.java (original) +++ axis/axis2/java/core/trunk/modules/corba/src/org/apache/axis2/corba/idl/values/EnumValue.java Thu Jan 6 16:56:34 2011 @@ -54,6 +54,12 @@ public class EnumValue extends AbstractV outputStream.write_long(index); } +@Override +public int hashCode() { +return getValueAsString().hashCode(); +} + +@Override public boolean equals(Object o) { if (o instanceof EnumValue) { if (getValueAsString().equals(((EnumValue) o).getValueAsString())) { Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/OutInAxisOperation.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/OutInAxisOperation.java?rev=1055937&r1=1055936&r2=1055937&view=diff == --- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/OutInAxisOperation.java (original) +++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/OutInAxisOperation.java Thu Jan 6 16:56:34 2011 @@ -456,7 +456,11 @@ class OutInAxisOperationClient extends O if (callback != null) { callback.onError(fault); } else if (axisCallback != null) { -axisCallback.onError(fault); +if (options.isExceptionToBeThrownOnSOAPFault()) { +axisCallback.onError(fault); +} else { +axisCallback.onFault(response); +} } } else {
svn commit: r1056197 - /axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/ServiceDeployer.java
Author: azeez Date: Fri Jan 7 06:23:16 2011 New Revision: 1056197 URL: http://svn.apache.org/viewvc?rev=1056197&view=rev Log: Applying patch provided by Sameera Jayasoma for AXIS2-4610 Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/ServiceDeployer.java Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/ServiceDeployer.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/ServiceDeployer.java?rev=1056197&r1=1056196&r2=1056197&view=diff == --- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/ServiceDeployer.java (original) +++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/ServiceDeployer.java Fri Jan 7 06:23:16 2011 @@ -29,6 +29,7 @@ import org.apache.axis2.description.Axis import org.apache.axis2.description.AxisService; import org.apache.axis2.description.AxisServiceGroup; import org.apache.axis2.engine.AxisConfiguration; +import org.apache.axis2.engine.ServiceLifeCycle; import org.apache.axis2.i18n.Messages; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -185,7 +186,15 @@ public class ServiceDeployer extends Abs fileName = serviceHierarchy + fileName; } AxisServiceGroup serviceGroup = axisConfig.removeServiceGroup(fileName); +//Fixed - https://issues.apache.org/jira/browse/AXIS2-4610 if (serviceGroup != null) { +for (Iterator services = serviceGroup.getServices(); services.hasNext();) { +AxisService axisService = (AxisService) services.next(); +ServiceLifeCycle serviceLifeCycle = axisService.getServiceLifeCycle(); +if (serviceLifeCycle != null) { +serviceLifeCycle.shutDown(configCtx, axisService); +} +} configCtx.removeServiceGroupContext(serviceGroup); log.info(Messages.getMessage(DeploymentErrorMsgs.SERVICE_REMOVED, fileName));
svn commit: r1056207 - /axis/axis2/java/core/trunk/modules/kernel/pom.xml
Author: azeez Date: Fri Jan 7 06:48:46 2011 New Revision: 1056207 URL: http://svn.apache.org/viewvc?rev=1056207&view=rev Log: Reinstated the MessageContextChangeTest as per AXIS2-3769. I didn't change the test, but now it seems to be passing on JDK15 & JDK16. Tested with: java version "1.5.0_06" Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_06-b05) Java HotSpot(TM) Server VM (build 1.5.0_06-b05, mixed mode) and java version "1.6.0_13" Java(TM) SE Runtime Environment (build 1.6.0_13-b03) Java HotSpot(TM) 64-Bit Server VM (build 11.3-b02, mixed mode) Modified: axis/axis2/java/core/trunk/modules/kernel/pom.xml Modified: axis/axis2/java/core/trunk/modules/kernel/pom.xml URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/pom.xml?rev=1056207&r1=1056206&r2=1056207&view=diff == --- axis/axis2/java/core/trunk/modules/kernel/pom.xml (original) +++ axis/axis2/java/core/trunk/modules/kernel/pom.xml Fri Jan 7 06:48:46 2011 @@ -152,8 +152,6 @@ **/*Abstract*.java **/UtilsParseRequestTest.java **/URLTemplatingUtilTest.java -**/*MessageContextChangeTest.java -**/MessageContextChangeTest.java **/*Test.java
svn commit: r1056223 - in /axis/axis2/java/core/trunk/modules/kernel: pom.xml test/org/apache/axis2/util/UtilsParseRequestTest.java
Author: azeez Date: Fri Jan 7 09:16:39 2011 New Revision: 1056223 URL: http://svn.apache.org/viewvc?rev=1056223&view=rev Log: Added back one more test which was failing all these days Modified: axis/axis2/java/core/trunk/modules/kernel/pom.xml axis/axis2/java/core/trunk/modules/kernel/test/org/apache/axis2/util/UtilsParseRequestTest.java Modified: axis/axis2/java/core/trunk/modules/kernel/pom.xml URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/pom.xml?rev=1056223&r1=1056222&r2=1056223&view=diff == --- axis/axis2/java/core/trunk/modules/kernel/pom.xml (original) +++ axis/axis2/java/core/trunk/modules/kernel/pom.xml Fri Jan 7 09:16:39 2011 @@ -150,8 +150,8 @@ **/*Abstract*.java -**/UtilsParseRequestTest.java -**/URLTemplatingUtilTest.java + +**/URLTemplatingUtilTest.java **/*Test.java Modified: axis/axis2/java/core/trunk/modules/kernel/test/org/apache/axis2/util/UtilsParseRequestTest.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/test/org/apache/axis2/util/UtilsParseRequestTest.java?rev=1056223&r1=1056222&r2=1056223&view=diff == --- axis/axis2/java/core/trunk/modules/kernel/test/org/apache/axis2/util/UtilsParseRequestTest.java (original) +++ axis/axis2/java/core/trunk/modules/kernel/test/org/apache/axis2/util/UtilsParseRequestTest.java Fri Jan 7 09:16:39 2011 @@ -35,38 +35,38 @@ public class UtilsParseRequestTest exten //fail("here"); } -//public void testService() throws Exception { -//assertParsesTo("http://localhost:8081/services/System";, -// "System"); -//} +public void testService() throws Exception { +assertParsesTo("http://localhost:8081/axis2/services/System";, + "System"); +} public void testServiceCalledServices() throws Exception { -assertParsesTo("http://localhost:8081/services/services";, +assertParsesTo("http://localhost:8081/axis2/services/services";, "services"); } public void testServiceWithQuery() throws Exception { -assertParsesTo("http://localhost:8081/services/System?system=ecb2f";, + assertParsesTo("http://localhost:8081/axis2/services/System?system=ecb2f";, "System"); } public void testServiceWithDoubleQuery() throws Exception { - assertParsesTo("http://localhost:8081/services/System?system=ecb2f?job=3";, + assertParsesTo("http://localhost:8081/axis2/services/System?system=ecb2f?job=3";, "System"); } public void testOperation() throws Exception { -assertParsesTo("http://localhost:8081/services/System/operation";, +assertParsesTo("http://localhost:8081/axis2/services/System/operation";, "System", "operation"); } public void testOperationWithQuery() throws Exception { - assertParsesTo("http://localhost:8081/services/System/operation?system=ecb2f";, + assertParsesTo("http://localhost:8081/axis2/services/System/operation?system=ecb2f";, "System", "operation"); } public void testOperationServiceCalledServices() throws Exception { -assertParsesTo("http://localhost:8081/services/services/operation";, + assertParsesTo("http://localhost:8081/axis2/services/services/operation";, "services", "operation"); }
svn commit: r1056228 - /axis/axis2/java/core/trunk/modules/kernel/pom.xml
Author: azeez Date: Fri Jan 7 09:32:46 2011 New Revision: 1056228 URL: http://svn.apache.org/viewvc?rev=1056228&view=rev Log: Adding back tests which were failing Modified: axis/axis2/java/core/trunk/modules/kernel/pom.xml Modified: axis/axis2/java/core/trunk/modules/kernel/pom.xml URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/pom.xml?rev=1056228&r1=1056227&r2=1056228&view=diff == --- axis/axis2/java/core/trunk/modules/kernel/pom.xml (original) +++ axis/axis2/java/core/trunk/modules/kernel/pom.xml Fri Jan 7 09:32:46 2011 @@ -150,8 +150,6 @@ **/*Abstract*.java - -**/URLTemplatingUtilTest.java **/*Test.java
svn commit: r1057147 - in /axis/axis2/java/core/trunk/modules: kernel/conf/axis2.xml transport/http/src/org/apache/axis2/transport/http/HTTPWorker.java transport/http/src/org/apache/axis2/transport/ht
Author: azeez Date: Mon Jan 10 10:57:21 2011 New Revision: 1057147 URL: http://svn.apache.org/viewvc?rev=1057147&view=rev Log: Implemented feature suggested in AXIS2-3316 - Control whether a WSDL is returned when ?wsdl comes in - both at service level and global level Modified: axis/axis2/java/core/trunk/modules/kernel/conf/axis2.xml axis/axis2/java/core/trunk/modules/transport/http/src/org/apache/axis2/transport/http/HTTPWorker.java axis/axis2/java/core/trunk/modules/transport/http/src/org/apache/axis2/transport/http/ListingAgent.java axis/axis2/java/core/trunk/modules/webapp/conf/axis2.xml Modified: axis/axis2/java/core/trunk/modules/kernel/conf/axis2.xml URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/conf/axis2.xml?rev=1057147&r1=1057146&r2=1057147&view=diff == --- axis/axis2/java/core/trunk/modules/kernel/conf/axis2.xml (original) +++ axis/axis2/java/core/trunk/modules/kernel/conf/axis2.xml Mon Jan 10 10:57:21 2011 @@ -26,14 +26,25 @@ false false - -false - +false + + +true + + Modified: axis/axis2/java/core/trunk/modules/transport/http/src/org/apache/axis2/transport/http/HTTPWorker.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/transport/http/src/org/apache/axis2/transport/http/HTTPWorker.java?rev=1057147&r1=1057146&r2=1057147&view=diff == --- axis/axis2/java/core/trunk/modules/transport/http/src/org/apache/axis2/transport/http/HTTPWorker.java (original) +++ axis/axis2/java/core/trunk/modules/transport/http/src/org/apache/axis2/transport/http/HTTPWorker.java Mon Jan 10 10:57:21 2011 @@ -24,6 +24,7 @@ import org.apache.axis2.context.Configur import org.apache.axis2.context.MessageContext; import org.apache.axis2.deployment.DeploymentConstants; import org.apache.axis2.description.AxisService; +import org.apache.axis2.description.Parameter; import org.apache.axis2.engine.Handler.InvocationResponse; import org.apache.axis2.transport.RequestResponseTransport; import org.apache.axis2.transport.TransportUtils; @@ -32,6 +33,7 @@ import org.apache.axis2.transport.http.s import org.apache.axis2.transport.http.server.HttpUtils; import org.apache.axis2.transport.http.server.Worker; import org.apache.axis2.transport.http.util.RESTUtil; +import org.apache.axis2.util.JavaUtils; import org.apache.http.Header; import org.apache.http.HttpException; import org.apache.http.HttpStatus; @@ -118,9 +120,14 @@ public class HTTPWorker implements Worke HashMap services = configurationContext.getAxisConfiguration().getServices(); AxisService service = (AxisService) services.get(serviceName); if (service != null) { -response.setStatus(HttpStatus.SC_OK); -response.setContentType("text/xml"); -service.printWSDL2(response.getOutputStream(), getHost(request)); +boolean canExposeServiceMetadata = canExposeServiceMetadata(service); +if (canExposeServiceMetadata) { +response.setStatus(HttpStatus.SC_OK); +response.setContentType("text/xml"); +service.printWSDL2(response.getOutputStream(), getHost(request)); +} else { +response.setStatus(HttpStatus.SC_FORBIDDEN); +} return; } } @@ -135,9 +142,14 @@ public class HTTPWorker implements Worke HashMap services = configurationContext.getAxisConfiguration().getServices(); AxisService service = (AxisService) services.get(serviceName); if (service != null) { -response.setStatus(HttpStatus.SC_OK); -response.setContentType("text/xml"); -service.printWSDL(response.getOutputStream(), getHost(request)); +boolean canExposeServiceMetadata = canExposeServiceMetadata(service); +if (canExposeServiceMetadata) { +response.setStatus(HttpStatus.SC_OK); +response.setContentType("text/xml"); +service.printWSDL(response.getOutputStream(), getHost(request)); +} else { +response.setStatus(HttpStatus.SC_FORBIDDEN); +} return; } } @@ -146,9 +158,14 @@ public class HTTPWorker implements Worke HashMap services = configurationContext.getAxisConfiguration().getServices(); AxisService service = (AxisService) services.get(serviceName);
svn commit: r1057261 - in /axis/axis2/java/core/trunk/modules: soapmonitor/servlet/src/main/java/org/apache/axis2/soapmonitor/servlet/ webapp/conf/
Author: azeez Date: Mon Jan 10 16:28:28 2011 New Revision: 1057261 URL: http://svn.apache.org/viewvc?rev=1057261&view=rev Log: Fix for AXIS2-4500. Suggested by Bhushan Khardekar. Also did some code alignment since the 1 tab = 4 spaces rule was violated Modified: axis/axis2/java/core/trunk/modules/soapmonitor/servlet/src/main/java/org/apache/axis2/soapmonitor/servlet/SOAPMonitorConstants.java axis/axis2/java/core/trunk/modules/soapmonitor/servlet/src/main/java/org/apache/axis2/soapmonitor/servlet/SOAPMonitorService.java axis/axis2/java/core/trunk/modules/webapp/conf/web.xml Modified: axis/axis2/java/core/trunk/modules/soapmonitor/servlet/src/main/java/org/apache/axis2/soapmonitor/servlet/SOAPMonitorConstants.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/soapmonitor/servlet/src/main/java/org/apache/axis2/soapmonitor/servlet/SOAPMonitorConstants.java?rev=1057261&r1=1057260&r2=1057261&view=diff == --- axis/axis2/java/core/trunk/modules/soapmonitor/servlet/src/main/java/org/apache/axis2/soapmonitor/servlet/SOAPMonitorConstants.java (original) +++ axis/axis2/java/core/trunk/modules/soapmonitor/servlet/src/main/java/org/apache/axis2/soapmonitor/servlet/SOAPMonitorConstants.java Mon Jan 10 16:28:28 2011 @@ -25,19 +25,24 @@ package org.apache.axis2.soapmonitor.ser public class SOAPMonitorConstants { - /** - * SOAP message types - */ - public static final int SOAP_MONITOR_REQUEST = 0; - public static final int SOAP_MONITOR_RESPONSE = 1; +/** + * SOAP message types + */ +public static final int SOAP_MONITOR_REQUEST = 0; +public static final int SOAP_MONITOR_RESPONSE = 1; - /** - * Servlet initialization parameter names - */ - public static final String SOAP_MONITOR_PORT = "SOAPMonitorPort"; +/** + * Port Servlet initialization parameter + */ +public static final String SOAP_MONITOR_PORT = "SOAPMonitorPort"; - /** - * Unique SOAP monitor id tag - */ - public static final String SOAP_MONITOR_ID = "SOAPMonitorId"; +/** + * Host name Servlet initialization parameter + */ +public static final String SOAP_MONITOR_HOST_NAME = "SOAPMonitorHostName"; + +/** + * Unique SOAP monitor id tag + */ +public static final String SOAP_MONITOR_ID = "SOAPMonitorId"; } Modified: axis/axis2/java/core/trunk/modules/soapmonitor/servlet/src/main/java/org/apache/axis2/soapmonitor/servlet/SOAPMonitorService.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/soapmonitor/servlet/src/main/java/org/apache/axis2/soapmonitor/servlet/SOAPMonitorService.java?rev=1057261&r1=1057260&r2=1057261&view=diff == --- axis/axis2/java/core/trunk/modules/soapmonitor/servlet/src/main/java/org/apache/axis2/soapmonitor/servlet/SOAPMonitorService.java (original) +++ axis/axis2/java/core/trunk/modules/soapmonitor/servlet/src/main/java/org/apache/axis2/soapmonitor/servlet/SOAPMonitorService.java Mon Jan 10 16:28:28 2011 @@ -30,276 +30,291 @@ import javax.servlet.http.HttpServletRes import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; +import java.net.InetAddress; import java.net.ServerSocket; import java.net.Socket; import java.util.Enumeration; import java.util.Vector; /** - * This is a SOAP Monitor Service class. - * - * During the HTTP server startup, the servlet init method - * is invoked. This allows the code to open a server - * socket that will be used to communicate with running + * This is a SOAP Monitor Service class. + * + * During the HTTP server startup, the servlet init method + * is invoked. This allows the code to open a server + * socket that will be used to communicate with running * applets. - * - * When an HTTP GET request is received, the servlet - * dynamically produces an HTML document to load the SOAP + * + * When an HTTP GET request is received, the servlet + * dynamically produces an HTML document to load the SOAP * monitor applet and supply the port number being used by - * the server socket (so the applet will know how to + * the server socket (so the applet will know how to * connect back to the server). - * - * Each time a socket connection is established, a new - * thread is created to handle communications from the + * + * Each time a socket connection is established, a new + * thread is created to handle communications from the * applet. - * + * * The publishMethod routine is invoked by the SOAP monitor - * handler when a SOAP message request or response is - * detected. The information about the SOAP message is - * then forwared to all current socket connections for + * handler when a SOAP message request or response is + * detected. The
svn commit: r1079330 - /axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/clustering/state/Replicator.java
Author: azeez Date: Tue Mar 8 11:43:17 2011 New Revision: 1079330 URL: http://svn.apache.org/viewvc?rev=1079330&view=rev Log: ConcurrentModificationExceptions can occur if the same AbstractContext instance is tried to be replicated while it is currently being serialized to the stream Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/clustering/state/Replicator.java Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/clustering/state/Replicator.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/clustering/state/Replicator.java?rev=1079330&r1=1079329&r2=1079330&view=diff == --- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/clustering/state/Replicator.java (original) +++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/clustering/state/Replicator.java Tue Mar 8 11:43:17 2011 @@ -95,7 +95,9 @@ public final class Replicator { log.debug("Going to replicate state in " + abstractContext + "..."); StateManager stateManager = getContextManager(abstractContext); if (!abstractContext.getPropertyDifferences().isEmpty()) { -stateManager.updateContext(abstractContext); +synchronized (abstractContext) { +stateManager.updateContext(abstractContext); +} } }
svn commit: r1079695 - in /axis/axis2/java/core/trunk/modules: clustering/pom.xml clustering/src/org/apache/axis2/clustering/tribes/WkaMembershipService.java parent/pom.xml
Author: azeez Date: Wed Mar 9 08:26:31 2011 New Revision: 1079695 URL: http://svn.apache.org/viewvc?rev=1079695&view=rev Log: Upgraded to Tribes 7.0.8 Modified: axis/axis2/java/core/trunk/modules/clustering/pom.xml axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/WkaMembershipService.java axis/axis2/java/core/trunk/modules/parent/pom.xml Modified: axis/axis2/java/core/trunk/modules/clustering/pom.xml URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/clustering/pom.xml?rev=1079695&r1=1079694&r2=1079695&view=diff == --- axis/axis2/java/core/trunk/modules/clustering/pom.xml (original) +++ axis/axis2/java/core/trunk/modules/clustering/pom.xml Wed Mar 9 08:26:31 2011 @@ -56,11 +56,11 @@ org.apache.tomcat -tribes +tomcat-tribes -org.apache.tomcat -juli +org.apache.tomcat.embed +tomcat-embed-logging-juli Modified: axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/WkaMembershipService.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/WkaMembershipService.java?rev=1079695&r1=1079694&r2=1079695&view=diff == --- axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/WkaMembershipService.java (original) +++ axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/WkaMembershipService.java Wed Mar 9 08:26:31 2011 @@ -15,6 +15,8 @@ */ package org.apache.axis2.clustering.tribes; +import org.apache.catalina.tribes.ChannelException; +import org.apache.catalina.tribes.ChannelMessage; import org.apache.catalina.tribes.Member; import org.apache.catalina.tribes.MembershipListener; import org.apache.catalina.tribes.MembershipService; @@ -113,6 +115,10 @@ public class WkaMembershipService implem return null; } +public void setLocalMemberProperties(String s, int i, int i1, int i2) { +//Nothing to implement at the momenet +} + public void setLocalMemberProperties(String listenHost, int listenPort) { properties.setProperty("tcpListenHost", listenHost); properties.setProperty("tcpListenPort", String.valueOf(listenPort)); @@ -151,4 +157,8 @@ public class WkaMembershipService implem this.domain = domain; ((StaticMember) membershipManager.getLocalMember()).setDomain(domain); } + +public void broadcast(ChannelMessage channelMessage) throws ChannelException { +//Nothing to implement at the momenet +} } Modified: axis/axis2/java/core/trunk/modules/parent/pom.xml URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/parent/pom.xml?rev=1079695&r1=1079694&r2=1079695&view=diff == --- axis/axis2/java/core/trunk/modules/parent/pom.xml (original) +++ axis/axis2/java/core/trunk/modules/parent/pom.xml Wed Mar 9 08:26:31 2011 @@ -112,7 +112,7 @@ wstx-asl org.codehaus.woodstox 3.2.9 -6.0.16 +7.0.8 1.6.2 2.7.0 2.3.0 @@ -472,12 +472,12 @@ org.apache.tomcat -tribes +tomcat-tribes ${tomcat.version} -org.apache.tomcat -juli +org.apache.tomcat.embed +tomcat-embed-logging-juli ${tomcat.version}
svn commit: r1080171 - in /axis/axis2/java/core/trunk/modules: clustering/src/org/apache/axis2/clustering/state/ kernel/src/org/apache/axis2/clustering/state/
Author: azeez Date: Thu Mar 10 10:15:21 2011 New Revision: 1080171 URL: http://svn.apache.org/viewvc?rev=1080171&view=rev Log: Added custom state replication functionality Modified: axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/state/DefaultStateManager.java axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/clustering/state/Replicator.java axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/clustering/state/StateManager.java Modified: axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/state/DefaultStateManager.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/state/DefaultStateManager.java?rev=1080171&r1=1080170&r2=1080171&view=diff == --- axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/state/DefaultStateManager.java (original) +++ axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/state/DefaultStateManager.java Thu Mar 10 10:15:21 2011 @@ -80,6 +80,10 @@ public class DefaultStateManager impleme sender.sendToGroup(cmd); } +public void replicateState(StateClusteringCommand command) throws ClusteringFault { +sender.sendToGroup(command); +} + public void removeContext(AbstractContext context) throws ClusteringFault { StateClusteringCommand cmd = StateClusteringCommandFactory.getRemoveCommand(context); sender.sendToGroup(cmd); Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/clustering/state/Replicator.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/clustering/state/Replicator.java?rev=1080171&r1=1080170&r2=1080171&view=diff == --- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/clustering/state/Replicator.java (original) +++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/clustering/state/Replicator.java Thu Mar 10 10:15:21 2011 @@ -26,6 +26,7 @@ import org.apache.axis2.context.Configur import org.apache.axis2.context.MessageContext; import org.apache.axis2.context.ServiceContext; import org.apache.axis2.context.ServiceGroupContext; +import org.apache.axis2.engine.AxisConfiguration; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -35,10 +36,25 @@ import java.util.List; /** * Replicates serializable properties */ +@SuppressWarnings("unused") public final class Replicator { private static final Log log = LogFactory.getLog(Replicator.class); + +/** + * Replicate state using a custom StateClusteringCommand + * + * @param command The StateClusteringCommand which is used for replicating state + * @param axisConfig The AxisConfiguration + * @throws ClusteringFault If replication fails + */ +public static void replicateState(StateClusteringCommand command, + AxisConfiguration axisConfig) throws ClusteringFault { + +getStateManager(axisConfig).replicateState(command); +} + /** * Replicates all serializable properties in the ConfigurationContext, ServiceGroupContext & * ServiceContext @@ -54,8 +70,8 @@ public final class Replicator { log.debug("Going to replicate state stored in ConfigurationContext," + " ServiceGroupContext, ServiceContext associated with " + msgContext + "..."); ConfigurationContext configurationContext = msgContext.getConfigurationContext(); -StateManager stateManager = getContextManager(msgContext); -List contexts = new ArrayList(); +StateManager stateManager = getStateManager(msgContext); +List contexts = new ArrayList(); // Do we need to replicate state stored in ConfigurationContext? if (!configurationContext.getPropertyDifferences().isEmpty()) { @@ -76,8 +92,7 @@ public final class Replicator { // Do the actual replication here if (!contexts.isEmpty()) { -AbstractContext[] contextArray = -(AbstractContext[]) contexts.toArray(new AbstractContext[contexts.size()]); +AbstractContext[] contextArray = contexts.toArray(new AbstractContext[contexts.size()]); stateManager.updateContexts(contextArray); } } @@ -93,9 +108,9 @@ public final class Replicator { return; } log.debug("Going to replicate state in " + abstractContext + "..."); -StateManager stateManager = getContextManager(abstractContext); +StateManager stateManager = getStateManager(abstractContext); if (!abst
svn commit: r1080531 - in /axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes: ChannelSender.java TribesClusteringAgent.java
Author: azeez Date: Fri Mar 11 11:38:01 2011 New Revision: 1080531 URL: http://svn.apache.org/viewvc?rev=1080531&view=rev Log: 1. Enabled channel heartbeat 2. Synchronizing channel send since otherwise it causes failures at Tribes level Modified: axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/ChannelSender.java axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesClusteringAgent.java Modified: axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/ChannelSender.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/ChannelSender.java?rev=1080531&r1=1080530&r2=1080531&view=diff == --- axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/ChannelSender.java (original) +++ axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/ChannelSender.java Fri Mar 11 11:38:01 2011 @@ -49,7 +49,7 @@ public class ChannelSender implements Me this.synchronizeAllMembers = synchronizeAllMembers; } -public void sendToGroup(ClusteringCommand msg, +public synchronized void sendToGroup(ClusteringCommand msg, MembershipManager membershipManager, int additionalOptions) throws ClusteringFault { if (channel == null) { Modified: axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesClusteringAgent.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesClusteringAgent.java?rev=1080531&r1=1080530&r2=1080531&view=diff == --- axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesClusteringAgent.java (original) +++ axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesClusteringAgent.java Fri Mar 11 11:38:01 2011 @@ -152,6 +152,7 @@ public class TribesClusteringAgent imple primaryMembershipManager = new MembershipManager(configurationContext); channel = new GroupChannel(); +channel.setHeartbeat(true); channelSender = new ChannelSender(channel, primaryMembershipManager, synchronizeAllMembers()); axis2ChannelListener = new Axis2ChannelListener(configurationContext, configurationManager, contextManager);
svn commit: r1081083 - in /axis/axis2/java/core/trunk/modules: clustering/pom.xml parent/pom.xml
Author: azeez Date: Sun Mar 13 11:51:18 2011 New Revision: 1081083 URL: http://svn.apache.org/viewvc?rev=1081083&view=rev Log: Downgrading to Tribes 6.0.16 because Axis2 is still stuck with JDK 15 Modified: axis/axis2/java/core/trunk/modules/clustering/pom.xml axis/axis2/java/core/trunk/modules/parent/pom.xml Modified: axis/axis2/java/core/trunk/modules/clustering/pom.xml URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/clustering/pom.xml?rev=1081083&r1=1081082&r2=1081083&view=diff == --- axis/axis2/java/core/trunk/modules/clustering/pom.xml (original) +++ axis/axis2/java/core/trunk/modules/clustering/pom.xml Sun Mar 13 11:51:18 2011 @@ -56,11 +56,11 @@ org.apache.tomcat -tomcat-tribes +tribes -org.apache.tomcat.embed -tomcat-embed-logging-juli +org.apache.tomcat +juli Modified: axis/axis2/java/core/trunk/modules/parent/pom.xml URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/parent/pom.xml?rev=1081083&r1=1081082&r2=1081083&view=diff == --- axis/axis2/java/core/trunk/modules/parent/pom.xml (original) +++ axis/axis2/java/core/trunk/modules/parent/pom.xml Sun Mar 13 11:51:18 2011 @@ -112,7 +112,7 @@ wstx-asl org.codehaus.woodstox 3.2.9 -7.0.8 +6.0.16 1.6.2 2.7.0 2.3.0 @@ -472,12 +472,12 @@ org.apache.tomcat -tomcat-tribes +tribes ${tomcat.version} -org.apache.tomcat.embed -tomcat-embed-logging-juli +org.apache.tomcat +juli ${tomcat.version}
svn commit: r1081220 - /axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/clustering/state/Replicator.java
Author: azeez Date: Sun Mar 13 21:19:30 2011 New Revision: 1081220 URL: http://svn.apache.org/viewvc?rev=1081220&view=rev Log: Replicating state only if the StateManager is available Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/clustering/state/Replicator.java Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/clustering/state/Replicator.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/clustering/state/Replicator.java?rev=1081220&r1=1081219&r2=1081220&view=diff == --- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/clustering/state/Replicator.java (original) +++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/clustering/state/Replicator.java Sun Mar 13 21:19:30 2011 @@ -52,7 +52,10 @@ public final class Replicator { public static void replicateState(StateClusteringCommand command, AxisConfiguration axisConfig) throws ClusteringFault { -getStateManager(axisConfig).replicateState(command); +StateManager stateManager = getStateManager(axisConfig); +if (stateManager != null) { +stateManager.replicateState(command); +} } /** @@ -71,6 +74,9 @@ public final class Replicator { " ServiceGroupContext, ServiceContext associated with " + msgContext + "..."); ConfigurationContext configurationContext = msgContext.getConfigurationContext(); StateManager stateManager = getStateManager(msgContext); +if (stateManager == null) { +return; +} List contexts = new ArrayList(); // Do we need to replicate state stored in ConfigurationContext? @@ -109,7 +115,7 @@ public final class Replicator { } log.debug("Going to replicate state in " + abstractContext + "..."); StateManager stateManager = getStateManager(abstractContext); -if (!abstractContext.getPropertyDifferences().isEmpty()) { +if (stateManager != null && !abstractContext.getPropertyDifferences().isEmpty()) { synchronized (abstractContext) { // This IDEA/FindBugs warning can be ignored stateManager.updateContext(abstractContext); } @@ -131,7 +137,9 @@ public final class Replicator { } log.debug("Going to replicate selected properties in " + abstractContext + "..."); StateManager stateManager = getStateManager(abstractContext); -stateManager.updateContext(abstractContext, propertyNames); +if (stateManager != null) { +stateManager.updateContext(abstractContext, propertyNames); +} } private static ClusteringAgent getClusterManager(AbstractContext abstractContext) { @@ -143,7 +151,11 @@ public final class Replicator { } private static StateManager getStateManager(AxisConfiguration axisConfiguration) { -return axisConfiguration.getClusteringAgent().getStateManager(); +ClusteringAgent clusteringAgent = axisConfiguration.getClusteringAgent(); +if (clusteringAgent != null) { +return clusteringAgent.getStateManager(); +} +return null; } /**
svn commit: r1081225 - in /axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/state: DefaultStateManager.java commands/StateClusteringCommandCollection.java
Author: azeez Date: Sun Mar 13 21:41:45 2011 New Revision: 1081225 URL: http://svn.apache.org/viewvc?rev=1081225&view=rev Log: Do not replicate empty StateClusteringCommandCollections Modified: axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/state/DefaultStateManager.java axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/state/commands/StateClusteringCommandCollection.java Modified: axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/state/DefaultStateManager.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/state/DefaultStateManager.java?rev=1081225&r1=1081224&r2=1081225&view=diff == --- axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/state/DefaultStateManager.java (original) +++ axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/state/DefaultStateManager.java Sun Mar 13 21:41:45 2011 @@ -76,8 +76,10 @@ public class DefaultStateManager impleme public void updateContexts(AbstractContext[] contexts) throws ClusteringFault { StateClusteringCommandCollection cmd = StateClusteringCommandFactory.getCommandCollection(contexts, - excludedReplicationPatterns); -sender.sendToGroup(cmd); + excludedReplicationPatterns); +if (!cmd.isEmpty()) { +sender.sendToGroup(cmd); +} } public void replicateState(StateClusteringCommand command) throws ClusteringFault { Modified: axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/state/commands/StateClusteringCommandCollection.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/state/commands/StateClusteringCommandCollection.java?rev=1081225&r1=1081224&r2=1081225&view=diff == --- axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/state/commands/StateClusteringCommandCollection.java (original) +++ axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/state/commands/StateClusteringCommandCollection.java Sun Mar 13 21:41:45 2011 @@ -24,27 +24,29 @@ import org.apache.axis2.clustering.state import org.apache.axis2.context.ConfigurationContext; import java.util.ArrayList; +import java.util.List; /** - * + * A StateClusteringCommand consisting of a collection of other StateClusteringCommands */ public class StateClusteringCommandCollection extends StateClusteringCommand { -private final ArrayList commands; +private final List commands; -public StateClusteringCommandCollection(ArrayList commands) { +public StateClusteringCommandCollection(List commands) { this.commands = commands; } public void execute(ConfigurationContext configContext) throws ClusteringFault { -for (int i = 0; i < commands.size(); i++) { -StateClusteringCommand cmd = (StateClusteringCommand) commands.get(i); -if (cmd != null) { -cmd.execute(configContext); -} +for (StateClusteringCommand command : commands) { +command.execute(configContext); } } +public boolean isEmpty(){ +return commands != null && commands.isEmpty(); +} + public String toString() { return "StateClusteringCommandCollection"; }
svn commit: r1085796 - in /axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2: context/MessageContext.java util/MessageContextBuilder.java
Author: azeez Date: Sat Mar 26 20:20:49 2011 New Revision: 1085796 URL: http://svn.apache.org/viewvc?rev=1085796&view=rev Log: Added in MessageContext as a property in the out/fault MessageContexts. This is needed in cases where an OperationContext is not created, for example, since the request never gets dispatched to the service operation, either due to a security failure or a request coming non-existing endpoint. A use case for this is a SOAP Tracer module which shows messages coming and and responses going out. If a WS-Security validation fails or if the request never gets dispatched to a service, and OperationContext will never get created, hence in the OutFlow, it will not be possible to access the in flow MessageContext. With this change, such thigns will be possible. Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/context/MessageContext.java axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/util/MessageContextBuilder.java Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/context/MessageContext.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/context/MessageContext.java?rev=1085796&r1=1085795&r2=1085796&view=diff == --- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/context/MessageContext.java (original) +++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/context/MessageContext.java Sat Mar 26 20:20:49 2011 @@ -180,6 +180,14 @@ public class MessageContext extends Abst public static final String TRANSPORT_ADDR = "TRANSPORT_ADDR"; public static final String TRANSPORT_HEADERS = "TRANSPORT_HEADERS"; +/** + * Constant used as the key for the property which stores the In MessageContext in the + * Out MessageContext/FaultMessageContext. This is needed in cases where an OperationContext + * is not created, for example, since the request never gets dispatched to the service + * operation, either due to a security failure or a request coming in for a non-existing + * endpoint + */ +public static final String IN_MESSAGE_CONTEXT = "axis2.inMsgContext"; /** * message attachments Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/util/MessageContextBuilder.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/util/MessageContextBuilder.java?rev=1085796&r1=1085795&r2=1085796&view=diff == --- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/util/MessageContextBuilder.java (original) +++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/util/MessageContextBuilder.java Sat Mar 26 20:20:49 2011 @@ -81,6 +81,7 @@ public class MessageContextBuilder { newmsgCtx.setTransportIn(inMessageContext.getTransportIn()); newmsgCtx.setTransportOut(inMessageContext.getTransportOut()); newmsgCtx.setServerSide(inMessageContext.isServerSide()); +newmsgCtx.setProperty(MessageContext.IN_MESSAGE_CONTEXT, inMessageContext); // TODO: Should this be specifying (or defaulting to) the "response" relationshipType?? newmsgCtx.addRelatesTo(new RelatesTo(inMessageContext.getOptions().getMessageId()));
svn commit: r1086002 - /axis/axis2/java/core/trunk/modules/integration/test/org/apache/axis2/engine/MessageContextChangeTest.java
Author: azeez Date: Sun Mar 27 18:33:15 2011 New Revision: 1086002 URL: http://svn.apache.org/viewvc?rev=1086002&view=rev Log: ng a test failure caused by my addition of IN_MESSAGE_CONTEXT constant to MessageContext. Thanks Andreas for pointing this out. Modified: axis/axis2/java/core/trunk/modules/integration/test/org/apache/axis2/engine/MessageContextChangeTest.java Modified: axis/axis2/java/core/trunk/modules/integration/test/org/apache/axis2/engine/MessageContextChangeTest.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/integration/test/org/apache/axis2/engine/MessageContextChangeTest.java?rev=1086002&r1=1086001&r2=1086002&view=diff == --- axis/axis2/java/core/trunk/modules/integration/test/org/apache/axis2/engine/MessageContextChangeTest.java (original) +++ axis/axis2/java/core/trunk/modules/integration/test/org/apache/axis2/engine/MessageContextChangeTest.java Sun Mar 27 18:33:15 2011 @@ -43,6 +43,7 @@ public class MessageContextChangeTest ex new FieldDescription("java.lang.String", "REMOTE_ADDR"), new FieldDescription("java.lang.String", "TRANSPORT_ADDR"), new FieldDescription("java.lang.String", "TRANSPORT_HEADERS"), +new FieldDescription("java.lang.String", "IN_MESSAGE_CONTEXT"), new FieldDescription("org.apache.axiom.attachments.Attachments", "attachments"), new FieldDescription("java.lang.String", "TRANSPORT_OUT"), new FieldDescription("java.lang.String", "TRANSPORT_IN"),
svn commit: r1086003 - in /axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2: context/MessageContext.java util/MessageContextBuilder.java
Author: azeez Date: Sun Mar 27 18:43:22 2011 New Revision: 1086003 URL: http://svn.apache.org/viewvc?rev=1086003&view=rev Log: Just noticed that Andreas reverted my previous commit due to a test failure. Reverting again. Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/context/MessageContext.java axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/util/MessageContextBuilder.java Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/context/MessageContext.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/context/MessageContext.java?rev=1086003&r1=1086002&r2=1086003&view=diff == --- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/context/MessageContext.java (original) +++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/context/MessageContext.java Sun Mar 27 18:43:22 2011 @@ -180,6 +180,14 @@ public class MessageContext extends Abst public static final String TRANSPORT_ADDR = "TRANSPORT_ADDR"; public static final String TRANSPORT_HEADERS = "TRANSPORT_HEADERS"; +/** + * Constant used as the key for the property which stores the In MessageContext in the + * Out MessageContext/FaultMessageContext. This is needed in cases where an OperationContext + * is not created, for example, since the request never gets dispatched to the service + * operation, either due to a security failure or a request coming in for a non-existing + * endpoint + */ +public static final String IN_MESSAGE_CONTEXT = "axis2.inMsgContext"; /** * message attachments Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/util/MessageContextBuilder.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/util/MessageContextBuilder.java?rev=1086003&r1=1086002&r2=1086003&view=diff == --- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/util/MessageContextBuilder.java (original) +++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/util/MessageContextBuilder.java Sun Mar 27 18:43:22 2011 @@ -81,6 +81,7 @@ public class MessageContextBuilder { newmsgCtx.setTransportIn(inMessageContext.getTransportIn()); newmsgCtx.setTransportOut(inMessageContext.getTransportOut()); newmsgCtx.setServerSide(inMessageContext.isServerSide()); +newmsgCtx.setProperty(MessageContext.IN_MESSAGE_CONTEXT, inMessageContext); // TODO: Should this be specifying (or defaulting to) the "response" relationshipType?? newmsgCtx.addRelatesTo(new RelatesTo(inMessageContext.getOptions().getMessageId()));
svn commit: r1140231 - in /axis/axis2/java/core/trunk/modules: clustering/src/org/apache/axis2/clustering/management/DefaultGroupManagementAgent.java kernel/src/org/apache/axis2/clustering/Member.java
Author: azeez Date: Mon Jun 27 16:45:53 2011 New Revision: 1140231 URL: http://svn.apache.org/viewvc?rev=1140231&view=rev Log: 1. Ability to suspend a member - this is used in cases such as the Synapse LB where members causing errors should be temporarilly suspended 2. After a member joins, need to wait for sometime (10s in this impl), until we can start sending messages to it Modified: axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/management/DefaultGroupManagementAgent.java axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/clustering/Member.java Modified: axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/management/DefaultGroupManagementAgent.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/management/DefaultGroupManagementAgent.java?rev=1140231&r1=1140230&r2=1140231&view=diff == --- axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/management/DefaultGroupManagementAgent.java (original) +++ axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/management/DefaultGroupManagementAgent.java Mon Jun 27 16:45:53 2011 @@ -96,11 +96,11 @@ public class DefaultGroupManagementAgent return; } if (canConnect(member)) { -//try -//Thread.sleep(1); // Sleep for sometime to allow complete initialization of the node -//} catch (InterruptedException e) { -//e.printStackTrace(); -//} +try { +Thread.sleep(1); // Sleep for sometime to allow complete initialization of the node +} catch (InterruptedException e) { +e.printStackTrace(); +} if (!members.contains(member)) { members.add(member); } Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/clustering/Member.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/clustering/Member.java?rev=1140231&r1=1140230&r2=1140231&view=diff == --- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/clustering/Member.java (original) +++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/clustering/Member.java Mon Jun 27 16:45:53 2011 @@ -57,11 +57,46 @@ public class Member { */ private Properties properties = new Properties(); +/** + * Time at which this member was suspended + */ +private long suspendedTime = -1; + +/** + * Time in millis which this member should be suspended + */ +private long suspensionDuration = -1; + public Member(String hostName, int port) { this.hostName = hostName; this.port = port; } +/** + * Temporarilly suspend this member + * @param suspensionDurationMillis The time duration in millis in which this member should be suspended + */ +public void suspend(long suspensionDurationMillis){ +this.suspendedTime = System.currentTimeMillis(); +this.suspensionDuration = suspensionDurationMillis; +} + +/** + * Check whether this member is suspended + * @return true if this member is still suspended, false oterwise + */ +public boolean isSuspended() { +if (suspendedTime == -1) { +return false; +} +if (System.currentTimeMillis() - suspendedTime >= suspensionDuration) { +this.suspendedTime = -1; +this.suspensionDuration = -1; +return false; +} +return true; +} + public String getHostName() { return hostName; }
svn commit: r1180793 - /axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesClusteringAgent.java
Author: azeez Date: Mon Oct 10 06:47:23 2011 New Revision: 1180793 URL: http://svn.apache.org/viewvc?rev=1180793&view=rev Log: Applying patch provided by Hiranya for AXIS2-5165 Modified: axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesClusteringAgent.java Modified: axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesClusteringAgent.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesClusteringAgent.java?rev=1180793&r1=1180792&r2=1180793&view=diff == --- axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesClusteringAgent.java (original) +++ axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesClusteringAgent.java Mon Oct 10 06:47:23 2011 @@ -264,11 +264,14 @@ public class TribesClusteringAgent imple OMElement propEle = (OMElement) iter.next(); OMAttribute nameAttrib = propEle.getAttribute(new QName("name")); if(nameAttrib != null){ +String attribName = nameAttrib.getAttributeValue(); +attribName = replaceProperty(attribName, memberInfo); + OMAttribute valueAttrib = propEle.getAttribute(new QName("value")); if (valueAttrib != null) { String attribVal = valueAttrib.getAttributeValue(); attribVal = replaceProperty(attribVal, memberInfo); -memberInfo.setProperty(nameAttrib.getAttributeValue(), attribVal); +memberInfo.setProperty(attribName, attribVal); } } } @@ -300,6 +303,9 @@ public class TribesClusteringAgent imple String sysProp = text.substring(indexOfStartingChars + 2, indexOfClosingBrace); String propValue = props.getProperty(sysProp); +if (propValue == null) { +propValue = System.getProperty(sysProp); +} if (propValue != null) { text = text.substring(0, indexOfStartingChars) + propValue + text.substring(indexOfClosingBrace + 1);
svn commit: r1203771 - in /axis/axis2/java/core/trunk/modules: clustering/src/org/apache/axis2/clustering/tribes/ kernel/src/org/apache/axis2/clustering/
Author: azeez Date: Fri Nov 18 18:00:55 2011 New Revision: 1203771 URL: http://svn.apache.org/viewvc?rev=1203771&view=rev Log: Introduced messging functionality at the Cluster level. Messages can be sent in RPC or non-RPC mode. This functionality is needed since there are usecases where one member needs to send custom messages to other members in the cluster. Modified: axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesClusteringAgent.java axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesConstants.java axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesUtil.java axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/clustering/ClusteringAgent.java Modified: axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesClusteringAgent.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesClusteringAgent.java?rev=1203771&r1=1203770&r2=1203771&view=diff == --- axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesClusteringAgent.java (original) +++ axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesClusteringAgent.java Fri Nov 18 18:00:55 2011 @@ -22,12 +22,7 @@ package org.apache.axis2.clustering.trib import org.apache.axiom.om.OMAttribute; import org.apache.axiom.om.OMElement; import org.apache.axis2.AxisFault; -import org.apache.axis2.clustering.ClusteringAgent; -import org.apache.axis2.clustering.ClusteringConstants; -import org.apache.axis2.clustering.ClusteringFault; -import org.apache.axis2.clustering.MembershipListener; -import org.apache.axis2.clustering.MembershipScheme; -import org.apache.axis2.clustering.RequestBlockingHandler; +import org.apache.axis2.clustering.*; import org.apache.axis2.clustering.control.ControlCommand; import org.apache.axis2.clustering.control.GetConfigurationCommand; import org.apache.axis2.clustering.control.GetStateCommand; @@ -48,8 +43,10 @@ import org.apache.axis2.engine.DispatchP import org.apache.axis2.engine.Phase; import org.apache.catalina.tribes.Channel; import org.apache.catalina.tribes.ChannelException; +import org.apache.catalina.tribes.ErrorHandler; import org.apache.catalina.tribes.ManagedChannel; import org.apache.catalina.tribes.Member; +import org.apache.catalina.tribes.UniqueId; import org.apache.catalina.tribes.group.GroupChannel; import org.apache.catalina.tribes.group.Response; import org.apache.catalina.tribes.group.RpcChannel; @@ -83,7 +80,14 @@ public class TribesClusteringAgent imple private final HashMap parameters; private ManagedChannel channel; +/** + * RpcChannel used for cluster initialization interactions + */ private RpcChannel rpcInitChannel; +/** + * RpcChannel used for RPC messaging interactions + */ +private RpcChannel rpcMessagingChannel; private ConfigurationContext configurationContext; private Axis2ChannelListener axis2ChannelListener; private ChannelSender channelSender; @@ -104,6 +108,7 @@ public class TribesClusteringAgent imple private final Map groupManagementAgents = new HashMap(); private boolean clusterManagementMode; +private RpcMessagingHandler rpcMessagingHandler; public TribesClusteringAgent() { parameters = new HashMap(); @@ -166,10 +171,19 @@ public class TribesClusteringAgent imple // picks it up. Each RPC is given a UUID, hence can correlate the request-response pair rpcInitRequestHandler = new RpcInitializationRequestHandler(configurationContext); rpcInitChannel = -new RpcChannel(TribesUtil.getRpcInitChannelId(domain), - channel, rpcInitRequestHandler); +new RpcChannel(TribesUtil.getRpcInitChannelId(domain), channel, + rpcInitRequestHandler); if (log.isDebugEnabled()) { -log.debug("Created RPC Channel for domain " + new String(domain)); +log.debug("Created RPC Init Channel for domain " + new String(domain)); +} + +// Initialize RpcChannel used for messaging +rpcMessagingHandler = new RpcMessagingHandler(configurationContext); +rpcMessagingChannel = +new RpcChannel(TribesUtil.getRpcMessagingChannelId(domain), channel, + rpcMessagingHandler); +if (log.isDebugEnabled()) { +log.debug("Created RPC Messaging Channel for domain " + new String(domain)); } setMaximumRetries(); @@ -231,6 +245,48 @@ public class TribesClusteringAgent imple } } +pub
svn commit: r1203795 - /axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/clustering/ClusteringMessage.java
Author: azeez Date: Fri Nov 18 19:32:02 2011 New Revision: 1203795 URL: http://svn.apache.org/viewvc?rev=1203795&view=rev Log: Adding ClusteringMessage Added: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/clustering/ClusteringMessage.java Added: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/clustering/ClusteringMessage.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/clustering/ClusteringMessage.java?rev=1203795&view=auto == --- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/clustering/ClusteringMessage.java (added) +++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/clustering/ClusteringMessage.java Fri Nov 18 19:32:02 2011 @@ -0,0 +1,31 @@ +/* +* Copyright (c) 2005-2011, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. +* +* WSO2 Inc. licenses this file to you under the Apache License, +* Version 2.0 (the "License"); you may not use this file except +* in compliance with the License. +* You may obtain a copy of the License at +* +*http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, +* software distributed under the License is distributed on an +* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +* KIND, either express or implied. See the License for the +* specific language governing permissions and limitations +* under the License. +*/ +package org.apache.axis2.clustering; + +/** + * This is a special ClusteringCommand which is used for messaging. If there is a response, + * the response can be retrieved from this command + */ +public abstract class ClusteringMessage extends ClusteringCommand { + +/** + * Get the response for this message + * @return the response for this message + */ +public abstract ClusteringCommand getResponse(); +}
svn commit: r1203798 - /axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/clustering/ClusteringMessage.java
Author: azeez Date: Fri Nov 18 19:34:45 2011 New Revision: 1203798 URL: http://svn.apache.org/viewvc?rev=1203798&view=rev Log: Mistakenly committed with the WSO2 License header. Changed to ASF license header. Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/clustering/ClusteringMessage.java Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/clustering/ClusteringMessage.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/clustering/ClusteringMessage.java?rev=1203798&r1=1203797&r2=1203798&view=diff == --- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/clustering/ClusteringMessage.java (original) +++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/clustering/ClusteringMessage.java Fri Nov 18 19:34:45 2011 @@ -1,20 +1,22 @@ /* -* Copyright (c) 2005-2011, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. -* -* WSO2 Inc. licenses this file to you under the Apache License, -* Version 2.0 (the "License"); you may not use this file except -* in compliance with the License. -* You may obtain a copy of the License at -* -*http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, -* software distributed under the License is distributed on an -* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -* KIND, either express or implied. See the License for the -* specific language governing permissions and limitations -* under the License. -*/ + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + package org.apache.axis2.clustering; /**
svn commit: r1203910 - /axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/RpcMessagingHandler.java
Author: azeez Date: Sat Nov 19 00:17:37 2011 New Revision: 1203910 URL: http://svn.apache.org/viewvc?rev=1203910&view=rev Log: Adding RpcMessagingHandler class which I forgot to add while applying a patch Added: axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/RpcMessagingHandler.java Added: axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/RpcMessagingHandler.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/RpcMessagingHandler.java?rev=1203910&view=auto == --- axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/RpcMessagingHandler.java (added) +++ axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/RpcMessagingHandler.java Sat Nov 19 00:17:37 2011 @@ -0,0 +1,72 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.axis2.clustering.tribes; + +import org.apache.axis2.clustering.ClusteringFault; +import org.apache.axis2.clustering.ClusteringMessage; +import org.apache.axis2.context.ConfigurationContext; +import org.apache.catalina.tribes.Member; +import org.apache.catalina.tribes.RemoteProcessException; +import org.apache.catalina.tribes.group.RpcCallback; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import java.io.Serializable; + +/** + * Handles RPC messages from members + */ +public class RpcMessagingHandler implements RpcCallback { + +private static Log log = LogFactory.getLog(RpcMessagingHandler.class); + +private ConfigurationContext configurationContext; + +public RpcMessagingHandler(ConfigurationContext configurationContext) { +this.configurationContext = configurationContext; +} + +public void setConfigurationContext(ConfigurationContext configurationContext) { +this.configurationContext = configurationContext; +} + +public Serializable replyRequest(Serializable msg, Member invoker) { +if (log.isDebugEnabled()) { +log.debug("RPC request received by RpcMessagingHandler"); +} +if (msg instanceof ClusteringMessage) { +ClusteringMessage clusteringMsg = (ClusteringMessage) msg; +try { +clusteringMsg.execute(configurationContext); +} catch (ClusteringFault e) { +String errMsg = "Cannot handle RPC message"; +log.error(errMsg, e); +throw new RemoteProcessException(errMsg, e); +} +return clusteringMsg.getResponse(); +} else { +throw new IllegalArgumentException("Invalid RPC message of type " + msg.getClass() + + " received"); +} +} + +public void leftOver(Serializable msg, Member member) { +//TODO: Method implementation +} +}
svn commit: r1210857 - /axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesClusteringAgent.java
Author: azeez Date: Tue Dec 6 10:59:06 2011 New Revision: 1210857 URL: http://svn.apache.org/viewvc?rev=1210857&view=rev Log: Instead of throwin an Exception when the localMemberHost is set to 127.0.0.1, just print a warning. 127.0.0.1 address is useful in testing scenarios. Modified: axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesClusteringAgent.java Modified: axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesClusteringAgent.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesClusteringAgent.java?rev=1210857&r1=1210856&r2=1210857&view=diff == --- axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesClusteringAgent.java (original) +++ axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesClusteringAgent.java Tue Dec 6 10:59:06 2011 @@ -197,10 +197,8 @@ public class TribesClusteringAgent imple channel.start(Channel.DEFAULT); // At this point, this member joins the group String localHost = TribesUtil.getLocalHost(channel); if (localHost.startsWith("127.0.")) { -channel.stop(Channel.DEFAULT); -throw new ClusteringFault("Cannot join cluster using IP " + localHost + - ". Please set an IP address other than " + - localHost + " in the axis2.xml file"); +log.warn("Local member advertising its IP address as 127.0.0.1. " + + "Remote members will not be able to connect to this member."); } } catch (ChannelException e) { String msg = "Error starting Tribes channel";
svn commit: r1212345 - /axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/util/MessageContextBuilder.java
Author: azeez Date: Fri Dec 9 11:59:54 2011 New Revision: 1212345 URL: http://svn.apache.org/viewvc?rev=1212345&view=rev Log: Set the incoming MessageContext as a property in the Fault MessageContext if an Axis Fault is thrown. Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/util/MessageContextBuilder.java Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/util/MessageContextBuilder.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/util/MessageContextBuilder.java?rev=1212345&r1=1212344&r2=1212345&view=diff == --- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/util/MessageContextBuilder.java (original) +++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/util/MessageContextBuilder.java Fri Dec 9 11:59:54 2011 @@ -264,6 +264,7 @@ public class MessageContextBuilder { faultMessageContext.setProperty(Constants.OUT_TRANSPORT_INFO, processingContext.getProperty( Constants.OUT_TRANSPORT_INFO)); + faultMessageContext.setProperty(MessageContext.IN_MESSAGE_CONTEXT, processingContext); faultMessageContext.setProcessingFault(true); return faultMessageContext; }
svn commit: r1235695 - in /axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes: MembershipManager.java WkaBasedMembershipScheme.java
Author: azeez Date: Wed Jan 25 08:59:32 2012 New Revision: 1235695 URL: http://svn.apache.org/viewvc?rev=1235695&view=rev Log: Resend MEMBER_LIST message to WKA members who do not respond to the MEMBER_LIST message Modified: axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/MembershipManager.java axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/WkaBasedMembershipScheme.java Modified: axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/MembershipManager.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/MembershipManager.java?rev=1235695&r1=1235694&r2=1235695&view=diff == --- axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/MembershipManager.java (original) +++ axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/MembershipManager.java Wed Jan 25 08:59:32 2012 @@ -37,6 +37,10 @@ import org.apache.commons.logging.LogFac import java.util.ArrayList; import java.util.List; import java.util.Random; +import java.util.concurrent.CopyOnWriteArrayList; +import java.util.concurrent.Executors; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.TimeUnit; /** * Responsible for managing the membership. Handles membership changes. @@ -68,10 +72,22 @@ public class MembershipManager { private final List wkaMembers = new ArrayList(); /** + * List of Well-Known members which have not responded to the MEMBER_LIST message. + * We need to retry sending the MEMBER_LIST message to these members until they respond, + * otherwise, we cannot be sure whether these WKA members added the members in the MEMBER_LIST + */ +private final List nonRespondingWkaMembers = new CopyOnWriteArrayList(); + +/** * The member representing this node */ private Member localMember; +/** + * + */ +private boolean isMemberListResponseReceived; + public MembershipManager(ConfigurationContext configContext) { this.configContext = configContext; } @@ -87,9 +103,10 @@ public class MembershipManager { return rpcMembershipChannel; } -public void setStaticMembershipInterceptor( -StaticMembershipInterceptor staticMembershipInterceptor) { +public void setupStaticMembershipManagement(StaticMembershipInterceptor staticMembershipInterceptor) { this.staticMembershipInterceptor = staticMembershipInterceptor; +ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1); +scheduler.scheduleWithFixedDelay(new MemberListSenderTask(), 5, 5, TimeUnit.SECONDS); } public void setGroupManagementAgent(GroupManagementAgent groupManagementAgent) { @@ -157,54 +174,93 @@ public class MembershipManager { } if (shouldAddMember) { +boolean wkaMemberBelongsToLocalDomain = true; if (rpcMembershipChannel != null && isLocalMemberInitialized() && wkaMembers.contains(member)) { // if it is a well-known member log.info("A WKA member " + TribesUtil.getName(member) + " just joined the group. Sending MEMBER_LIST message."); -// send the member list to it -MemberListCommand memListCmd; -try { -memListCmd = new MemberListCommand(); -List members = new ArrayList(this.members); -members.add(localMember); // Need to set the local member too -memListCmd.setMembers(members.toArray(new Member[members.size()])); - -Response[] responses = -rpcMembershipChannel.send(new Member[]{member}, memListCmd, - RpcChannel.ALL_REPLY, - Channel.SEND_OPTIONS_ASYNCHRONOUS | - TribesConstants.MEMBERSHIP_MSG_OPTION, 1); - -// Once a response is received from the WKA member to the MEMBER_LIST message, -// if it does not belong to this domain, simply remove it from the members -if (responses != null && responses.length > 0 && responses[0] != null) { -Member source = responses[0].getSource(); -if (!TribesUtil.areInSameDomain(source, member)) { -if (log.isDebugEnabled()) { -log.debug("WKA Member " + TribesUtil.getName(source) + -
svn commit: r1243880 - in /axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes: Axis2ChannelListener.java Axis2GroupChannel.java ChannelSender.java ClassLoaderUtil.jav
Author: azeez Date: Tue Feb 14 11:23:12 2012 New Revision: 1243880 URL: http://svn.apache.org/viewvc?rev=1243880&view=rev Log: This fixes the issue of state replication failing if the classes of the replicated objects are contained within service archive & module archive files. We had to take control of the Tribes message deserialization mechanism at the channel level so that we can set the relevant classloaders before deserialization. Added: axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/Axis2GroupChannel.java axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/ClassLoaderUtil.java Modified: axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/Axis2ChannelListener.java axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/ChannelSender.java axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesClusteringAgent.java Modified: axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/Axis2ChannelListener.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/Axis2ChannelListener.java?rev=1243880&r1=1243879&r2=1243880&view=diff == --- axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/Axis2ChannelListener.java (original) +++ axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/Axis2ChannelListener.java Tue Feb 14 11:23:12 2012 @@ -27,9 +27,6 @@ import org.apache.axis2.clustering.manag import org.apache.axis2.clustering.state.DefaultStateManager; import org.apache.axis2.clustering.state.StateClusteringCommand; import org.apache.axis2.context.ConfigurationContext; -import org.apache.axis2.description.AxisModule; -import org.apache.axis2.description.AxisServiceGroup; -import org.apache.axis2.engine.AxisConfiguration; import org.apache.catalina.tribes.ByteMessage; import org.apache.catalina.tribes.ChannelListener; import org.apache.catalina.tribes.Member; @@ -40,9 +37,6 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import java.io.Serializable; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; /** * This is the Tribes channel listener which is used for listening on the channels, receiving @@ -93,23 +87,11 @@ public class Axis2ChannelListener implem */ public void messageReceived(Serializable msg, Member sender) { try { -AxisConfiguration configuration = configurationContext.getAxisConfiguration(); -List classLoaders = new ArrayList(); -classLoaders.add(configuration.getSystemClassLoader()); -classLoaders.add(getClass().getClassLoader()); -for (Iterator iter = configuration.getServiceGroups(); iter.hasNext();) { -AxisServiceGroup group = (AxisServiceGroup) iter.next(); -classLoaders.add(group.getServiceGroupClassLoader()); -} -for(Object obj: configuration.getModules().values()){ -AxisModule module = (AxisModule) obj; -classLoaders.add(module.getModuleClassLoader()); -} byte[] message = ((ByteMessage) msg).getMessage(); msg = XByteBuffer.deserialize(message, 0, message.length, - classLoaders.toArray(new ClassLoader[classLoaders.size()])); + ClassLoaderUtil.getClassLoaders(configurationContext)); } catch (Exception e) { String errMsg = "Cannot deserialize received message"; log.error(errMsg, e); Added: axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/Axis2GroupChannel.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/Axis2GroupChannel.java?rev=1243880&view=auto == --- axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/Axis2GroupChannel.java (added) +++ axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/Axis2GroupChannel.java Tue Feb 14 11:23:12 2012 @@ -0,0 +1,105 @@ +/* +* Copyright (c) 2005-2011, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. +* +* WSO2 Inc. licenses this file to you under the Apache License, +* Version 2.0 (the "License"); you may not use this file except +* in compliance with the License. +* You may obtain a copy of the License at +* +*
svn commit: r1243888 - in /axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes: Axis2ChannelListener.java Axis2GroupChannel.java ClassLoaderUtil.java TribesAxisObserve
Author: azeez Date: Tue Feb 14 12:04:34 2012 New Revision: 1243888 URL: http://svn.apache.org/viewvc?rev=1243888&view=rev Log: Rather than creating a new classloader array everytime a Tribes message is received, we use an AxisObserver which will notify the relevant code to update the classloader array when service & modules are deployed & undeployed. Added: axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesAxisObserver.java Modified: axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/Axis2ChannelListener.java axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/Axis2GroupChannel.java axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/ClassLoaderUtil.java axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesClusteringAgent.java Modified: axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/Axis2ChannelListener.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/Axis2ChannelListener.java?rev=1243888&r1=1243887&r2=1243888&view=diff == --- axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/Axis2ChannelListener.java (original) +++ axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/Axis2ChannelListener.java Tue Feb 14 12:04:34 2012 @@ -91,7 +91,7 @@ public class Axis2ChannelListener implem msg = XByteBuffer.deserialize(message, 0, message.length, - ClassLoaderUtil.getClassLoaders(configurationContext)); + ClassLoaderUtil.getClassLoaders()); } catch (Exception e) { String errMsg = "Cannot deserialize received message"; log.error(errMsg, e); Modified: axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/Axis2GroupChannel.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/Axis2GroupChannel.java?rev=1243888&r1=1243887&r2=1243888&view=diff == --- axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/Axis2GroupChannel.java (original) +++ axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/Axis2GroupChannel.java Tue Feb 14 12:04:34 2012 @@ -39,12 +39,6 @@ import java.io.Serializable; */ public class Axis2GroupChannel extends GroupChannel{ -private ConfigurationContext configurationContext; - -public Axis2GroupChannel(ConfigurationContext configurationContext) { -this.configurationContext = configurationContext; -} - @Override public void messageReceived(ChannelMessage msg) { if ( msg == null ) return; @@ -62,7 +56,7 @@ public class Axis2GroupChannel extends G try { fwd = XByteBuffer.deserialize(msg.getMessage().getBytesDirect(), 0, msg.getMessage().getLength(), - ClassLoaderUtil.getClassLoaders(configurationContext)); + ClassLoaderUtil.getClassLoaders()); }catch (Exception sx) { log.error("Unable to deserialize message:"+msg,sx); return; Modified: axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/ClassLoaderUtil.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/ClassLoaderUtil.java?rev=1243888&r1=1243887&r2=1243888&view=diff == --- axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/ClassLoaderUtil.java (original) +++ axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/ClassLoaderUtil.java Tue Feb 14 12:04:34 2012 @@ -17,33 +17,61 @@ */ package org.apache.axis2.clustering.tribes; -import org.apache.axis2.context.ConfigurationContext; import org.apache.axis2.description.AxisModule; import org.apache.axis2.description.AxisServiceGroup; import org.apache.axis2.engine.AxisConfiguration; -import java.util.ArrayList; +import java.util.HashMap; import java.util.Iterator; -import java.util.List; +import java.util.Map; /** * A util for manipulating classloaders to be used while serializing
svn commit: r1291131 - in /axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes: AtMostOnceInterceptor.java ClassLoaderUtil.java
Author: azeez Date: Mon Feb 20 06:38:42 2012 New Revision: 1291131 URL: http://svn.apache.org/viewvc?rev=1291131&view=rev Log: Replaced HashMap with ConcurrentHashMap to avoid CCE Modified: axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/AtMostOnceInterceptor.java axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/ClassLoaderUtil.java Modified: axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/AtMostOnceInterceptor.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/AtMostOnceInterceptor.java?rev=1291131&r1=1291130&r2=1291131&view=diff == --- axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/AtMostOnceInterceptor.java (original) +++ axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/AtMostOnceInterceptor.java Mon Feb 20 06:38:42 2012 @@ -31,7 +31,7 @@ import java.util.List; import java.util.Map; /** - * Message intereceptor for handling at-most-once message processing semantics + * Message interceptor for handling at-most-once message processing semantics */ public final class AtMostOnceInterceptor extends ChannelInterceptorBase { Modified: axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/ClassLoaderUtil.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/ClassLoaderUtil.java?rev=1291131&r1=1291130&r2=1291131&view=diff == --- axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/ClassLoaderUtil.java (original) +++ axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/ClassLoaderUtil.java Mon Feb 20 06:38:42 2012 @@ -21,16 +21,17 @@ import org.apache.axis2.description.Axis import org.apache.axis2.description.AxisServiceGroup; import org.apache.axis2.engine.AxisConfiguration; -import java.util.HashMap; import java.util.Iterator; import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; /** * A util for manipulating classloaders to be used while serializing & deserializing Tribes messages */ public class ClassLoaderUtil { -private static Map classLoaders = new HashMap(); +private static Map classLoaders = +new ConcurrentHashMap(); public static void init(AxisConfiguration configuration) { classLoaders.put("system", configuration.getSystemClassLoader());
svn commit: r1292648 - /axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/ClassLoaderUtil.java
Author: azeez Date: Thu Feb 23 05:09:35 2012 New Revision: 1292648 URL: http://svn.apache.org/viewvc?rev=1292648&view=rev Log: Need to check whether the classloader of a particular service group or module is null before adding it to the ConcurrentHashMap to avoid an NPE Modified: axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/ClassLoaderUtil.java Modified: axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/ClassLoaderUtil.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/ClassLoaderUtil.java?rev=1292648&r1=1292647&r2=1292648&view=diff == --- axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/ClassLoaderUtil.java (original) +++ axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/ClassLoaderUtil.java Thu Feb 23 05:09:35 2012 @@ -38,17 +38,25 @@ public class ClassLoaderUtil { classLoaders.put("axis2", ClassLoaderUtil.class.getClassLoader()); for (Iterator iter = configuration.getServiceGroups(); iter.hasNext(); ) { AxisServiceGroup group = (AxisServiceGroup) iter.next(); -classLoaders.put(getServiceGroupMapKey(group), group.getServiceGroupClassLoader()); +ClassLoader serviceGroupClassLoader = group.getServiceGroupClassLoader(); +if (serviceGroupClassLoader != null) { +classLoaders.put(getServiceGroupMapKey(group), serviceGroupClassLoader); +} } for (Object obj : configuration.getModules().values()) { AxisModule module = (AxisModule) obj; -classLoaders.put(getModuleMapKey(module), module.getModuleClassLoader()); +ClassLoader moduleClassLoader = module.getModuleClassLoader(); +if (moduleClassLoader != null) { +classLoaders.put(getModuleMapKey(module), moduleClassLoader); +} } } public static void addServiceGroupClassLoader(AxisServiceGroup serviceGroup) { -classLoaders.put(getServiceGroupMapKey(serviceGroup), - serviceGroup.getServiceGroupClassLoader()); +ClassLoader serviceGroupClassLoader = serviceGroup.getServiceGroupClassLoader(); +if (serviceGroupClassLoader != null) { +classLoaders.put(getServiceGroupMapKey(serviceGroup), serviceGroupClassLoader); +} } public static void removeServiceGroupClassLoader(AxisServiceGroup serviceGroup) { @@ -60,8 +68,10 @@ public class ClassLoaderUtil { } public static void addModuleClassLoader(AxisModule module) { -classLoaders.put(getModuleMapKey(module), - module.getModuleClassLoader()); +ClassLoader moduleClassLoader = module.getModuleClassLoader(); +if (moduleClassLoader != null) { +classLoaders.put(getModuleMapKey(module), moduleClassLoader); +} } public static void removeModuleClassLoader(AxisModule axisModule) {
svn commit: r1294677 - /axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/WkaBasedMembershipScheme.java
Author: azeez Date: Tue Feb 28 14:54:23 2012 New Revision: 1294677 URL: http://svn.apache.org/viewvc?rev=1294677&view=rev Log: Auto localMemberPort increment was not working, if the specified port was not available. This commit fixes the bug. Modified: axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/WkaBasedMembershipScheme.java Modified: axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/WkaBasedMembershipScheme.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/WkaBasedMembershipScheme.java?rev=1294677&r1=1294676&r2=1294677&view=diff == --- axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/WkaBasedMembershipScheme.java (original) +++ axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/WkaBasedMembershipScheme.java Tue Feb 28 14:54:23 2012 @@ -153,13 +153,13 @@ public class WkaBasedMembershipScheme im try { if (localPort != null) { port = Integer.parseInt(((String) localPort.getValue()).trim()); -port = getLocalPort(new ServerSocket(), localMember.getHostname(), port, 4000, 100); +port = getLocalPort(new ServerSocket(), localMember.getHostname(), port, 4000, 1000); } else { // In cases where the localport needs to be automatically figured out -port = getLocalPort(new ServerSocket(), localMember.getHostname(), -1, 4000, 100); +port = getLocalPort(new ServerSocket(), localMember.getHostname(), -1, 4000, 1000); } } catch (IOException e) { String msg = -"Could not allocate the specified port or a port in the range 4000-4100 " + +"Could not allocate the specified port or a port in the range 4000-5000 " + "for local host " + localMember.getHostname() + ". Check whether the IP address specified or inferred for the local " + "member is correct."; @@ -224,7 +224,7 @@ public class WkaBasedMembershipScheme im return true; } catch (IOException e) { String msg = e.getMessage(); -if (msg.indexOf("Connection refused") == -1 && msg.indexOf("connect timed out") == -1) { +if (!msg.contains("Connection refused") && !msg.contains("connect timed out")) { log.error("Cannot connect to member " + member.getHostName() + ":" + member.getPort(), e); } @@ -258,7 +258,7 @@ public class WkaBasedMembershipScheme im } catch (InterruptedException ignored) { ignored.printStackTrace(); } -getLocalPort(socket, hostname, portstart, retries, -1); +portstart = getLocalPort(socket, hostname, portstart, retries, -1); } } return portstart;
svn commit: r1295521 - in /axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering: ./ control/wka/ management/ management/commands/ tribes/
Author: azeez Date: Thu Mar 1 11:41:19 2012 New Revision: 1295521 URL: http://svn.apache.org/viewvc?rev=1295521&view=rev Log: Updated license headers Modified: axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/MembershipListenerImpl.java axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/MembershipScheme.java axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/control/wka/JoinGroupCommand.java axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/control/wka/MemberJoinedCommand.java axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/control/wka/MemberListCommand.java axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/management/DefaultGroupManagementAgent.java axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/management/commands/RestartMemberCommand.java axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/management/commands/ShutdownMemberCommand.java axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/ApplicationMode.java axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/Axis2Coordinator.java axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/Axis2GroupChannel.java axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/ClassLoaderUtil.java axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/ClusterManagementInterceptor.java axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/ClusterManagementMode.java axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/MulticastBasedMembershipScheme.java axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/OperationMode.java axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesAxisObserver.java axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesConstants.java axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/WkaBasedMembershipScheme.java axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/WkaMembershipService.java Modified: axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/MembershipListenerImpl.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/MembershipListenerImpl.java?rev=1295521&r1=1295520&r2=1295521&view=diff == --- axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/MembershipListenerImpl.java (original) +++ axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/MembershipListenerImpl.java Thu Mar 1 11:41:19 2012 @@ -1,17 +1,20 @@ -/* - * Copyright 2004,2005 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. +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WAR
svn commit: r1295528 - in /axis/axis2/java/core/branches/1_6/modules/clustering/src/org/apache/axis2/clustering/tribes: Axis2GroupChannel.java ClassLoaderUtil.java TribesAxisObserver.java
Author: azeez Date: Thu Mar 1 11:54:02 2012 New Revision: 1295528 URL: http://svn.apache.org/viewvc?rev=1295528&view=rev Log: Changed headers to include the proper license Modified: axis/axis2/java/core/branches/1_6/modules/clustering/src/org/apache/axis2/clustering/tribes/Axis2GroupChannel.java axis/axis2/java/core/branches/1_6/modules/clustering/src/org/apache/axis2/clustering/tribes/ClassLoaderUtil.java axis/axis2/java/core/branches/1_6/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesAxisObserver.java Modified: axis/axis2/java/core/branches/1_6/modules/clustering/src/org/apache/axis2/clustering/tribes/Axis2GroupChannel.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/branches/1_6/modules/clustering/src/org/apache/axis2/clustering/tribes/Axis2GroupChannel.java?rev=1295528&r1=1295527&r2=1295528&view=diff == --- axis/axis2/java/core/branches/1_6/modules/clustering/src/org/apache/axis2/clustering/tribes/Axis2GroupChannel.java (original) +++ axis/axis2/java/core/branches/1_6/modules/clustering/src/org/apache/axis2/clustering/tribes/Axis2GroupChannel.java Thu Mar 1 11:54:02 2012 @@ -1,23 +1,23 @@ /* -* Copyright 2004,2005 The Apache Software Foundation. -* -* WSO2 Inc. licenses this file to you under the Apache License, -* Version 2.0 (the "License"); you may not use this file except -* in compliance with the License. -* You may obtain a copy of the License at -* -*http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, -* software distributed under the License is distributed on an -* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -* KIND, either express or implied. See the License for the -* specific language governing permissions and limitations -* under the License. -*/ + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ package org.apache.axis2.clustering.tribes; -import org.apache.axis2.context.ConfigurationContext; import org.apache.catalina.tribes.ByteMessage; import org.apache.catalina.tribes.ChannelListener; import org.apache.catalina.tribes.ChannelMessage; Modified: axis/axis2/java/core/branches/1_6/modules/clustering/src/org/apache/axis2/clustering/tribes/ClassLoaderUtil.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/branches/1_6/modules/clustering/src/org/apache/axis2/clustering/tribes/ClassLoaderUtil.java?rev=1295528&r1=1295527&r2=1295528&view=diff == --- axis/axis2/java/core/branches/1_6/modules/clustering/src/org/apache/axis2/clustering/tribes/ClassLoaderUtil.java (original) +++ axis/axis2/java/core/branches/1_6/modules/clustering/src/org/apache/axis2/clustering/tribes/ClassLoaderUtil.java Thu Mar 1 11:54:02 2012 @@ -1,20 +1,21 @@ /* -* Copyright 2004,2005 The Apache Software Foundation. -* -* WSO2 Inc. licenses this file to you under the Apache License, -* Version 2.0 (the "License"); you may not use this file except -* in compliance with the License. -* You may obtain a copy of the License at -* -*http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, -* software distributed under the License is distributed on an -* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -* KIND, either express or implied. See the License for the -* specific language governing permissions and limitations -* under the License. -*/ + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software dist
svn commit: r1296057 - in /axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment: DeploymentEngine.java RepositoryListener.java
Author: azeez Date: Fri Mar 2 05:42:26 2012 New Revision: 1296057 URL: http://svn.apache.org/viewvc?rev=1296057&view=rev Log: Applying patch provided by Nuwan for https://issues.apache.org/jira/browse/AXIS2-5256 Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/RepositoryListener.java Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java?rev=1296057&r1=1296056&r2=1296057&view=diff == --- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java (original) +++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java Fri Mar 2 05:42:26 2012 @@ -1413,13 +1413,12 @@ public abstract class DeploymentEngine i return; } -if (extension == null) { -log.error("Failed to add Deployer " + deployer.getClass().getName() + ": Deployer missing 'extension' attribute"); -return; +//Extention is optional if the extention is not provided deployer will deploy the directories +if (extension != null) { +// A leading dot is redundant, so strip it. So we allow either ".foo" or "foo", either +// of which will result in extension="foo" +if (extension.charAt(0) == '.') extension = extension.substring(1); } -// A leading dot is redundant, so strip it. So we allow either ".foo" or "foo", either -// of which will result in extension="foo" -if (extension.charAt(0) == '.') extension = extension.substring(1); // If axis2 is not initialized, Axis2 will handle the deployer init() and relavent service deployment // If axis2 is initialized and hotDeployment is on, Axis2 will handle the relavent service deployments. Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/RepositoryListener.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/RepositoryListener.java?rev=1296057&r1=1296056&r2=1296057&view=diff == --- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/RepositoryListener.java (original) +++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/RepositoryListener.java Fri Mar 2 05:42:26 2012 @@ -296,15 +296,21 @@ public class RepositoryListener implemen if (isSourceControlDir(file)) { continue; } -if (!file.isDirectory() && extension - .equals(DeploymentFileData.getFileExtension(file.getName( { +if (extension == null && file.isDirectory()) { Deployer deployer = deploymentEngine.getDeployer(dir, extension); deployer.setDirectory(dir); addFileToDeploy(file, deployer, WSInfo.TYPE_CUSTOM); -} else if (file.isDirectory() && !file.getName().startsWith(".") && -!(dir.equals(directory.getName()) && "lib".equalsIgnoreCase(file.getName( { -//look in the child directory also -findFileForGivenDirectory(file, extension, dir); +} else if (extension != null) { +if (!file.isDirectory() && extension + .equals(DeploymentFileData.getFileExtension(file.getName( { +Deployer deployer = deploymentEngine.getDeployer(dir, extension); +deployer.setDirectory(dir); +addFileToDeploy(file, deployer, WSInfo.TYPE_CUSTOM); +} else if (file.isDirectory() && !file.getName().startsWith(".") && +!(dir.equals(directory.getName()) && "lib".equalsIgnoreCase(file.getName( { +//look in the child directory also +findFileForGivenDirectory(file, extension, dir); +} } } }
svn commit: r1296063 - in /axis/axis2/java/core/branches/1_6/modules/kernel/src/org/apache/axis2/deployment: DeploymentEngine.java RepositoryListener.java
Author: azeez Date: Fri Mar 2 06:39:37 2012 New Revision: 1296063 URL: http://svn.apache.org/viewvc?rev=1296063&view=rev Log: Applying patch provided by Nuwan for https://issues.apache.org/jira/browse/AXIS2-5256 Modified: axis/axis2/java/core/branches/1_6/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java axis/axis2/java/core/branches/1_6/modules/kernel/src/org/apache/axis2/deployment/RepositoryListener.java Modified: axis/axis2/java/core/branches/1_6/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/branches/1_6/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java?rev=1296063&r1=1296062&r2=1296063&view=diff == --- axis/axis2/java/core/branches/1_6/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java (original) +++ axis/axis2/java/core/branches/1_6/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java Fri Mar 2 06:39:37 2012 @@ -1413,13 +1413,12 @@ public abstract class DeploymentEngine i return; } -if (extension == null) { -log.error("Failed to add Deployer " + deployer.getClass().getName() + ": Deployer missing 'extension' attribute"); -return; +//Extention is optional if the extention is not provided deployer will deploy the directories +if (extension != null) { +// A leading dot is redundant, so strip it. So we allow either ".foo" or "foo", either +// of which will result in extension="foo" +if (extension.charAt(0) == '.') extension = extension.substring(1); } -// A leading dot is redundant, so strip it. So we allow either ".foo" or "foo", either -// of which will result in extension="foo" -if (extension.charAt(0) == '.') extension = extension.substring(1); // If axis2 is not initialized, Axis2 will handle the deployer init() and relavent service deployment // If axis2 is initialized and hotDeployment is on, Axis2 will handle the relavent service deployments. Modified: axis/axis2/java/core/branches/1_6/modules/kernel/src/org/apache/axis2/deployment/RepositoryListener.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/branches/1_6/modules/kernel/src/org/apache/axis2/deployment/RepositoryListener.java?rev=1296063&r1=1296062&r2=1296063&view=diff == --- axis/axis2/java/core/branches/1_6/modules/kernel/src/org/apache/axis2/deployment/RepositoryListener.java (original) +++ axis/axis2/java/core/branches/1_6/modules/kernel/src/org/apache/axis2/deployment/RepositoryListener.java Fri Mar 2 06:39:37 2012 @@ -296,14 +296,21 @@ public class RepositoryListener implemen if (isSourceControlDir(file)) { continue; } -if (!file.isDirectory() && extension - .equals(DeploymentFileData.getFileExtension(file.getName( { +if (extension == null && file.isDirectory()) { Deployer deployer = deploymentEngine.getDeployer(dir, extension); deployer.setDirectory(dir); addFileToDeploy(file, deployer, WSInfo.TYPE_CUSTOM); -} else if (file.isDirectory() && !file.getName().startsWith(".")) { -//look in the child directory also -findFileForGivenDirectory(file, extension, dir); +} else if (extension != null) { +if (!file.isDirectory() && extension + .equals(DeploymentFileData.getFileExtension(file.getName( { +Deployer deployer = deploymentEngine.getDeployer(dir, extension); +deployer.setDirectory(dir); +addFileToDeploy(file, deployer, WSInfo.TYPE_CUSTOM); +} else if (file.isDirectory() && !file.getName().startsWith(".") && +!(dir.equals(directory.getName()) && "lib".equalsIgnoreCase(file.getName( { +//look in the child directory also +findFileForGivenDirectory(file, extension, dir); +} } } }
svn commit: r1296151 - in /axis/axis2/java/core/branches/1_6/modules: integration/test/org/apache/axis2/engine/ kernel/src/org/apache/axis2/context/ kernel/src/org/apache/axis2/util/
Author: azeez Date: Fri Mar 2 11:33:16 2012 New Revision: 1296151 URL: http://svn.apache.org/viewvc?rev=1296151&view=rev Log: Merging IN_MESSAGE_CONTEXT to MessageContext change from trunk to 1_6 branch Modified: axis/axis2/java/core/branches/1_6/modules/integration/test/org/apache/axis2/engine/MessageContextChangeTest.java axis/axis2/java/core/branches/1_6/modules/kernel/src/org/apache/axis2/context/MessageContext.java axis/axis2/java/core/branches/1_6/modules/kernel/src/org/apache/axis2/util/MessageContextBuilder.java Modified: axis/axis2/java/core/branches/1_6/modules/integration/test/org/apache/axis2/engine/MessageContextChangeTest.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/branches/1_6/modules/integration/test/org/apache/axis2/engine/MessageContextChangeTest.java?rev=1296151&r1=1296150&r2=1296151&view=diff == --- axis/axis2/java/core/branches/1_6/modules/integration/test/org/apache/axis2/engine/MessageContextChangeTest.java (original) +++ axis/axis2/java/core/branches/1_6/modules/integration/test/org/apache/axis2/engine/MessageContextChangeTest.java Fri Mar 2 11:33:16 2012 @@ -47,6 +47,7 @@ public class MessageContextChangeTest ex new FieldDescription("java.lang.String", "REMOTE_ADDR"), new FieldDescription("java.lang.String", "TRANSPORT_ADDR"), new FieldDescription("java.lang.String", "TRANSPORT_HEADERS"), +new FieldDescription("java.lang.String", "IN_MESSAGE_CONTEXT"), new FieldDescription("org.apache.axiom.attachments.Attachments", "attachments"), new FieldDescription("java.lang.String", "TRANSPORT_OUT"), new FieldDescription("java.lang.String", "TRANSPORT_IN"), Modified: axis/axis2/java/core/branches/1_6/modules/kernel/src/org/apache/axis2/context/MessageContext.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/branches/1_6/modules/kernel/src/org/apache/axis2/context/MessageContext.java?rev=1296151&r1=1296150&r2=1296151&view=diff == --- axis/axis2/java/core/branches/1_6/modules/kernel/src/org/apache/axis2/context/MessageContext.java (original) +++ axis/axis2/java/core/branches/1_6/modules/kernel/src/org/apache/axis2/context/MessageContext.java Fri Mar 2 11:33:16 2012 @@ -180,6 +180,14 @@ public class MessageContext extends Abst public static final String TRANSPORT_ADDR = "TRANSPORT_ADDR"; public static final String TRANSPORT_HEADERS = "TRANSPORT_HEADERS"; +/** + * Constant used as the key for the property which stores the In MessageContext in the + * Out MessageContext/FaultMessageContext. This is needed in cases where an OperationContext + * is not created, for example, since the request never gets dispatched to the service + * operation, either due to a security failure or a request coming in for a non-existing + * endpoint + */ +public static final String IN_MESSAGE_CONTEXT = "axis2.inMsgContext"; /** * message attachments Modified: axis/axis2/java/core/branches/1_6/modules/kernel/src/org/apache/axis2/util/MessageContextBuilder.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/branches/1_6/modules/kernel/src/org/apache/axis2/util/MessageContextBuilder.java?rev=1296151&r1=1296150&r2=1296151&view=diff == --- axis/axis2/java/core/branches/1_6/modules/kernel/src/org/apache/axis2/util/MessageContextBuilder.java (original) +++ axis/axis2/java/core/branches/1_6/modules/kernel/src/org/apache/axis2/util/MessageContextBuilder.java Fri Mar 2 11:33:16 2012 @@ -81,6 +81,7 @@ public class MessageContextBuilder { newmsgCtx.setTransportIn(inMessageContext.getTransportIn()); newmsgCtx.setTransportOut(inMessageContext.getTransportOut()); newmsgCtx.setServerSide(inMessageContext.isServerSide()); +newmsgCtx.setProperty(MessageContext.IN_MESSAGE_CONTEXT, inMessageContext); // TODO: Should this be specifying (or defaulting to) the "response" relationshipType?? newmsgCtx.addRelatesTo(new RelatesTo(inMessageContext.getOptions().getMessageId())); @@ -264,6 +265,7 @@ public class MessageContextBuilder { processingContext.getProperty( Constants.OUT_TRANSPORT_INFO)); faultMessageContext.setProcessingFault(true); + faultMessageContext.setProperty(MessageContext.IN_MESSAGE_CONTEXT, processingContext); return faultMessageContext; } }
svn commit: r1296158 - /axis/axis2/java/core/branches/1_6/modules/kernel/src/org/apache/axis2/clustering/Member.java
Author: azeez Date: Fri Mar 2 11:47:29 2012 New Revision: 1296158 URL: http://svn.apache.org/viewvc?rev=1296158&view=rev Log: Merging Member suspension functionality into 1_6 branch from trunk Modified: axis/axis2/java/core/branches/1_6/modules/kernel/src/org/apache/axis2/clustering/Member.java Modified: axis/axis2/java/core/branches/1_6/modules/kernel/src/org/apache/axis2/clustering/Member.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/branches/1_6/modules/kernel/src/org/apache/axis2/clustering/Member.java?rev=1296158&r1=1296157&r2=1296158&view=diff == --- axis/axis2/java/core/branches/1_6/modules/kernel/src/org/apache/axis2/clustering/Member.java (original) +++ axis/axis2/java/core/branches/1_6/modules/kernel/src/org/apache/axis2/clustering/Member.java Fri Mar 2 11:47:29 2012 @@ -57,11 +57,46 @@ public class Member { */ private Properties properties = new Properties(); +/** + * Time at which this member was suspended + */ +private long suspendedTime = -1; + +/** + * Time in millis which this member should be suspended + */ +private long suspensionDuration = -1; + public Member(String hostName, int port) { this.hostName = hostName; this.port = port; } +/** + * Temporarilly suspend this member + * @param suspensionDurationMillis The time duration in millis in which this member should be suspended + */ +public void suspend(long suspensionDurationMillis){ +this.suspendedTime = System.currentTimeMillis(); +this.suspensionDuration = suspensionDurationMillis; +} + +/** + * Check whether this member is suspended + * @return true if this member is still suspended, false oterwise + */ +public boolean isSuspended() { +if (suspendedTime == -1) { +return false; +} +if (System.currentTimeMillis() - suspendedTime >= suspensionDuration) { +this.suspendedTime = -1; +this.suspensionDuration = -1; +return false; +} +return true; +} + public String getHostName() { return hostName; }
svn commit: r1296163 - in /axis/axis2/java/core/branches/1_6/modules: clustering/src/org/apache/axis2/clustering/state/ clustering/src/org/apache/axis2/clustering/state/commands/ kernel/src/org/apache
Author: azeez Date: Fri Mar 2 12:01:41 2012 New Revision: 1296163 URL: http://svn.apache.org/viewvc?rev=1296163&view=rev Log: Merging the following changes from trunk to the 1_6 branch 1. Do not replicate if state manager is not available 2. Added method to suspend Member 3. Added custom state replication functionality Modified: axis/axis2/java/core/branches/1_6/modules/clustering/src/org/apache/axis2/clustering/state/DefaultStateManager.java axis/axis2/java/core/branches/1_6/modules/clustering/src/org/apache/axis2/clustering/state/commands/StateClusteringCommandCollection.java axis/axis2/java/core/branches/1_6/modules/kernel/src/org/apache/axis2/clustering/state/Replicator.java axis/axis2/java/core/branches/1_6/modules/kernel/src/org/apache/axis2/clustering/state/StateManager.java Modified: axis/axis2/java/core/branches/1_6/modules/clustering/src/org/apache/axis2/clustering/state/DefaultStateManager.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/branches/1_6/modules/clustering/src/org/apache/axis2/clustering/state/DefaultStateManager.java?rev=1296163&r1=1296162&r2=1296163&view=diff == --- axis/axis2/java/core/branches/1_6/modules/clustering/src/org/apache/axis2/clustering/state/DefaultStateManager.java (original) +++ axis/axis2/java/core/branches/1_6/modules/clustering/src/org/apache/axis2/clustering/state/DefaultStateManager.java Fri Mar 2 12:01:41 2012 @@ -57,15 +57,15 @@ public class DefaultStateManager impleme public void updateContext(AbstractContext context) throws ClusteringFault { StateClusteringCommand cmd = StateClusteringCommandFactory.getUpdateCommand(context, - excludedReplicationPatterns, - false); + excludedReplicationPatterns, + false); if (cmd != null) { sender.sendToGroup(cmd); } } public void updateContext(AbstractContext context, -String[] propertyNames) throws ClusteringFault { + String[] propertyNames) throws ClusteringFault { StateClusteringCommand cmd = StateClusteringCommandFactory.getUpdateCommand(context, propertyNames); if (cmd != null) { @@ -76,8 +76,14 @@ public class DefaultStateManager impleme public void updateContexts(AbstractContext[] contexts) throws ClusteringFault { StateClusteringCommandCollection cmd = StateClusteringCommandFactory.getCommandCollection(contexts, - excludedReplicationPatterns); -sender.sendToGroup(cmd); + excludedReplicationPatterns); +if (!cmd.isEmpty()) { +sender.sendToGroup(cmd); +} +} + +public void replicateState(StateClusteringCommand command) throws ClusteringFault { +sender.sendToGroup(command); } public void removeContext(AbstractContext context) throws ClusteringFault { Modified: axis/axis2/java/core/branches/1_6/modules/clustering/src/org/apache/axis2/clustering/state/commands/StateClusteringCommandCollection.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/branches/1_6/modules/clustering/src/org/apache/axis2/clustering/state/commands/StateClusteringCommandCollection.java?rev=1296163&r1=1296162&r2=1296163&view=diff == --- axis/axis2/java/core/branches/1_6/modules/clustering/src/org/apache/axis2/clustering/state/commands/StateClusteringCommandCollection.java (original) +++ axis/axis2/java/core/branches/1_6/modules/clustering/src/org/apache/axis2/clustering/state/commands/StateClusteringCommandCollection.java Fri Mar 2 12:01:41 2012 @@ -24,27 +24,29 @@ import org.apache.axis2.clustering.state import org.apache.axis2.context.ConfigurationContext; import java.util.ArrayList; +import java.util.List; /** - * + * A StateClusteringCommand consisting of a collection of other StateClusteringCommands */ public class StateClusteringCommandCollection extends StateClusteringCommand { -private final ArrayList commands; +private final List commands; -public StateClusteringCommandCollection(ArrayList commands) { +public StateClusteringCommandCollection(List commands) { this.commands = commands; } public void execute(ConfigurationContext configContext) throws ClusteringFault { -for (int i = 0; i < commands.size(); i++) { -StateClusteringCommand cmd = (StateClusteringCommand) comman
svn commit: r1308895 - /axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/context/MessageContext.java
Author: azeez Date: Tue Apr 3 13:34:23 2012 New Revision: 1308895 URL: http://svn.apache.org/viewvc?rev=1308895&view=rev Log: Ability to destroy a MessageContext ThreadLocal variable Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/context/MessageContext.java Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/context/MessageContext.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/context/MessageContext.java?rev=1308895&r1=1308894&r2=1308895&view=diff == --- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/context/MessageContext.java (original) +++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/context/MessageContext.java Tue Apr 3 13:34:23 2012 @@ -160,6 +160,10 @@ public class MessageContext extends Abst return (MessageContext) currentMessageContext.get(); } +public static void destroyCurrentMessageContext() { +currentMessageContext.remove(); +} + public static void setCurrentMessageContext(MessageContext ctx) { currentMessageContext.set(ctx); }
svn commit: r1328354 - /axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesClusteringAgent.java
Author: azeez Date: Fri Apr 20 12:37:31 2012 New Revision: 1328354 URL: http://svn.apache.org/viewvc?rev=1328354&view=rev Log: Take portOffset into consideration when transmitting member http & https port member properties Modified: axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesClusteringAgent.java Modified: axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesClusteringAgent.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesClusteringAgent.java?rev=1328354&r1=1328353&r2=1328354&view=diff == --- axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesClusteringAgent.java (original) +++ axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesClusteringAgent.java Fri Apr 20 12:37:31 2012 @@ -297,24 +297,25 @@ public class TribesClusteringAgent imple Properties memberInfo = new Properties(); AxisConfiguration axisConfig = configurationContext.getAxisConfiguration(); TransportInDescription httpTransport = axisConfig.getTransportIn("http"); +int portOffset = 0; +if(System.getProperty("portOffset") != null){ +portOffset = Integer.parseInt(System.getProperty("portOffset")); +} if (httpTransport != null) { Parameter port = httpTransport.getParameter("port"); if (port != null) { -memberInfo.put("httpPort", port.getValue()); +memberInfo.put("httpPort", + String.valueOf(Integer.valueOf((String)port.getValue()) + portOffset)); } } TransportInDescription httpsTransport = axisConfig.getTransportIn("https"); if (httpsTransport != null) { Parameter port = httpsTransport.getParameter("port"); if (port != null) { -memberInfo.put("httpsPort", port.getValue()); +memberInfo.put("httpsPort", + String.valueOf(Integer.valueOf((String)port.getValue()) + portOffset)); } } -Parameter isActiveParam = getParameter(ClusteringConstants.Parameters.IS_ACTIVE); -if (isActiveParam != null) { -memberInfo.setProperty(ClusteringConstants.Parameters.IS_ACTIVE, - (String) isActiveParam.getValue()); -} memberInfo.setProperty("hostName", TribesUtil.getLocalHost(getParameter(TribesConstants.LOCAL_MEMBER_HOST)));
svn commit: r1329591 - in /axis/axis2/java/core/trunk/modules: clustering/src/org/apache/axis2/clustering/tribes/TribesClusteringAgent.java kernel/src/org/apache/axis2/clustering/ClusteringAgent.java
Author: azeez Date: Tue Apr 24 08:34:47 2012 New Revision: 1329591 URL: http://svn.apache.org/viewvc?rev=1329591&view=rev Log: Ability to elect a coordinator for the cluster Modified: axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesClusteringAgent.java axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/clustering/ClusteringAgent.java axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/clustering/Member.java Modified: axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesClusteringAgent.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesClusteringAgent.java?rev=1329591&r1=1329590&r2=1329591&view=diff == --- axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesClusteringAgent.java (original) +++ axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesClusteringAgent.java Tue Apr 24 08:34:47 2012 @@ -56,6 +56,7 @@ import org.apache.catalina.tribes.Member import org.apache.catalina.tribes.UniqueId; import org.apache.catalina.tribes.group.Response; import org.apache.catalina.tribes.group.RpcChannel; +import org.apache.catalina.tribes.group.interceptors.NonBlockingCoordinator; import org.apache.catalina.tribes.transport.MultiPointSender; import org.apache.catalina.tribes.transport.ReplicationTransmitter; import org.apache.commons.logging.Log; @@ -101,6 +102,8 @@ public class TribesClusteringAgent imple private RpcInitializationRequestHandler rpcInitRequestHandler; private MembershipScheme membershipScheme; +private NonBlockingCoordinator coordinator; + /** * The mode in which this member operates such as "loadBalance" or "application" */ @@ -152,6 +155,10 @@ public class TribesClusteringAgent imple return configurationManager; } +public boolean isCoordinator(){ +return coordinator.isCoordinator(); +} + /** * Initialize the cluster. * @@ -163,6 +170,8 @@ public class TribesClusteringAgent imple primaryMembershipManager = new MembershipManager(configurationContext); channel = new Axis2GroupChannel(); +coordinator = new NonBlockingCoordinator(); +channel.addInterceptor(coordinator); channel.setHeartbeat(true); channelSender = new ChannelSender(channel, primaryMembershipManager, synchronizeAllMembers()); axis2ChannelListener = Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/clustering/ClusteringAgent.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/clustering/ClusteringAgent.java?rev=1329591&r1=1329590&r2=1329591&view=diff == --- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/clustering/ClusteringAgent.java (original) +++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/clustering/ClusteringAgent.java Tue Apr 24 08:34:47 2012 @@ -185,6 +185,12 @@ public interface ClusteringAgent extends */ Set getDomains(); +/** + * Checks whether this member is the coordinator for the cluster + * + * @return true if this member is the coordinator, and false otherwise + */ +boolean isCoordinator(); /** * Send a message to all members in this member's primary cluster Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/clustering/Member.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/clustering/Member.java?rev=1329591&r1=1329590&r2=1329591&view=diff == --- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/clustering/Member.java (original) +++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/clustering/Member.java Tue Apr 24 08:34:47 2012 @@ -83,7 +83,7 @@ public class Member { /** * Check whether this member is suspended - * @return true if this member is still suspended, false oterwise + * @return true if this member is still suspended, false otherwise */ public boolean isSuspended() { if (suspendedTime == -1) {
svn commit: r1329711 - /axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/context/ConfigurationContext.java
Author: azeez Date: Tue Apr 24 13:41:40 2012 New Revision: 1329711 URL: http://svn.apache.org/viewvc?rev=1329711&view=rev Log: If an exception, like a security exception occurs during calling module & service shutdown, we should continue calling shutdown on other modules & services, without throwing an exception and halting the entire cleanup & ConfigurationContext termination flow Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/context/ConfigurationContext.java Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/context/ConfigurationContext.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/context/ConfigurationContext.java?rev=1329711&r1=1329710&r2=1329711&view=diff == --- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/context/ConfigurationContext.java (original) +++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/context/ConfigurationContext.java Tue Apr 24 13:41:40 2012 @@ -744,7 +744,11 @@ public class ConfigurationContext extend AxisModule axisModule = (AxisModule) moduleitr.next(); Module module = axisModule.getModule(); if (module != null) { -module.shutdown(this); +try { +module.shutdown(this); +} catch (Exception e) { +log.warn("Could not shutdown module " + module.getClass().getName(), e); +} } } } @@ -760,7 +764,11 @@ public class ConfigurationContext extend AxisService axisService = (AxisService) services.next(); ServiceLifeCycle serviceLifeCycle = axisService.getServiceLifeCycle(); if (serviceLifeCycle != null) { -serviceLifeCycle.shutDown(this, axisService); +try { +serviceLifeCycle.shutDown(this, axisService); +} catch (Exception e) { +log.warn("Could not shutdown service " + axisService.getName(), e); +} } } }
svn commit: r1341090 - /axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/DescriptionBuilder.java
Author: azeez Date: Mon May 21 16:10:57 2012 New Revision: 1341090 URL: http://svn.apache.org/viewvc?rev=1341090&view=rev Log: Wrong error "axis2.xml no found" was shown when locked parameters are trying to be overridden Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/DescriptionBuilder.java Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/DescriptionBuilder.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/DescriptionBuilder.java?rev=1341090&r1=1341089&r2=1341090&view=diff == --- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/DescriptionBuilder.java (original) +++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/DescriptionBuilder.java Mon May 21 16:10:57 2012 @@ -553,8 +553,7 @@ public class DescriptionBuilder implemen if ((parent != null) && parent.isParameterLocked(parameter.getName())) { throw new DeploymentException(Messages.getMessage( -DeploymentErrorMsgs.CONFIG_NOT_FOUND, parameter -.getName())); +DeploymentErrorMsgs.PARAMETER_LOCKED, parameter.getName())); } else { parameter.setLocked(true); }
svn commit: r1344151 - /axis/axis2/java/core/trunk/pom.xml
Author: azeez Date: Wed May 30 08:45:35 2012 New Revision: 1344151 URL: http://svn.apache.org/viewvc?rev=1344151&view=rev Log: Test commit to check new SVN password Modified: axis/axis2/java/core/trunk/pom.xml Modified: axis/axis2/java/core/trunk/pom.xml URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/pom.xml?rev=1344151&r1=1344150&r2=1344151&view=diff == --- axis/axis2/java/core/trunk/pom.xml (original) +++ axis/axis2/java/core/trunk/pom.xml Wed May 30 08:45:35 2012 @@ -38,7 +38,7 @@ http://issues.apache.org/jira/browse/AXIS2 -modules/resource-bundle +modules/resource-bundle modules/adb modules/adb-codegen modules/addressing
svn commit: r1344152 - /axis/axis2/java/core/trunk/pom.xml
Author: azeez Date: Wed May 30 08:48:56 2012 New Revision: 1344152 URL: http://svn.apache.org/viewvc?rev=1344152&view=rev Log: Reverting previous test commit Modified: axis/axis2/java/core/trunk/pom.xml Modified: axis/axis2/java/core/trunk/pom.xml URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/pom.xml?rev=1344152&r1=1344151&r2=1344152&view=diff == --- axis/axis2/java/core/trunk/pom.xml (original) +++ axis/axis2/java/core/trunk/pom.xml Wed May 30 08:48:56 2012 @@ -38,7 +38,7 @@ http://issues.apache.org/jira/browse/AXIS2 -modules/resource-bundle +modules/resource-bundle modules/adb modules/adb-codegen modules/addressing
svn commit: r1369326 - in /axis/axis2/java/core/trunk/modules: clustering/src/org/apache/axis2/clustering/management/ clustering/src/org/apache/axis2/clustering/tribes/ kernel/src/org/apache/axis2/clu
Author: azeez Date: Sat Aug 4 13:50:58 2012 New Revision: 1369326 URL: http://svn.apache.org/viewvc?rev=1369326&view=rev Log: Support for cluster sub-domains Modified: axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/management/DefaultGroupManagementAgent.java axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/ClusterManagementMode.java axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesClusteringAgent.java axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/clustering/ClusteringAgent.java axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/clustering/Member.java Modified: axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/management/DefaultGroupManagementAgent.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/management/DefaultGroupManagementAgent.java?rev=1369326&r1=1369325&r2=1369326&view=diff == --- axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/management/DefaultGroupManagementAgent.java (original) +++ axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/management/DefaultGroupManagementAgent.java Sat Aug 4 13:50:58 2012 @@ -1,20 +1,17 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. +/* + * Copyright 2004,2005 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.axis2.clustering.management; @@ -65,9 +62,11 @@ public class DefaultGroupManagementAgent } public void applicationMemberAdded(Member member) { -Thread th = new Thread(new MemberAdder(member)); -th.setPriority(Thread.MAX_PRIORITY); -th.start(); +if (!members.contains(member)) { +Thread th = new Thread(new MemberAdder(member)); +th.setPriority(Thread.MAX_PRIORITY); +th.start(); +} } public void applicationMemberRemoved(Member member) { @@ -101,8 +100,7 @@ public class DefaultGroupManagementAgent if (canConnect(member)) { try { Thread.sleep(1); // Sleep for sometime to allow complete initialization of the node -} catch (InterruptedException e) { -e.printStackTrace(); +} catch (InterruptedException ignored) { } if (!members.contains(member)) { members.add(member); Modified: axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/ClusterManagementMode.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clustering/tribes/ClusterManagementMode.java?rev=1369326&r1=1369325&r2=1369326&view=diff == --- axis/axis2/java/core/trunk/modules/clustering/src/org/apache/axis2/clus
svn commit: r1380569 - /axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/AxisModule.java
Author: azeez Date: Tue Sep 4 11:36:29 2012 New Revision: 1380569 URL: http://svn.apache.org/viewvc?rev=1380569&view=rev Log: Performance improvement. Avoid recalculating module archive name again & again Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/AxisModule.java Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/AxisModule.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/AxisModule.java?rev=1380569&r1=1380568&r2=1380569&view=diff == --- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/AxisModule.java (original) +++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/AxisModule.java Tue Sep 4 11:36:29 2012 @@ -122,15 +122,24 @@ public class AxisModule implements Param this.name = name; } +private String archiveName; + /** * Get the archive name of this module. The archive name is the combination * of the module name and version (if available). In general it is equal to the * name of the module archive file without the suffix. - * + * * @return the archive name of the module */ public String getArchiveName() { -return version == null ? name : (name + "-" + version); +if (archiveName == null){ +if(version == null){ +archiveName = name; +} else { +archiveName = name + "-" + version; +} +} +return archiveName; } /**
svn commit: r1380578 - /axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/util/Utils.java
Author: azeez Date: Tue Sep 4 11:50:26 2012 New Revision: 1380578 URL: http://svn.apache.org/viewvc?rev=1380578&view=rev Log: Minor perf improvement Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/util/Utils.java Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/util/Utils.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/util/Utils.java?rev=1380578&r1=1380577&r2=1380578&view=diff == --- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/util/Utils.java (original) +++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/util/Utils.java Tue Sep 4 11:50:26 2012 @@ -364,7 +364,7 @@ public class Utils { } public static String getModuleName(String moduleName, String moduleVersion) { -if (moduleVersion != null && moduleVersion.length() != 0) { +if (moduleVersion != null && !moduleVersion.isEmpty()) { moduleName = moduleName + "-" + moduleVersion; } return moduleName;
svn commit: r1380588 - /axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/util/Utils.java
Author: azeez Date: Tue Sep 4 12:14:36 2012 New Revision: 1380588 URL: http://svn.apache.org/viewvc?rev=1380588&view=rev Log: Fixing build break. Axis2 is still lagging behind in terms of supported Java version upgrade Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/util/Utils.java Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/util/Utils.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/util/Utils.java?rev=1380588&r1=1380587&r2=1380588&view=diff == --- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/util/Utils.java (original) +++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/util/Utils.java Tue Sep 4 12:14:36 2012 @@ -364,7 +364,7 @@ public class Utils { } public static String getModuleName(String moduleName, String moduleVersion) { -if (moduleVersion != null && !moduleVersion.isEmpty()) { +if (moduleVersion != null && moduleVersion.length() != 0) { moduleName = moduleName + "-" + moduleVersion; } return moduleName;