You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by az...@apache.org on 2008/01/07 14:22:16 UTC
svn commit: r609597 - in /webservices/axis2/trunk/java: ./
modules/clustering/src/org/apache/axis2/clustering/tribes/
modules/kernel/conf/ modules/kernel/src/org/apache/axis2/clustering/
modules/kernel/src/org/apache/axis2/clustering/context/
Author: azeez
Date: Mon Jan 7 05:22:14 2008
New Revision: 609597
URL: http://svn.apache.org/viewvc?rev=609597&view=rev
Log:
1. Added prameter for synchronizing all nodes in a cluster
2. No need to block all requests since transport listeners do no start until the configuration context is created
Modified:
webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/AckManager.java
webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/ChannelListener.java
webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/ChannelSender.java
webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesClusterManager.java
webservices/axis2/trunk/java/modules/kernel/conf/axis2.xml
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/clustering/ClusterManager.java
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/clustering/ClusteringConstants.java
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/clustering/context/Replicator.java
webservices/axis2/trunk/java/pom.xml
Modified: webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/AckManager.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/AckManager.java?rev=609597&r1=609596&r2=609597&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/AckManager.java (original)
+++ webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/AckManager.java Mon Jan 7 05:22:14 2008
@@ -31,7 +31,7 @@
import java.util.Vector;
/**
- *
+ * This class is responsible for handling all ACKs by the members in a cluster
*/
public final class AckManager {
private static Log log = LogFactory.getLog(AckManager.class);
@@ -41,6 +41,12 @@
messageAckTable.put(command.getUniqueId(), new MessageACK(command));
}
+ /**
+ * When a particular member send an ACK for a particular message, the ACK is stored here
+ *
+ * @param messageUniqueId ID of the message being ACKed
+ * @param memberId The ID of the member who ACKed the above message
+ */
public static void addAcknowledgement(String messageUniqueId,
String memberId) {
MessageACK ack = (MessageACK) messageAckTable.get(messageUniqueId);
@@ -51,19 +57,30 @@
}
}
- public static void removeMessage(String messageUniqueId){
+ public static void removeMessage(String messageUniqueId) {
messageAckTable.remove(messageUniqueId);
}
+ /**
+ * Check whether a particular message has been ACKed by all members in a cluster. If we find that
+ * a particular message is not ACKed, we will retransmit the message to the member who did not ACK
+ * and then return false.
+ *
+ * @param messageUniqueId ID of the message being ACKed
+ * @param sender
+ * @return true - if all members have ACKed the message, false - otherwise
+ * @throws ClusteringFault
+ */
public static boolean isMessageAcknowledged(String messageUniqueId,
ChannelSender sender) throws ClusteringFault {
boolean isAcknowledged = false;
- if(messageUniqueId == null){
+ boolean isReturnValueSet = false;
+ if (messageUniqueId == null) {
return true;
}
MessageACK ack = (MessageACK) messageAckTable.get(messageUniqueId);
- if(ack == null){ // If the message is not found, treat it as ACKed
+ if (ack == null) { // If the message is not found, treat it as ACKed
return true;
}
@@ -90,21 +107,29 @@
" to member " + memberHost);
}
- isAcknowledged = false;
- break;
+ if (!isReturnValueSet) {
+ isAcknowledged = false;
+ isReturnValueSet = true;
+ }
} else {
- isAcknowledged = true;
+ if (!isReturnValueSet) {
+ isAcknowledged = true;
+ }
}
}
}
- // If a message is ACKed, we don't have to keep track of it in our ackTbl anymore
+ // If a message is ACKed by all members, we don't have to keep track of
+ // it in our ackTbl anymore
if (isAcknowledged) {
messageAckTable.remove(messageUniqueId);
}
return isAcknowledged;
}
+ /**
+ * Data structure for holding the ACKs for each message
+ */
private static class MessageACK {
private ContextClusteringCommand command;
private List memberList = new Vector();
Modified: webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/ChannelListener.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/ChannelListener.java?rev=609597&r1=609596&r2=609597&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/ChannelListener.java (original)
+++ webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/ChannelListener.java Mon Jan 7 05:22:14 2008
@@ -148,8 +148,7 @@
configurationManager != null) {
configurationManager.process((ConfigurationClusteringCommand) msg);
} else if (msg instanceof ControlCommand && controlCommandProcessor != null) {
- controlCommandProcessor.process((ControlCommand) msg,
- sender);
+ controlCommandProcessor.process((ControlCommand) msg, sender);
}
}
}
Modified: webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/ChannelSender.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/ChannelSender.java?rev=609597&r1=609596&r2=609597&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/ChannelSender.java (original)
+++ webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/ChannelSender.java Mon Jan 7 05:22:14 2008
@@ -24,6 +24,7 @@
import org.apache.axis2.clustering.MessageSender;
import org.apache.catalina.tribes.ByteMessage;
import org.apache.catalina.tribes.Channel;
+import org.apache.catalina.tribes.ChannelException;
import org.apache.catalina.tribes.Member;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -72,6 +73,42 @@
return timeToSend;
}
+ public long sendToGroup(ClusteringCommand msg, Member[] members) throws ClusteringFault {
+ if (channel == null) {
+ return 0;
+ }
+ long timeToSend = 0;
+
+ // Keep retrying, since at the point of trying to send the msg, a member may leave the group
+ // causing a view change. All nodes in a view should get the msg
+ //TODO: Sometimes Tribes incorrectly detects that a member has left a group
+ while (true) {
+ if (channel.getMembers().length > 0) {
+ try {
+ long start = System.currentTimeMillis();
+ channel.send(channel.getMembers(), toByteMessage(msg), Channel.SEND_OPTIONS_USE_ACK);
+ timeToSend = System.currentTimeMillis() - start;
+ log.debug("Sent " + msg + " to group");
+ break;
+ } catch (NotSerializableException e) {
+ String message = "Could not send command message " + msg +
+ " to group since it is not serializable.";
+ log.error(message, e);
+ throw new ClusteringFault(message, e);
+ } catch (ChannelException e) {
+
+ } catch (Exception e) {
+ String message = "Error sending command message : " + msg +
+ ". Reason " + e.getMessage();
+ log.warn(message, e);
+ }
+ } else {
+ break;
+ }
+ }
+ return timeToSend;
+ }
+
private ByteMessage toByteMessage(ClusteringCommand msg) throws IOException {
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ObjectOutputStream out = new ObjectOutputStream(bos);
@@ -105,7 +142,7 @@
log.debug("Sent " + cmd + " to " + TribesUtil.getHost(member));
}
} catch (NotSerializableException e) {
- String message = "Could not send command message to " + TribesUtil.getHost(member) +
+ String message = "Could not send command message to " + TribesUtil.getHost(member) +
" since it is not serializable.";
log.error(message, e);
throw new ClusteringFault(message, e);
Modified: webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesClusterManager.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesClusterManager.java?rev=609597&r1=609596&r2=609597&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesClusterManager.java (original)
+++ webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesClusterManager.java Mon Jan 7 05:22:14 2008
@@ -46,6 +46,7 @@
import org.apache.catalina.tribes.Member;
import org.apache.catalina.tribes.group.GroupChannel;
import org.apache.catalina.tribes.group.interceptors.DomainFilterInterceptor;
+import org.apache.catalina.tribes.group.interceptors.TcpFailureDetector;
import org.apache.catalina.tribes.transport.ReceiverBase;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -83,8 +84,6 @@
public void init() throws ClusteringFault {
- // Until the clustering stuff is properly initialized, we have to block.
- configurationContext.setProperty(ClusteringConstants.BLOCK_ALL_REQUESTS, "true");
AxisConfiguration axisConfig = configurationContext.getAxisConfiguration();
for (Iterator iterator = axisConfig.getInFlowPhases().iterator();
iterator.hasNext();) {
@@ -134,7 +133,8 @@
controlCmdProcessor.setChannelSender(sender);
channel = new GroupChannel();
- String localIP = System.getProperty(ClusteringConstants.LOCAL_IP_ADDRESS);
+ // Set the IP address that will be advertised by this node
+ String localIP = System.getProperty(ClusteringConstants.LOCAL_IP_ADDRESS);
if (localIP != null) {
ReceiverBase receiver = (ReceiverBase) channel.getChannelReceiver();
receiver.setAddress(localIP);
@@ -174,10 +174,10 @@
mcastProps.setProperty("tcpListenPort", "4000");
mcastProps.setProperty("tcpListenHost", "127.0.0.1");*/
- /*TcpFailureDetector tcpFailureDetector = new TcpFailureDetector();
- tcpFailureDetector.setPrevious(nbc);
+ TcpFailureDetector tcpFailureDetector = new TcpFailureDetector();
+ tcpFailureDetector.setPrevious(dfi);
channel.addInterceptor(tcpFailureDetector);
- tcpFailureDetector.*/
+// tcpFailureDetector.
channel.addChannelListener(channelListener);
TribesMembershipListener membershipListener = new TribesMembershipListener();
@@ -189,7 +189,9 @@
channel.stop(Channel.DEFAULT);
throw new ClusteringFault("Cannot join cluster using IP " + localHost +
". Please set an IP address other than " +
- localHost + " in your /etc/hosts file and retry.");
+ localHost + " in your /etc/hosts file or set the " +
+ ClusteringConstants.LOCAL_IP_ADDRESS +
+ " System property and retry.");
}
} catch (ChannelException e) {
throw new ClusteringFault("Error starting Tribes channel", e);
@@ -200,12 +202,14 @@
log.info("Local Tribes Member " + TribesUtil.getLocalHost(channel));
TribesUtil.printMembers(members);
- if (configurationManager != null) { // If configuration management is enabled, get the latest config from a neighbour
+ // If configuration management is enabled, get the latest config from a neighbour
+ if (configurationManager != null) {
configurationManager.setSender(sender);
getInitializationMessage(members, sender, new GetConfigurationCommand());
}
- if (contextManager != null) { // If context replication is enabled, get the latest state from a neighbour
+ // If context replication is enabled, get the latest state from a neighbour
+ if (contextManager != null) {
contextManager.setSender(sender);
channelListener.setContextManager(contextManager);
getInitializationMessage(members, sender, new GetStateCommand());
@@ -214,7 +218,6 @@
}
configurationContext.
setNonReplicableProperty(ClusteringConstants.CLUSTER_INITIALIZED, "true");
- configurationContext.removeProperty(ClusteringConstants.BLOCK_ALL_REQUESTS);
}
/**
@@ -322,5 +325,13 @@
if (channelListener != null) {
channelListener.setConfigurationContext(configurationContext);
}
+ }
+
+ public boolean synchronizeAllMembers() {
+ Parameter syncAllParam = getParameter(ClusteringConstants.SYNCHRONIZE_ALL_MEMBERS);
+ if (syncAllParam == null) {
+ return true;
+ }
+ return Boolean.parseBoolean((String) syncAllParam.getValue());
}
}
Modified: webservices/axis2/trunk/java/modules/kernel/conf/axis2.xml
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/conf/axis2.xml?rev=609597&r1=609596&r2=609597&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/conf/axis2.xml (original)
+++ webservices/axis2/trunk/java/modules/kernel/conf/axis2.xml Mon Jan 7 05:22:14 2008
@@ -350,6 +350,7 @@
<cluster class="org.apache.axis2.cluster.tribes.TribesClusterManager">
<parameter name="param1">value1</parameter>
<parameter name="domain">apache.axis2.domain</parameter>
+ <parameter name="synchronizeAll">true</parameter>
<configurationManager class="org.apache.axis2.cluster.configuration.TribesConfigurationManager">
<listener class="org.apache.axis2.cluster.configuration.DefaultConfigurationManagerListener"/>
</configurationManager>
Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/clustering/ClusterManager.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/clustering/ClusterManager.java?rev=609597&r1=609596&r2=609597&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/clustering/ClusterManager.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/clustering/ClusterManager.java Mon Jan 7 05:22:14 2008
@@ -21,9 +21,8 @@
import org.apache.axis2.clustering.configuration.ConfigurationManager;
import org.apache.axis2.clustering.context.ContextManager;
-import org.apache.axis2.description.ParameterInclude;
import org.apache.axis2.context.ConfigurationContext;
-import org.apache.axis2.engine.Handler;
+import org.apache.axis2.description.ParameterInclude;
/**
* This is the main interface in the Axis2 clustering implementation.
@@ -70,5 +69,15 @@
* @param configurationContext
*/
void setConfigurationContext(ConfigurationContext configurationContext);
+
+ /**
+ * Method to check whether all members in the cluster have to be kep in sync at all times.
+ * Typically, this will require each member in the cluster to ACKnowledge receipt of a
+ * particular message, which may have a significant performance hit.
+ *
+ * @return true - if all members in the cluster should be kept in sync at all times,
+ * false otherwise
+ */
+ boolean synchronizeAllMembers();
}
Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/clustering/ClusteringConstants.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/clustering/ClusteringConstants.java?rev=609597&r1=609596&r2=609597&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/clustering/ClusteringConstants.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/clustering/ClusteringConstants.java Mon Jan 7 05:22:14 2008
@@ -20,17 +20,31 @@
package org.apache.axis2.clustering;
+/**
+ * All constants used by the Axis2 clustering implementation
+ */
public final class ClusteringConstants {
private ClusteringConstants() {
}
public static final String AVOID_INITIATION_KEY = "AvoidInitiation";
+
+ /**
+ * The clustering domain/group. Nodes in the same group will belong to the same multicast domain.
+ * There will not be interference between nodes in different group.
+ */
public static final String DOMAIN = "domain";
+
public static final String NODE_MANAGER_SERVICE = "Axis2NodeManager";
public static final String REQUEST_BLOCKING_HANDLER = "RequestBlockingHandler";
public static final String CLUSTER_INITIALIZED = "local_cluster.initialized";
public static final String TIME_TO_SEND = "local_cluster.time.to.send";
public static final String BLOCK_ALL_REQUESTS = "local_wso2wsas.block.requests";
public static final String LOCAL_IP_ADDRESS = "axis2.local.ip.address";
+
+ /**
+ * Synchronize the states of all members in the cluster
+ */
+ public static final String SYNCHRONIZE_ALL_MEMBERS = "synchronizeAll";
}
Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/clustering/context/Replicator.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/clustering/context/Replicator.java?rev=609597&r1=609596&r2=609597&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/clustering/context/Replicator.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/clustering/context/Replicator.java Mon Jan 7 05:22:14 2008
@@ -33,6 +33,9 @@
import java.util.ArrayList;
import java.util.List;
+/**
+ * Replicates serializable properties
+ */
public final class Replicator {
private static final Log log = LogFactory.getLog(Replicator.class);
@@ -77,7 +80,9 @@
AbstractContext[] contextArray =
(AbstractContext[]) contexts.toArray(new AbstractContext[contexts.size()]);
String msgUUID = contextManager.updateContexts(contextArray);
- waitForACKs(contextManager, msgUUID, msgContext.getRootContext());
+ if (getClusterManager(msgContext).synchronizeAllMembers()) {
+ waitForACKs(contextManager, msgUUID, msgContext.getRootContext());
+ }
}
}
@@ -95,7 +100,9 @@
ContextManager contextManager = getContextManager(abstractContext);
if (!abstractContext.getPropertyDifferences().isEmpty()) {
String msgUUID = contextManager.updateContext(abstractContext);
- waitForACKs(contextManager, msgUUID, abstractContext.getRootContext());
+ if (getClusterManager(abstractContext).synchronizeAllMembers()) {
+ waitForACKs(contextManager, msgUUID, abstractContext.getRootContext());
+ }
}
}
@@ -116,14 +123,18 @@
ContextManager contextManager = getContextManager(abstractContext);
String msgUUID = contextManager.updateContext(abstractContext, propertyNames);
if (msgUUID != null) {
- waitForACKs(contextManager, msgUUID, abstractContext.getRootContext());
+ if (getClusterManager(abstractContext).synchronizeAllMembers()) {
+ waitForACKs(contextManager, msgUUID, abstractContext.getRootContext());
+ }
}
}
+ private static ClusterManager getClusterManager(AbstractContext abstractContext) {
+ return abstractContext.getRootContext().getAxisConfiguration().getClusterManager();
+ }
+
private static ContextManager getContextManager(AbstractContext abstractContext) {
- ClusterManager clusterManager =
- abstractContext.getRootContext().getAxisConfiguration().getClusterManager();
- return clusterManager.getContextManager();
+ return getClusterManager(abstractContext).getContextManager();
}
/**
@@ -162,6 +173,7 @@
private static void waitForACKs(ContextManager contextManager,
String msgUUID,
ConfigurationContext configCtx) throws ClusteringFault {
+
long start = System.currentTimeMillis();
// Wait till all members have ACKed receipt & successful processing of
Modified: webservices/axis2/trunk/java/pom.xml
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/pom.xml?rev=609597&r1=609596&r2=609597&view=diff
==============================================================================
--- webservices/axis2/trunk/java/pom.xml (original)
+++ webservices/axis2/trunk/java/pom.xml Mon Jan 7 05:22:14 2008
@@ -17,255 +17,258 @@
~ specific language governing permissions and limitations
~ under the License.
-->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <parent>
- <groupId>org.apache</groupId>
- <artifactId>apache</artifactId>
- <version>3</version>
- </parent>
- <modelVersion>4.0.0</modelVersion>
- <groupId>org.apache.axis2</groupId>
- <artifactId>axis2</artifactId>
- <version>SNAPSHOT</version>
- <packaging>pom</packaging>
- <name>Apache Axis 2.0 - Root</name>
- <modules>
- <module>modules/adb</module>
- <module>modules/adb-codegen</module>
- <module>modules/addressing</module>
- <module>modules/codegen</module>
- <module>modules/fastinfoset</module>
- <module>modules/integration</module>
- <module>modules/java2wsdl</module>
- <module>modules/jibx</module>
- <module>modules/json</module>
- <module>modules/kernel</module>
- <module>modules/mex</module>
- <module>modules/mex-mar</module>
- <module>modules/mtompolicy</module>
- <module>modules/parent</module>
- <module>modules/ping</module>
- <module>modules/samples/version</module>
- <module>modules/soapmonitor</module>
- <module>modules/spring</module>
- <module>modules/tool/axis2-aar-maven-plugin</module>
- <module>modules/tool/axis2-ant-plugin</module>
- <module>modules/tool/axis2-eclipse-codegen-plugin</module>
- <module>modules/tool/axis2-eclipse-service-plugin</module>
- <module>modules/tool/axis2-idea-plugin</module>
- <module>modules/tool/axis2-java2wsdl-maven-plugin</module>
- <module>modules/tool/axis2-mar-maven-plugin</module>
- <module>modules/tool/axis2-wsdl2code-maven-plugin</module>
- <module>modules/webapp</module>
- <module>modules/xmlbeans</module>
- <module>modules/samples</module>
- <module>modules/scripting</module>
- <module>modules/rmi</module>
- </modules>
- <profiles>
- <profile>
- <activation>
- <property>
- <name>release</name>
- </property>
- </activation>
- <modules>
- <module>modules/documentation</module>
- <module>modules/distribution</module>
- </modules>
- </profile>
- <profile>
- <id>java14</id>
- <activation>
- <jdk>1.4</jdk>
- </activation>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-antrun-plugin</artifactId>
- <executions>
- <execution>
- <id>axis2-jar</id>
- <phase>package</phase>
- <configuration>
- <tasks>
- <mkdir dir="target/lib"/>
- <jar destfile="target/lib/axis2-${pom.version}.jar">
- <fileset dir="modules/java2wsdl/target/classes"/>
- <fileset dir="modules/kernel/target/classes"/>
- <fileset dir="modules/addressing/target/classes"/>
- <fileset dir="modules/codegen/target/classes"/>
- <fileset dir="modules/adb/target/classes"/>
- <fileset dir="modules/adb-codegen/target/classes"/>
- <fileset dir="modules/xmlbeans/target/classes"/>
- </jar>
- </tasks>
- </configuration>
- <goals>
- <goal>run</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
- </profile>
- <profile>
- <id>java15</id>
- <activation>
- <jdk>1.5</jdk>
- </activation>
- <modules>
- <module>modules/jaxbri</module>
- <module>modules/metadata</module>
- <module>modules/saaj-api</module>
- <module>modules/saaj</module>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <groupId>org.apache</groupId>
+ <artifactId>apache</artifactId>
+ <version>3</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.apache.axis2</groupId>
+ <artifactId>axis2</artifactId>
+ <version>SNAPSHOT</version>
+ <packaging>pom</packaging>
+ <name>Apache Axis 2.0 - Root</name>
+ <modules>
+ <module>modules/adb</module>
+ <module>modules/adb-codegen</module>
+ <module>modules/addressing</module>
+ <module>modules/codegen</module>
+ <module>modules/fastinfoset</module>
+ <module>modules/integration</module>
+ <module>modules/java2wsdl</module>
+ <module>modules/jibx</module>
+ <module>modules/json</module>
+ <module>modules/kernel</module>
+ <module>modules/mex</module>
+ <module>modules/mex-mar</module>
+ <module>modules/mtompolicy</module>
+ <module>modules/parent</module>
+ <module>modules/ping</module>
+ <module>modules/samples/version</module>
+ <module>modules/soapmonitor</module>
+ <module>modules/spring</module>
+ <module>modules/tool/axis2-aar-maven-plugin</module>
+ <module>modules/tool/axis2-ant-plugin</module>
+ <module>modules/tool/axis2-eclipse-codegen-plugin</module>
+ <module>modules/tool/axis2-eclipse-service-plugin</module>
+ <module>modules/tool/axis2-idea-plugin</module>
+ <module>modules/tool/axis2-java2wsdl-maven-plugin</module>
+ <module>modules/tool/axis2-mar-maven-plugin</module>
+ <module>modules/tool/axis2-wsdl2code-maven-plugin</module>
+ <module>modules/webapp</module>
+ <module>modules/xmlbeans</module>
+ <module>modules/samples</module>
+ <module>modules/scripting</module>
+ <module>modules/rmi</module>
+ </modules>
+ <profiles>
+ <profile>
+ <activation>
+ <property>
+ <name>release</name>
+ </property>
+ </activation>
+ <modules>
+ <module>modules/documentation</module>
+ <module>modules/distribution</module>
+ </modules>
+ </profile>
+ <profile>
+ <id>java14</id>
+ <activation>
+ <jdk>1.4</jdk>
+ </activation>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>axis2-jar</id>
+ <phase>package</phase>
+ <configuration>
+ <tasks>
+ <mkdir dir="target/lib"/>
+ <jar destfile="target/lib/axis2-${pom.version}.jar">
+ <fileset dir="modules/java2wsdl/target/classes"/>
+ <fileset dir="modules/kernel/target/classes"/>
+ <fileset dir="modules/addressing/target/classes"/>
+ <fileset dir="modules/codegen/target/classes"/>
+ <fileset dir="modules/adb/target/classes"/>
+ <fileset dir="modules/adb-codegen/target/classes"/>
+ <fileset dir="modules/xmlbeans/target/classes"/>
+ </jar>
+ </tasks>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ <profile>
+ <id>java15</id>
+ <activation>
+ <jdk>1.5</jdk>
+ </activation>
+ <modules>
+ <module>modules/jaxbri</module>
+ <module>modules/metadata</module>
+ <module>modules/saaj-api</module>
+ <module>modules/saaj</module>
<module>modules/jws-api</module>
- <module>modules/jaxws-api</module>
- <module>modules/jaxws</module>
- <module>modules/clustering</module>
- <module>modules/corba</module>
- </modules>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-antrun-plugin</artifactId>
- <executions>
- <execution>
- <id>axis2-jar</id>
- <phase>package</phase>
- <configuration>
- <tasks>
- <mkdir dir="target/lib"/>
- <jar destfile="target/lib/axis2-${pom.version}.jar">
- <fileset dir="modules/java2wsdl/target/classes"/>
- <fileset dir="modules/kernel/target/classes"/>
- <fileset dir="modules/addressing/target/classes"/>
- <fileset dir="modules/codegen/target/classes"/>
- <fileset dir="modules/adb/target/classes"/>
- <fileset dir="modules/adb-codegen/target/classes"/>
- <fileset dir="modules/xmlbeans/target/classes"/>
- <fileset dir="modules/clustering/target/classes"/>
- </jar>
- </tasks>
- </configuration>
- <goals>
- <goal>run</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
- </profile>
- <profile>
- <id>java16</id>
- <activation>
- <jdk>1.6</jdk>
- </activation>
- <modules>
- <module>modules/jaxbri</module>
- <module>modules/metadata</module>
- <module>modules/saaj-api</module>
- <module>modules/saaj</module>
+ <module>modules/jaxws-api</module>
+ <module>modules/jaxws</module>
+ <module>modules/clustering</module>
+ <module>modules/corba</module>
+ </modules>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>axis2-jar</id>
+ <phase>package</phase>
+ <configuration>
+ <tasks>
+ <mkdir dir="target/lib"/>
+ <jar destfile="target/lib/axis2-${pom.version}.jar">
+ <fileset dir="modules/java2wsdl/target/classes"/>
+ <fileset dir="modules/kernel/target/classes"/>
+ <fileset dir="modules/addressing/target/classes"/>
+ <fileset dir="modules/codegen/target/classes"/>
+ <fileset dir="modules/adb/target/classes"/>
+ <fileset dir="modules/adb-codegen/target/classes"/>
+ <fileset dir="modules/xmlbeans/target/classes"/>
+ <fileset dir="modules/clustering/target/classes"/>
+ </jar>
+ </tasks>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ <profile>
+ <id>java16</id>
+ <activation>
+ <jdk>1.6</jdk>
+ </activation>
+ <modules>
+ <module>modules/jaxbri</module>
+ <module>modules/metadata</module>
+ <module>modules/saaj-api</module>
+ <module>modules/saaj</module>
<module>modules/jws-api</module>
- <module>modules/jaxws-api</module>
- <module>modules/jaxws</module>
- <module>modules/clustering</module>
- <module>modules/corba</module>
- </modules>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-antrun-plugin</artifactId>
- <executions>
- <execution>
- <id>axis2-jar</id>
- <phase>package</phase>
- <configuration>
- <tasks>
- <mkdir dir="target/lib"/>
- <jar destfile="target/lib/axis2-${pom.version}.jar">
- <fileset dir="modules/java2wsdl/target/classes"/>
- <fileset dir="modules/kernel/target/classes"/>
- <fileset dir="modules/addressing/target/classes"/>
- <fileset dir="modules/codegen/target/classes"/>
- <fileset dir="modules/adb/target/classes"/>
- <fileset dir="modules/adb-codegen/target/classes"/>
- <fileset dir="modules/xmlbeans/target/classes"/>
- <fileset dir="modules/clustering/target/classes"/>
- </jar>
- </tasks>
- </configuration>
- <goals>
- <goal>run</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
- </profile>
- </profiles>
- <ciManagement>
- <system>continuum</system>
- <url>http://vmbuild.apache.org/continuum</url>
- <notifiers>
- <notifier>
- <configuration>
- <ADDRESS>axis2-cvs@ws.apache.org</ADDRESS>
- </configuration>
- </notifier>
- </notifiers>
- </ciManagement>
- <scm>
- <connection>
- scm:svn:http://svn.apache.org/repos/asf/webservices/axis2/trunk/java/
- </connection>
- <developerConnection>
- scm:svn:https://svn.apache.org/repos/asf/webservices/axis2/trunk/java/
- </developerConnection>
- <url>http://svn.apache.org/viewvc/webservices/webservices/axis2/trunk/java/</url>
- </scm>
- <distributionManagement>
- <repository>
- <id>apache-repo</id>
- <name>Maven Central Repository</name>
- <url>
- scpexe://people.apache.org//www/people.apache.org/repo/m2-ibiblio-rsync-repository</url>
- </repository>
- <snapshotRepository>
- <id>apache-snapshots</id>
- <name>Apache Development Repository</name>
- <url>scpexe://people.apache.org//www/people.apache.org/repo/m2-snapshot-repository</url>
- </snapshotRepository>
- </distributionManagement>
- <build>
- <plugins>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>build-helper-maven-plugin</artifactId>
- <executions>
- <execution>
- <id>axis2-jar-package</id>
- <phase>package</phase>
- <goals>
- <goal>attach-artifact</goal>
- </goals>
- <configuration>
- <artifacts>
- <artifact>
- <file>target/lib/axis2-${pom.version}.jar</file>
- <type>jar</type>
- </artifact>
- </artifacts>
- </configuration>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
+ <module>modules/jaxws-api</module>
+ <module>modules/jaxws</module>
+ <module>modules/clustering</module>
+ <module>modules/corba</module>
+ </modules>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>axis2-jar</id>
+ <phase>package</phase>
+ <configuration>
+ <tasks>
+ <mkdir dir="target/lib"/>
+ <jar destfile="target/lib/axis2-${pom.version}.jar">
+ <fileset dir="modules/java2wsdl/target/classes"/>
+ <fileset dir="modules/kernel/target/classes"/>
+ <fileset dir="modules/addressing/target/classes"/>
+ <fileset dir="modules/codegen/target/classes"/>
+ <fileset dir="modules/adb/target/classes"/>
+ <fileset dir="modules/adb-codegen/target/classes"/>
+ <fileset dir="modules/xmlbeans/target/classes"/>
+ <fileset dir="modules/clustering/target/classes"/>
+ </jar>
+ </tasks>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+ <ciManagement>
+ <system>continuum</system>
+ <url>http://vmbuild.apache.org/continuum</url>
+ <notifiers>
+ <notifier>
+ <configuration>
+ <ADDRESS>axis2-cvs@ws.apache.org</ADDRESS>
+ </configuration>
+ </notifier>
+ </notifiers>
+ </ciManagement>
+ <scm>
+ <connection>
+ scm:svn:http://svn.apache.org/repos/asf/webservices/axis2/trunk/java/
+ </connection>
+ <developerConnection>
+ scm:svn:https://svn.apache.org/repos/asf/webservices/axis2/trunk/java/
+ </developerConnection>
+ <url>http://svn.apache.org/viewvc/webservices/webservices/axis2/trunk/java/</url>
+ </scm>
+ <distributionManagement>
+ <repository>
+ <id>apache-repo</id>
+ <name>Maven Central Repository</name>
+ <url>
+ scpexe://people.apache.org//www/people.apache.org/repo/m2-ibiblio-rsync-repository
+ </url>
+ </repository>
+ <snapshotRepository>
+ <id>apache-snapshots</id>
+ <name>Apache Development Repository</name>
+ <url>scpexe://people.apache.org//www/people.apache.org/repo/m2-snapshot-repository</url>
+ </snapshotRepository>
+ </distributionManagement>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>build-helper-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>axis2-jar-package</id>
+ <phase>package</phase>
+ <goals>
+ <goal>attach-artifact</goal>
+ </goals>
+ <configuration>
+ <artifacts>
+ <artifact>
+ <file>target/lib/axis2-${pom.version}.jar</file>
+ <type>jar</type>
+ </artifact>
+ </artifacts>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
</project>
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org