tuscany-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From lrese...@apache.org
Subject svn commit: r620064 - in /incubator/tuscany/java/sca/itest: build-was-integration.xml pom.xml wasAdmin.py
Date Sat, 09 Feb 2008 02:29:26 GMT
Author: lresende
Date: Fri Feb  8 18:29:25 2008
New Revision: 620064

URL: http://svn.apache.org/viewvc?rev=620064&view=rev
Log:
Test Automation integration for Websphere host environment

Added:
    incubator/tuscany/java/sca/itest/build-was-integration.xml   (with props)
    incubator/tuscany/java/sca/itest/wasAdmin.py   (with props)
Modified:
    incubator/tuscany/java/sca/itest/pom.xml

Added: incubator/tuscany/java/sca/itest/build-was-integration.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/build-was-integration.xml?rev=620064&view=auto
==============================================================================
--- incubator/tuscany/java/sca/itest/build-was-integration.xml (added)
+++ incubator/tuscany/java/sca/itest/build-was-integration.xml Fri Feb  8 18:29:25 2008
@@ -0,0 +1,63 @@
+<!--
+ * 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.    
+-->
+
+<project name="was-integration" default="main" basedir="."> 
+
+  <property environment="env"/>
+
+  <target name="startServer">
+    <exec dir="." executable="${env.WAS_HOME}/bin/startServer.sh">
+      <arg value="server1" />
+      <!--
+      <arg value="-username" />
+      <arg value="${sWasUser}" />
+      <arg value="-password" />
+      <arg value="${sWasPassword}" />
+      -->
+    </exec>
+  </target>
+
+  <target name="stopServer">
+    <exec dir="." executable="${env.WAS_HOME}/bin/stopServer.sh">
+      <arg value="server1" />
+      <!--
+      <arg value="-username" />
+      <arg value="${sWasUser}" />
+      <arg value="-password" />
+      <arg value="${sWasPassword}" />
+      -->
+    </exec>
+  </target>
+
+  <target name="installApplication">
+    <echo>Installing war ${application.war} on ${application.server} using name ${application.name}
and context root ${application.contextRoot} </echo>
+    <exec dir="." executable="${env.WAS_HOME}/bin/wsadmin.sh">
+       <arg line="-conntype SOAP -lang jython -f ../wasAdmin.py installApplicationOnServer
${application.war} ${application.name} ${application.contextRoot} ${application.server}" />
+    </exec>
+   </target>
+
+  <target name="uninstallApplication">
+    <echo>Uninstalling ${application.name} </echo>
+    <exec dir="." executable="${env.WAS_HOME}/bin/wsadmin.sh">
+       <arg line="-conntype SOAP -lang jython -f ../wasAdmin.py uninstallApplicationOnServer
${application.name}" />
+    </exec>
+   </target>
+
+ 
+</project>

Propchange: incubator/tuscany/java/sca/itest/build-was-integration.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/itest/build-was-integration.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: incubator/tuscany/java/sca/itest/build-was-integration.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Modified: incubator/tuscany/java/sca/itest/pom.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/pom.xml?rev=620064&r1=620063&r2=620064&view=diff
==============================================================================
--- incubator/tuscany/java/sca/itest/pom.xml (original)
+++ incubator/tuscany/java/sca/itest/pom.xml Fri Feb  8 18:29:25 2008
@@ -176,6 +176,7 @@
                 <module>scopes</module>
             </modules>
 
+
             <build>
                 <pluginManagement>
                     <plugins>
@@ -551,6 +552,119 @@
                 </plugins>
             </build>
         </profile>
+
+        <profile>
+            <id>websphere</id>
+            <activation>
+                <activeByDefault>false</activeByDefault>
+            </activation>
+            <properties>
+                <http.port>8080</http.port>
+                <http.base>http://127.0.0.1:${http.port}</http.base>
+                <websphere.home>${env.WAS_HOME}</websphere.home>
+            </properties>
+
+            <build>
+                <plugins>
+                    <!-- Generate web-xml and geronimo deployment descriptor -->
+                    <plugin>
+                        <groupId>org.apache.tuscany.sca</groupId>
+                        <artifactId>tuscany-maven-web-junit</artifactId>
+                        <version>1.2-incubating-SNAPSHOT</version>
+                        <executions>
+                            <execution>
+                                <id>generate-web-xml</id>
+                                <phase>process-resources</phase>
+                                <goals>
+                                    <goal>generate</goal>
+                                </goals>
+                            </execution>
+                            <execution>
+                                <id>web-junit-test</id>
+                                <phase>integration-test</phase>
+                                <goals>
+                                    <goal>test</goal>
+                                </goals>
+                                <configuration>
+                                    <url>${http.base}/${project.build.finalName}/junit</url>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+
+		    <!--WAS ant integration -->
+                    <plugin>
+                        <groupId>org.apache.maven.plugins</groupId>
+                        <artifactId>maven-antrun-plugin</artifactId>
+                        <version>1.1</version>
+                        <executions>
+                            <!-- start Websphere server -->
+                            <execution>
+                                <id>start-container</id>
+                                <phase>pre-integration-test</phase>
+                                <goals>
+                                    <goal>run</goal>
+                                </goals>
+	                        <configuration>
+	                            <tasks>
+	                                <ant antfile="../build-was-integration.xml" target="startServer"/>
+	                            </tasks>
+	                        </configuration>
+	                    </execution>
+                            <!-- Deploy war application -->
+                            <execution>
+                                <id>deploy-war</id>
+                                <phase>pre-integration-test</phase>
+                                <goals>
+                                    <goal>run</goal>
+                                </goals>
+	                        <configuration>
+	                            <tasks>
+	                                <ant antfile="../build-was-integration.xml" target="installApplication">
+                                            <property name="application.war" value="${project.build.directory}/${project.build.finalName}.war"/>
+                                            <property name="application.name" value="${project.build.finalName}.war"/>
+                                            <property name="application.contextRoot" value="${project.build.finalName}"/>
+                                            <property name="application.server" value="server1"/>
+                                        </ant>
+	                            </tasks>
+	                        </configuration>
+                            </execution>
+                            <!-- unDeploy war application -->
+                            <execution>
+                                <id>undeploy-war</id>
+                                <phase>post-integration-test</phase>
+                                <goals>
+                                    <goal>run</goal>
+                                </goals>
+	                        <configuration>
+	                            <tasks>
+	                                <ant antfile="../build-was-integration.xml" target="uninstallApplication">
+                                            <property name="application.name" value="${project.build.finalName}.war"/>
+                                        </ant>
+	                            </tasks>
+	                        </configuration>
+                            </execution>
+                            <!-- Stop Websphere server -->
+                            <execution>
+                                <id>stop-container</id>
+                                <phase>post-integration-test</phase>
+                                <goals>
+                                    <goal>run</goal>
+                                </goals>
+	                        <configuration>
+	                            <tasks>
+	                                <ant antfile="../build-was-integration.xml" target="stopServer"/>
+	                            </tasks>
+	                        </configuration>
+                            </execution>
+
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+
+
     </profiles>
 
 </project>

Added: incubator/tuscany/java/sca/itest/wasAdmin.py
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/wasAdmin.py?rev=620064&view=auto
==============================================================================
--- incubator/tuscany/java/sca/itest/wasAdmin.py (added)
+++ incubator/tuscany/java/sca/itest/wasAdmin.py Fri Feb  8 18:29:25 2008
@@ -0,0 +1,91 @@
+"""
+ * 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.    
+"""
+import sys
+
+def getCellName():
+    """Return the name of the cell connected to"""
+    return AdminControl.getCell()
+
+def getNodeName():
+    """Return the name of the node connected to"""
+    return AdminControl.getNode()
+
+def startApplicationOnServer(appName,serverName):
+    """Start the named application on one server"""
+    print "startApplicationOnServer: Entry. appname=%s servername=%s" % ( appName,serverName
)
+    cellName = getCellName()
+    nodeName = getNodeName()
+    # Get the application manager 
+    appManager = AdminControl.queryNames('cell=%s,node=%s,type=ApplicationManager,process=%s,*'
%(cellName,nodeName,serverName))
+    print "startApplicationOnServer: appManager=%s" % ( repr(appManager) )
+    # start it
+    rc = AdminControl.invoke(appManager, 'startApplication', appName)
+    print "startApplicationOnServer: Exit. rc=%s" % ( repr(rc) )
+
+def stopApplicationOnServer(appName,serverName):
+    """Stop the named application on one server"""
+    print "stopApplicationOnServer: Entry. appname=%s servername=%s" % ( appName,serverName
)
+    cellName = getCellName()
+    nodeName = getNodeName()
+    # Get the application manager 
+    appManager = AdminControl.queryNames('cell=%s,node=%s,type=ApplicationManager,process=%s,*'
%(cellName,nodeName,serverName))
+    print "stopApplicationOnServer: appManager=%s" % ( repr(appManager) )
+    # start it
+    rc = AdminControl.invoke(appManager, 'stopApplication', appName)
+    print "stopApplicationOnServer: Exit. rc=%s" % ( repr(rc) )
+
+def installApplicationOnServer( fileName, appName, contextRoot, serverName ):
+    """Install given application on the named server using given context root"""
+    print "installApplicationOnServer: fileName=%s appName=%s contextRoot=%s ServerName=%s"
% ( fileName, appName,contextRoot,serverName )
+    AdminApp.install(fileName,'[-appname ' + appName + ' -contextroot ' + contextRoot  +
' -server ' + serverName + ' -usedefaultbindings ]')
+    AdminConfig.save()
+    """modify classloader model for application"""
+    deploymentID = AdminConfig.getid('/Deployment:' + appName + '/')
+    deploymentObject = AdminConfig.showAttribute(deploymentID, 'deployedObject')
+    classldr = AdminConfig.showAttribute(deploymentObject, 'classloader')
+    print AdminConfig.showall(classldr)
+    AdminConfig.modify(classldr, [['mode', 'PARENT_LAST']])
+    """Modify WAR class loader model"""
+    AdminConfig.show(deploymentObject, 'warClassLoaderPolicy')
+    AdminConfig.modify(deploymentObject, [['warClassLoaderPolicy', 'SINGLE']])
+    AdminConfig.save()
+
+def uninstallApplicationOnServer( appName ):
+    """Delete the named application from the cell"""
+    AdminApp.uninstall( appName )
+    AdminConfig.save()
+
+
+
+"""-----------------------------------------------------------
+   Phyton script to interface with WAS Admin/Management Tools
+-----------------------------------------------------------"""
+
+if len(sys.argv) < 1:
+    print "wasAdmin.py : need parameters : functionName [args]"
+    sys.exit(0)
+if(sys.argv[0] == 'installApplicationOnServer'):
+    installApplicationOnServer(sys.argv[1], sys.argv[2], sys.argv[3], sys.argv[4])
+elif(sys.argv[0] == 'startApplicationOnServer'):
+    installApplicationOnServer(sys.argv[1], sys.argv[2])
+elif(sys.argv[0] == 'uninstallApplicationOnServer'):
+    uninstallApplicationOnServer(sys.argv[1])
+else:
+    print "Exiting without doing anything"
+

Propchange: incubator/tuscany/java/sca/itest/wasAdmin.py
------------------------------------------------------------------------------
    svn:eol-style = native



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org


Mime
View raw message