You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sa...@apache.org on 2013/01/16 21:31:16 UTC
svn commit: r1434368 - in /airavata/trunk/modules: commons/utils/
commons/utils/src/main/java/org/apache/airavata/common/utils/
distribution/airavata-server/
distribution/airavata-server/src/main/resources/conf/ integration-tests/
registry/airavata-jpa...
Author: samindaw
Date: Wed Jan 16 20:31:15 2013
New Revision: 1434368
URL: http://svn.apache.org/viewvc?rev=1434368&view=rev
Log:
read port from existing tomcat if present + create airavata server WAR + install artifacts to maven repo (https://issues.apache.org/jira/browse/AIRAVATA-726 + https://issues.apache.org/jira/browse/AIRAVATA-727)
Modified:
airavata/trunk/modules/commons/utils/pom.xml
airavata/trunk/modules/commons/utils/src/main/java/org/apache/airavata/common/utils/ServerSettings.java
airavata/trunk/modules/commons/utils/src/main/java/org/apache/airavata/common/utils/ServiceUtils.java
airavata/trunk/modules/distribution/airavata-server/pom.xml
airavata/trunk/modules/distribution/airavata-server/src/main/resources/conf/airavata-server.properties
airavata/trunk/modules/integration-tests/pom.xml
airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/AiravataJPARegistry.java
Modified: airavata/trunk/modules/commons/utils/pom.xml
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/commons/utils/pom.xml?rev=1434368&r1=1434367&r2=1434368&view=diff
==============================================================================
--- airavata/trunk/modules/commons/utils/pom.xml (original)
+++ airavata/trunk/modules/commons/utils/pom.xml Wed Jan 16 20:31:15 2013
@@ -91,6 +91,11 @@
<artifactId>derbytools</artifactId>
<version>${derby.version}</version>
</dependency>
+ <dependency>
+ <groupId>org.apache.tomcat.embed</groupId>
+ <artifactId>tomcat-embed-core</artifactId>
+ <version>7.0.22</version>
+ </dependency>
<!-- Testing -->
<dependency>
Modified: airavata/trunk/modules/commons/utils/src/main/java/org/apache/airavata/common/utils/ServerSettings.java
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/commons/utils/src/main/java/org/apache/airavata/common/utils/ServerSettings.java?rev=1434368&r1=1434367&r2=1434368&view=diff
==============================================================================
--- airavata/trunk/modules/commons/utils/src/main/java/org/apache/airavata/common/utils/ServerSettings.java (original)
+++ airavata/trunk/modules/commons/utils/src/main/java/org/apache/airavata/common/utils/ServerSettings.java Wed Jan 16 20:31:15 2013
@@ -21,8 +21,21 @@
package org.apache.airavata.common.utils;
-import org.apache.airavata.common.exception.ApplicationSettingsException;
+import java.util.ArrayList;
+
+import javax.management.InstanceNotFoundException;
+import javax.management.MBeanServer;
+import javax.management.MBeanServerFactory;
+import javax.management.ObjectName;
+import org.apache.airavata.common.exception.ApplicationSettingsException;
+import org.apache.catalina.Server;
+import org.apache.catalina.Service;
+import org.apache.catalina.connector.Connector;
+import org.apache.coyote.ProtocolHandler;
+import org.apache.coyote.http11.Http11AprProtocol;
+import org.apache.coyote.http11.Http11NioProtocol;
+import org.apache.coyote.http11.Http11Protocol;
public class ServerSettings extends ApplicationSettings{
private static final String DEFAULT_GATEWAY_ID="gateway.id";
@@ -30,6 +43,8 @@ public class ServerSettings extends Appl
private static final String SYSTEM_USER_PASSWORD="system.password";
private static final String SYSTEM_USER_GATEWAY="system.gateway";
private static final String TOMCAT_PORT = "port";
+ private static final String SERVER_CONTEXT_ROOT="server.context-root";
+ private static String tomcatPort=null;
public static String getDefaultGatewayId()throws ApplicationSettingsException{
return getSetting(DEFAULT_GATEWAY_ID);
@@ -47,7 +62,59 @@ public class ServerSettings extends Appl
return getSetting(SYSTEM_USER_GATEWAY);
}
+ public static String getServerContextRoot(){
+ return getSetting(SERVER_CONTEXT_ROOT,"axis2");
+ }
+
public static String getTomcatPort() throws ApplicationSettingsException {
- return getSetting(TOMCAT_PORT);
+ if (tomcatPort==null) {
+ try {
+ //First try to get the port from a tomcat if it is already running
+ ArrayList<MBeanServer> mBeanServers = MBeanServerFactory
+ .findMBeanServer(null);
+ if (mBeanServers.size() > 0) {
+ MBeanServer mBeanServer = mBeanServers.get(0);
+ Server server = null;
+ String[] domains = mBeanServer.getDomains();
+ for (String domain : domains) {
+ try {
+ server = (Server) mBeanServer.getAttribute(
+ new ObjectName(domain, "type", "Server"),
+ "managedResource");
+ break;
+ } catch (InstanceNotFoundException e) {
+ //ignore
+ }
+ }
+ if (server != null) {
+ Service[] findServices = server.findServices();
+ for (Service service : findServices) {
+ for (Connector connector : service.findConnectors()) {
+ ProtocolHandler protocolHandler = connector.getProtocolHandler();
+ if (protocolHandler instanceof Http11Protocol
+ || protocolHandler instanceof Http11AprProtocol
+ || protocolHandler instanceof Http11NioProtocol) {
+ Http11Protocol p = (Http11Protocol) protocolHandler;
+ if (p.getSslImplementationName() == null
+ || p.getSslImplementationName()
+ .equals("")) {
+ tomcatPort = String.valueOf(connector
+ .getPort());
+ }
+ }
+ }
+ }
+ }
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ //if unable to determine the server port from a running tomcat server, get it from
+ //the server settings file
+ if (tomcatPort == null) {
+ tomcatPort = getSetting(TOMCAT_PORT);
+ }
+ }
+ return tomcatPort;
}
}
Modified: airavata/trunk/modules/commons/utils/src/main/java/org/apache/airavata/common/utils/ServiceUtils.java
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/commons/utils/src/main/java/org/apache/airavata/common/utils/ServiceUtils.java?rev=1434368&r1=1434367&r2=1434368&view=diff
==============================================================================
--- airavata/trunk/modules/commons/utils/src/main/java/org/apache/airavata/common/utils/ServiceUtils.java (original)
+++ airavata/trunk/modules/commons/utils/src/main/java/org/apache/airavata/common/utils/ServiceUtils.java Wed Jan 16 20:31:15 2013
@@ -60,7 +60,7 @@ public class ServiceUtils {
}
try {
- port = (String) ServerSettings.getSetting(PORT);
+ port = (String) ServerSettings.getTomcatPort();
} catch (ApplicationSettingsException e) {
//we will ignore this exception since the properties file will not contain the values
//when it is ok to retrieve them from the axis2 context
@@ -71,14 +71,17 @@ public class ServiceUtils {
.getAxisConfiguration().getTransportsIn()
.get("http");
if (transportInDescription != null
- && transportInDescription.getParameter("port") != null) {
+ && transportInDescription.getParameter(PORT) != null) {
port = (String) transportInDescription
- .getParameter("port").getValue();
+ .getParameter(PORT).getValue();
}
}
localAddress = "http://" + localAddress + ":" + port;
localAddress = localAddress + "/"
- + context.getContextRoot() + "/"
+ //We are not using axis2 config context to get the context root because it is invalid
+ //+ context.getContextRoot() + "/"
+ //FIXME: the context root will be correct after updating the web.xml
+ + ServerSettings.getServerContextRoot() + "/"
+ context.getServicePath() + "/"
+ serviceName;
log.debug("Service Address Configured:" + localAddress);
Modified: airavata/trunk/modules/distribution/airavata-server/pom.xml
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/distribution/airavata-server/pom.xml?rev=1434368&r1=1434367&r2=1434368&view=diff
==============================================================================
--- airavata/trunk/modules/distribution/airavata-server/pom.xml (original)
+++ airavata/trunk/modules/distribution/airavata-server/pom.xml Wed Jan 16 20:31:15 2013
@@ -18,7 +18,7 @@
</parent>
<modelVersion>4.0.0</modelVersion>
- <artifactId>airavata-server-distribution</artifactId>
+ <artifactId>apache-airavata-server</artifactId>
<name>Airavata server distribution</name>
<packaging>pom</packaging>
<url>http://airavata.apache.org/</url>
@@ -45,7 +45,7 @@
<version>${axis2.version}</version>
<type>war</type>
<overWrite>true</overWrite>
- <outputDirectory>target/axis2-${axis2.version}</outputDirectory>
+ <outputDirectory>${project.build.directory}/axis2-${axis2.version}</outputDirectory>
</artifactItem>
</artifactItems>
<excludes>**/icu4j-2.6.1.jar</excludes>
@@ -97,6 +97,94 @@
</execution>
</executions>
</plugin>
+ <plugin>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>generate-war</id>
+ <phase>package</phase>
+ <configuration>
+ <target>
+ <echo message="Building Airavata Server WAR" />
+ <echo message="============================" />
+ <unzip src="${airavata.bin.zip}" dest="${project.build.directory}/tests"/>
+ <copy todir="${airavata.webapp.dir}/META-INF">
+ <fileset dir="${project.build.directory}/axis2-${axis2.version}/META-INF"/>
+ </copy>
+ <copy todir="${airavata.webapp.dir}/axis2-web">
+ <fileset dir="${project.build.directory}/axis2-${axis2.version}/axis2-web"/>
+ </copy>
+ <copy todir="${airavata.webapp.dir}/WEB-INF">
+ <fileset dir="${project.build.directory}/axis2-${axis2.version}/WEB-INF"/>
+ </copy>
+ <copy todir="${airavata.webapp.dir}/WEB-INF">
+ <fileset dir="${airavata.work.dir}/repository/"/>
+ </copy>
+ <copy todir="${airavata.webapp.dir}/WEB-INF/lib">
+ <fileset dir="${airavata.work.dir}/lib/">
+ <exclude name="tomcat-*.jar"/>
+ </fileset>
+ </copy>
+ <copy todir="${airavata.webapp.dir}/WEB-INF/classes">
+ <fileset dir="${airavata.work.dir}/bin/">
+ <exclude name="axis2.xml"/>
+ </fileset>
+ </copy>
+ <copy todir="${airavata.webapp.dir}/WEB-INF/classes/database_scripts">
+ <fileset dir="${airavata.work.dir}/bin/database_scripts"/>
+ </copy>
+ <copy todir="${airavata.webapp.dir}">
+ <fileset dir="src/main/resources">
+ <include name="LICENSE" />
+ <include name="NOTICE" />
+ </fileset>
+ </copy>
+ <replace file="${airavata.webapp.dir}/WEB-INF/classes/airavata-server.properties">
+ <replacetoken>#server.context-root=axis2</replacetoken>
+ <replacevalue>server.context-root=${airavata.dist.name}</replacevalue>
+ </replace>
+ <zip destfile="${airavata.webapp.war}" basedir="${airavata.webapp.dir}" />
+
+ </target>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>build-helper-maven-plugin</artifactId>
+ <version>1.7</version>
+ <executions>
+ <execution>
+ <id>attach-artifacts</id>
+ <phase>package</phase>
+ <goals>
+ <goal>attach-artifact</goal>
+ </goals>
+ <configuration>
+ <artifacts>
+ <artifact>
+ <file>${airavata.webapp.war}</file>
+ <type>war</type>
+ </artifact>
+ <artifact>
+ <file>${airavata.bin.zip}</file>
+ <type>zip</type>
+ <classifier>bin</classifier>
+ </artifact>
+ <artifact>
+ <file>${airavata.bin.tar.gz}</file>
+ <type>tar.gz</type>
+ <classifier>bin</classifier>
+ </artifact>
+ </artifacts>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<configuration>
@@ -504,5 +592,11 @@
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<archieve.name>apache-airavata-server</archieve.name>
<used.axis2.release>${axis2.version}</used.axis2.release>
+ <airavata.dist.name>apache-airavata-server-${project.version}</airavata.dist.name>
+ <airavata.work.dir>${project.build.directory}/tests/${airavata.dist.name}</airavata.work.dir>
+ <airavata.bin.zip>${project.build.directory}/${airavata.dist.name}-bin.zip</airavata.bin.zip>
+ <airavata.bin.tar.gz>${project.build.directory}/${airavata.dist.name}-bin.tar.gz</airavata.bin.tar.gz>
+ <airavata.webapp.dir>${project.build.directory}/airavata-axis2</airavata.webapp.dir>
+ <airavata.webapp.war>${project.build.directory}/${airavata.dist.name}.war</airavata.webapp.war>
</properties>
</project>
Modified: airavata/trunk/modules/distribution/airavata-server/src/main/resources/conf/airavata-server.properties
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/distribution/airavata-server/src/main/resources/conf/airavata-server.properties?rev=1434368&r1=1434367&r2=1434368&view=diff
==============================================================================
--- airavata/trunk/modules/distribution/airavata-server/src/main/resources/conf/airavata-server.properties (original)
+++ airavata/trunk/modules/distribution/airavata-server/src/main/resources/conf/airavata-server.properties Wed Jan 16 20:31:15 2013
@@ -125,6 +125,9 @@ msgBox.jdbc.url=jdbc:derby:wsmg;create=t
# Advance configuration to change service implementations
###########################################################################
+#Update the server context root path if airavata server is deployed under a different context root other than axis2
+#server.context-root=axis2
+
#
# Class which implemented Scheduler interface. It will be used to determine a Provider
#
Modified: airavata/trunk/modules/integration-tests/pom.xml
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/integration-tests/pom.xml?rev=1434368&r1=1434367&r2=1434368&view=diff
==============================================================================
--- airavata/trunk/modules/integration-tests/pom.xml (original)
+++ airavata/trunk/modules/integration-tests/pom.xml Wed Jan 16 20:31:15 2013
@@ -472,7 +472,7 @@
<major.tomcat.version>7</major.tomcat.version>
<cargo.debug.address>8000</cargo.debug.address>
<cargo.debug.suspend>y</cargo.debug.suspend>
- <test.running.port>8080</test.running.port>
+ <test.running.port>8088</test.running.port>
<tomcat.work.dir>${project.build.directory}/tests/apache-tomcat-${tomcat.version}</tomcat.work.dir>
<airavata.work.dir>${project.build.directory}/tests/apache-airavata-server-${project.version}</airavata.work.dir>
<xbaya.work.dir>${project.build.directory}/tests/apache-airavata-xbaya-gui-${project.version}</xbaya.work.dir>
Modified: airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/AiravataJPARegistry.java
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/AiravataJPARegistry.java?rev=1434368&r1=1434367&r2=1434368&view=diff
==============================================================================
--- airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/AiravataJPARegistry.java (original)
+++ airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/AiravataJPARegistry.java Wed Jan 16 20:31:15 2013
@@ -112,7 +112,7 @@ public class AiravataJPARegistry extends
userWorkflowRegistry = (UserWorkflowRegistry)getClassInstance(ConfigurationRegistry.class,RegistryConstants.USER_WF_REGISTRY_ACCESSOR_CLASS);
publishedWorkflowRegistry = (PublishedWorkflowRegistry)getClassInstance(ConfigurationRegistry.class,RegistryConstants.PUBLISHED_WF_REGISTRY_ACCESSOR_CLASS);
} catch (AiravataConfigurationException e) {
- throw new RegistryException("Airavata Registry custom implementation class not defined in registry settings", e);
+ throw new RegistryException("An error occured when attempting to determine any custom implementations of the registries!!!", e);
}
}
@@ -130,8 +130,6 @@ public class AiravataJPARegistry extends
// thus ignore error
} catch (RegistryAccessorInstantiateException e) {
logger.error("Error in instantiating instance from class for registry accessor "+registryAccessorKey,e);
- } catch (AiravataConfigurationException e) {
- throw e;
}
return null;
}
@@ -1732,8 +1730,6 @@ public class AiravataJPARegistry extends
WorkflowDataResource resource = jpa.getWorker().getWorkflowInstance(workflowInstanceId);
WorkflowExecution workflowInstance = new WorkflowExecution(resource.getExperimentID(), resource.getWorkflowInstanceID());
workflowInstance.setTemplateName(resource.getTemplateName());
- ExperimentData experimentData = getExperiment(workflowInstanceId);
-// WorkflowInstanceData workflowInstanceData = experimentData.getWorkflowInstance(workflowInstanceId);
WorkflowExecutionData workflowInstanceData = new WorkflowExecutionDataImpl(null, workflowInstance, new WorkflowExecutionStatus(workflowInstance, resource.getStatus()==null? null:State.valueOf(resource.getStatus()),resource.getLastUpdatedTime()), null);
List<NodeDataResource> nodeData = resource.getNodeData();
for (NodeDataResource nodeDataResource : nodeData) {