| Target | Description |
|---|
| deploy | deploys war to oc4j |
| undeploy | removes webapp from oc4j |
| redeploy | reload already deployed webapp on oc4j |
| fdeploy | copy deployment folder to oc4j - not implemented |
| fundeploy | removes expanded deployment - not implemented |
| jspc | compile JSPs |
| appc | generate/compile JSP/EJB support files - not implemented |
| start | start oc4j server |
| stop | stop oc4j server |
| remote-deploy | deploys war to remote oc4j |
| -restart | restart oc4j |
<?xml version="1.0" encoding="UTF-8"?>
<project name="appserver">
<description>
+ ==\_/============J=A=V=A=G=E=N===A=N=T===M=O=D=U=L=E=S================= +
+ \(_)/ +
+ -(_)- OC4J 9 Application Server Module +
+ /(_)\ +
+ ======================================================================= +
+ Copyright (c) 2002-2005 Outsource Cafe, Inc. All rights reserved. +
+ ======================================================================= +
+
+ Public targets:
+ deploy - deploys distribution file to server
+ undeploy - removes distribution file from server
+ fdeploy - folder deploys expanded app to server
+ fundeploy - folder undeploy removes expanded app from server
+ redeploy - redeploys distribution to server
+ start - starts application server
+ stop - stops application server
+ jspc - server-specific JSP compiler
+
+ remote-deploy - deploys distribution file to remote application server
+ restart - restarts application server
+
+ Support targets:
+ started - sets 'server.started' if server is running
+ stopped - sets 'can.end' if server running and not 'server.started'
+ avoiding stops on servers up before testcycle initiation
+
+ Properties:
+ ${dist.name} - the distribution file name, should be predefined.
+ ${dist.dir} - the loaction of jar/war files, should be predefined.
+ ${oc4j.remote.deploy.ormi} - the java naming provider url, should be predefined.
+ ${oc4j.remote.deploy.username} - the name of admin account of remote oc4j application server.
+ ${oc4j.remotedeploy.password} - the password of admin account of remote oc4j application server.
+
+ Prereque:
+ JDeveloper 9.0.4 - only for remote deployment. oc4j is packed inside by default ( ${env.JDEV_HOME}/j2ee/home )
+ ${env.JDEV_HOME} - environmental variable pointing to the JDeveloper 9.0.4 installation direcotry, should be predefined.
+ ${env.OC4J_HOME} - environmental variable pointing to the OC4J installation direcotry, should be predefined.
+
+ Note: this has not been tested with EJBs yet, feedback appreciated. (RE 2/19/05)
+
+ developer: daxin@myway.com
+ developer: RichardEasterling@OutsourceCafe.com,
+ ======================================================================= +
+ 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.
+ =J=A=M===========================================J=A=V=A=G=E=N=.=C=O=M= +
</description>
<property name="APPSERVER.PRESENT" value="true"></property>
<property name="OC4J.PRESENT" value="true"></property>
<!-- =================================================================== -->
<!-- public targets: -->
<!-- =================================================================== -->
<target name="deploy" depends="-deploy" description="deploys war to oc4j"></target>
<target name="undeploy" depends="-undeploy" description="removes webapp from oc4j"></target>
<target name="redeploy" depends="-redeploy" description="reload already deployed webapp on oc4j"></target>
<target name="fdeploy" depends="-deploy" description="copy deployment folder to oc4j - not implemented "></target>
<target name="fundeploy" depends="-undeploy" description="removes expanded deployment - not implemented"></target>
<target name="jspc" depends="-jspc" description="compile JSPs"></target>
<target name="appc" depends="" description="generate/compile JSP/EJB support files - not implemented"></target>
<target name="start" depends="started, -start" description="start oc4j server"></target>
<target name="stop" depends="stopped, -stop" description="stop oc4j server"></target>
<target name="remote-deploy" depends="-remote-deploy" description="deploys war to remote oc4j"></target>
<!-- ==================================================================== -->
<!-- OC4J-specific properties and sanity checks: -->
<!-- ==================================================================== -->
<property name="oc4j.version" value="9.0.4.0.0"></property>
<property environment="env"></property>
<condition property="oc4j.home" value="${env.OC4J_HOME}">
<isset property="env.OC4J_HOME"></isset>
</condition>
<fail unless="oc4j.home">'oc4jt.home' is not set. Set the 'oc4j.home' property or create an environmental variable called 'OC4J_HOME' pointing to the top-level OC4J installation directory.</fail>
<available property="oc4j.present" file="${oc4j.home}/oc4j.jar"></available>
<fail unless="oc4j.present">Property "oc4j.home" or 'OC4J_HOME' is set but it does not seem to point to the right directory. The file "oc4j.jar" must be available at ${oc4j.home}/ </fail>
<property name="jdev.home" location="${env.JDEV_HOME}"></property>
<property name="oc4j.lib.dir" location="${oc4j.home}/lib"></property>
<property name="build.jspc.java.folder" location="${build.dir}\_page"></property>
<property name="build.jspc.classes.dir" location="${build.dir}\_page"></property>
<!-- override jspc properties:
<property name="build.jspc.java.folder" location="work"/>
<property name="build.jspc.classes.dir" location="${build.jspc.java.dir}"/>
<property name="oc4j.dist" location="${env.OC4J_DIST}"/>
-->
<!-- ==================================================================== -->
<!-- standard application server settings -->
<!-- ==================================================================== -->
<property name="appserver.name" value="OC4J"></property>
<property name="appserver.version" value="${oc4j.version}"></property>
<property name="appserver.deploy.folder" value="applications"></property>
<property name="appserver.deploy.dir" location="${oc4j.home}/${appserver.deploy.folder}"></property>
<property name="appserver.http.port" value="8888"></property>
<property name="appserver.host" value="127.0.0.1"></property>
<!-- adjust delays (in seconds) according to deployment speed: -->
<property name="appserver.start.delay" value="4"></property>
<property name="appserver.deploy.delay" value="4"></property>
<property name="appserver.post.stop.delay" value="4"></property>
<property name="appserver.restart.delay" value="6"></property>
<!-- used in Log4J config. to determine log file locations: -->
<property name="appserver.log.folder" location="${oc4j.home}/log"></property>
<!-- ==================================================================== -->
<!-- standard client properties -->
<!-- ==================================================================== -->
<property name="appserver.java.naming.factory.initial" value="com.evermind.server.ApplicationClientInitialContextFactory"></property>
<property name="appserver.java.naming.provider.url" value="opmn:ormi://127.0.0.1:7777/"></property>
<path id="appserver.client.classpath">
<fileset dir="${oc4j.home}">
<include name="oc4jclient.jar"></include>
</fileset>
</path>
<!-- ==================================================================== -->
<!-- ojspc properties: -->
<!-- ==================================================================== -->
<!-- ojspc default jar propertries, reccomend overriding in project.xml -->
<property name="appserver.jspc.java.dir" location="${build.jspc.java.folder}"></property>
<property name="appserver.jspc.classes.dir" location="${build.jspc.classes.dir}"></property>
<available property="OJSP.PRESENT" file="${oc4j.home}/lib/ojsp.jar"></available>
<available property="JSPC-JAR.PRESENT" file="${appserver.jspc.classes.dir}/${jspc.package}.jar"></available>
<property name="jspc.package" value="_page"></property>
<property name="jspc.uriroot" location="${build.web.dir}"></property>
<path id="jspc.classpath">
<path refid="build.web.classpath"></path>
<pathelement location="${oc4j.home}/oc4j.jar"></pathelement>
<pathelement location="${oc4j.home}/lib/ojsp.jar"></pathelement>
<pathelement location="${oc4j.home}/lib/servlet.jar"></pathelement>
<fileset dir="${build.web.webinf.dir}/lib">
<include name="*.jar"></include>
</fileset>
</path>
<!-- ==================================================================== -->
<!-- deployment settings, override if admin account is different-->
<!-- ==================================================================== -->
<property name="oc4j.deploy.ormi" value="ormi://127.0.0.1:23791"></property>
<property name="oc4j.deploy.username" value="admin"></property>
<property name="oc4j.deploy.password" value="password"></property>
<property name="maven.type" value="ear"></property>
<property name="dist.name" value="${module.name}-${module.version}.${maven.type}"></property>
<!-- =================================================================== -->
<!-- compiles JSPs to java, then to classes: -->
<!-- =================================================================== -->
<!--
<target name="jspc" if="OJSP.PRESENT" depends="war.copy" description="compile JSPs">
<mkdir dir="${appserver.jspc.classes.dir}"/>
<mkdir dir="${appserver.jspc.java.dir}"/>
<echo>appserver.jspc.classes.dir = ${appserver.jspc.classes.dir}</echo>
<echo>appserver.jspc.java.dir = ${appserver.jspc.java.dir}</echo>
<echo>jspc jar file path=${appserver.jspc.classes.dir}/${jspc.package}.jar</echo>
<java classname="oracle.jsp.tools.Jspc" fork="yes" dir="${build.web.folder}">
<arg line="-addclasspath ${build.web.classes.dir};${appserver.jspc.classes.dir} -appRoot ${build.web.dir} -d ${appserver.jspc.classes.dir} -srcdir ${appserver.jspc.java.dir} -verbose ${build.web.dir}\*.jsp -noCompile"/>
<classpath>
<pathelement path="${oc4j.home}/lib/ojsp.jar"/>
<pathelement location="${oc4j.home}/lib/servlet.jar"/>
<pathelement location="${oc4j.home}/oc4j.jar"/>
</classpath>
</java>
<javac srcdir="${appserver.jspc.java.dir}" destdir="${appserver.jspc.classes.dir}" classpathref="jspc.classpath" debug="${compiler.debug}" deprecation="${compiler.deprecation}" optimize="${compiler.optimize}" compiler="${compiler.type}" encoding="ISO8859_1"/>
<delete>
<fileset dir="${appserver.jspc.java.dir}" includes="**/*.java"/>
</delete>
<jar destfile="${appserver.jspc.classes.dir}/${jspc.package}.jar">
<fileset dir="${appserver.jspc.classes.dir}" casesensitive="yes">
<include name="**/*.class"/>
<exclude name="**/*.res"/>
</fileset>
</jar>
</target>
-->
<!-- Get the <ojspc> task at http://www.pittjug.org/JSPWiki/attach?page=CarlTrusiak%2Fojspc.zip -->
<target name="-jspc" if="OJSP.PRESENT">
<mkdir dir="${appserver.jspc.classes.dir}"></mkdir>
<mkdir dir="${appserver.jspc.java.dir}"></mkdir>
<taskdef name="ojspc" classname="org.apache.tools.ant.taskdefs.optional.jsp.OJspC" classpath="${ojspc.jar}"></taskdef>
<ojspc d="${appserver.jspc.classes.dir}" srcdir="${appserver.jspc.java.dir}" appRoot="${build.web.dir}" debug="true" noTldxmlValidate="false" verbose="true">
<classpath refid="jspc.classpath"></classpath>
<fileset dir="${build.web.dir}">
<include name="**/*.jsp"></include>
</fileset>
</ojspc>
<delete>
<fileset dir="${appserver.jspc.java.dir}" includes="**/*.java"></fileset>
</delete>
<jar destfile="${appserver.jspc.classes.dir}/${jspc.package}.jar">
<fileset dir="${appserver.jspc.classes.dir}" casesensitive="yes">
<include name="**/*.class"></include>
<exclude name="**/*.res"></exclude>
</fileset>
</jar>
</target>
<!-- =================================================================== -->
<!-- deploy archive (jar/war/ear) to server -->
<!-- =================================================================== -->
<target name="-deploy">
<!-- Deploy the EAR file -->
<echo></echo>
<echo>java -jar ${oc4j.home}/admin.jar ${oc4j.deploy.ormi} ${oc4j.deploy.username} ${oc4j.deploy.password} -deploy -file ${dist.dir}/${dist.name} -deploymentName ${module.name}</echo>
<echo></echo>
<java jar="${oc4j.home}/admin.jar" fork="yes">
<arg value="${oc4j.deploy.ormi}"></arg>
<arg value="${oc4j.deploy.username}"></arg>
<arg value="${oc4j.deploy.password}"></arg>
<arg value="-deploy"></arg>
<arg value="-file"></arg>
<arg value="${dist.dir}/${dist.name}"></arg>
<arg value="-deploymentName"></arg>
<arg value="${module.name}"></arg>
</java>
<!-- Bind the Web module -->
<echo></echo>
<echo message="java -jar ${oc4j.home}/admin.jar ${oc4j.deploy.ormi} ${oc4j.deploy.username} ${oc4j.deploy.password} -bindWebApp ${module.name} ${module.name} http-web-site /${module.name}"></echo>
<echo></echo>
<java jar="${oc4j.home}/admin.jar" fork="yes">
<arg value="${oc4j.deploy.ormi}"></arg>
<arg value="${oc4j.deploy.username}"></arg>
<arg value="${oc4j.deploy.password}"></arg>
<arg value="-bindWebApp"></arg>
<arg value="${module.name}"></arg>
<arg value="${module.name}-${module.version}"></arg>
<arg value="http-web-site"></arg>
<arg value="/${module.name}"></arg>
</java>
</target>
<!-- =================================================================== -->
<!-- deploy archive (jar/war/ear) to server -->
<!-- =================================================================== -->
<target name="bind-web-app">
<java jar="${oc4j.home}/admin.jar" fork="yes">
<arg value="${oc4j.deploy.ormi}"></arg>
<arg value="${oc4j.deploy.username}"></arg>
<arg value="${oc4j.deploy.password}"></arg>
<arg value="-bindWebApp"></arg>
<arg value="${module.name}"></arg>
<arg value="${module.name}.war"></arg>
<arg value="http-web-site"></arg>
<arg value="/${module.name}"></arg>
</java>
</target>
<!-- =================================================================== -->
<!--redeploy archive (jar/war/ear) to server (It seems doesn't work) -->
<!-- =================================================================== -->
<target name="-redeploy">
<!-- Deploy the EAR file -->
<echo></echo>
<echo>java -jar ${oc4j.home}/admin.jar ${oc4j.deploy.ormi} ${oc4j.deploy.username} ${oc4j.deploy.password} -deploy -file ${dist.dir}/${dist.name} -deploymentName ${module.name}</echo>
<echo></echo>
<java jar="${oc4j.home}/admin.jar" fork="yes">
<arg value="${oc4j.deploy.ormi}"></arg>
<arg value="${oc4j.deploy.username}"></arg>
<arg value="${oc4j.deploy.password}"></arg>
<arg value="-deploy"></arg>
<arg value="-file"></arg>
<arg value="${dist.dir}/${dist.name}"></arg>
<arg value="-deploymentName"></arg>
<arg value="${module.name}"></arg>
</java>
</target>
<!-- =================================================================== -->
<!-- deploy archive (jar/war/ear) to remote oracle 10g server -->
<!-- eg. -->
<!-- ${oc4j.remote.deploy.HTTPClient}=http://10.1.11.11:1810/Oc4jDcmServletAPI/ -->
<!-- ${oc4j.remote.home} = /u02/app/oracle -->
<!-- =================================================================== -->
<target name="-remote-deploy">
<echo>remote deploy:${dist.dir}/${dist.name}</echo>
<java jar="${jdev.home}/jdev/lib/oc4j_remote_deploy.jar" fork="yes">
<jvmarg value="-Djava.protocol.handler.pkgs=HTTPClient"></jvmarg>
<arg value="${oc4j.remote.deploy.HTTPClient}"></arg>
<arg value="${oc4j.remote.deploy.username}"></arg>
<arg value="${oc4j.remote.deploy.password}"></arg>
<arg value="deploy"></arg>
<arg value="${oc4j.remote.home}"></arg>
<arg value="${dist.dir}/${dist.name}"></arg>
<arg value="${module.name}"></arg>
<arg value="OC4J_PORTAL"></arg>
</java>
</target>
<!-- =================================================================== -->
<!-- remove archive (jar/war/ear) from server -->
<!-- =================================================================== -->
<target name="-undeploy">
<java jar="${oc4j.home}/admin.jar" fork="yes">
<arg value="${oc4j.deploy.ormi}"></arg>
<arg value="${oc4j.deploy.username}"></arg>
<arg value="${oc4j.deploy.password}"></arg>
<arg value="-undeploy"></arg>
<arg value="${module.name}"></arg>
</java>
</target>
<!-- =================================================================== -->
<!-- start oc4j, run it as a backend process -->
<!-- =================================================================== -->
<target name="-start" unless="server.started">
<java jar="${oc4j.home}/oc4j.jar" fork="yes" spawn="yes">
<arg value="-config"></arg>
<arg value="${oc4j.home}/config/server.xml"></arg>
<arg value="-quiet"></arg>
</java>
</target>
<!-- =================================================================== -->
<!-- sets 'server.started' if server is running -->
<!-- =================================================================== -->
<target name="started">
<condition property="server.started">
<and>
<socket port="${appserver.http.port}" server="${appserver.host}"></socket>
</and>
</condition>
<echo>server.started = ${server.started}</echo>
</target>
<!-- =================================================================== -->
<!-- stop oc4j -->
<!-- =================================================================== -->
<target name="-stop" if="can.end">
<java jar="${oc4j.home}/admin.jar" fork="yes">
<arg value="${oc4j.deploy.ormi}"></arg>
<arg value="${oc4j.deploy.username}"></arg>
<arg value="${oc4j.deploy.password}"></arg>
<arg value="-shutdown"></arg>
</java>
<echo>sleeping ${appserver.post.stop.delay}s...</echo>
<sleep seconds="${appserver.post.stop.delay}"></sleep>
</target>
<!-- =================================================================== -->
<!-- sets 'can.end' if server running and not 'server.started -->
<!-- avoiding stops on servers up before testcycle initiation -->
<!-- =================================================================== -->
<target name="stopped">
<condition property="can.end">
<and>
<socket port="${appserver.http.port}" server="${appserver.host}"></socket>
<not>
<isset property="server.started"></isset>
</not>
</and>
</condition>
<echo>can.end = ${can.end}</echo>
</target>
<!-- =================================================================== -->
<!-- restart oc4j (No response)-->
<!-- =================================================================== -->
<target name="-restart" description="restart oc4j">
<java jar="${oc4j.home}/admin.jar" fork="yes">
<arg value="${oc4j.deploy.ormi}"></arg>
<arg value="${oc4j.deploy.username}"></arg>
<arg value="${oc4j.deploy.password}"></arg>
<arg value="-restart"></arg>
</java>
<echo>sleeping ${appserver.restart.delay}s...</echo>
<sleep seconds="${appserver.restart.delay}"></sleep>
</target>
</project>