| <?xml version="1.0" encoding="UTF-8"?> |
| <!-- This build file configures and runs the example on a WebLogic domain with independent servers (no clustering). --> |
| <project basedir="." default="build" name="org.eclipse.persistence.example.jpa.server.cachecoordination"> |
| <property environment="env"/> |
| <property name="JEE_HOME" value="/scratch/wls/12.1.3"/> |
| <property name="WEBLOGIC_HOME" value="${JEE_HOME}/wlserver"/> |
| <property name="JEE_SERVER" value="${WEBLOGIC_HOME}/server"/> |
| <!-- localhost may not work, machine name/ip my be required. --> |
| <property name="JEE_HOST" value="localhost"/> |
| <!-- These ports are also in the Transaction.java and persistence.xml files. --> |
| <property name="JEE_PORT1" value="7021"/> |
| <property name="JEE_PORT2" value="7031"/> |
| <property name="JEE_PORT3" value="7041"/> |
| <property name="JEE_DOMAIN" value="./domain"/> |
| <!-- These also need to be defined in the jndi.properties file. --> |
| <property name="JEE_USER" value="weblogic"/> |
| <property name="JEE_PASSWORD" value="welcome1"/> |
| <!-- These need to be updated with your database settings. --> |
| <property name="DB_DRIVER" value="oracle.jdbc.OracleDriver"/> |
| <property name="DB_URL" value="jdbc:oracle:thin:@localhost:1521:orcl"/> |
| <property name="DB_USER" value="scott"/> |
| <property name="DB_PASSWORD" value="tiger"/> |
| <!-- These will differ depending on the version of WebLogic. --> |
| <property name="JPA_LIB" value="${JEE_HOME}/oracle_common/modules/javax.persistence_2.2.0.0_1-0-2.jar"/> |
| <property name="EJB_LIB" value="${JEE_HOME}/oracle_common/modules/javax.ejb_3.3.0.jar"/> |
| <property name="ECLIPSELINK_LIB" value="${JEE_HOME}/oracle_common/modules/oracle.toplink_12.1.3/eclipselink.jar"/> |
| <property name="debuglevel" value="source,lines,vars"/> |
| <path id="example.classpath"> |
| <pathelement location="classes"/> |
| <pathelement location="${JPA_LIB}"/> |
| <pathelement location="${EJB_LIB}"/> |
| <pathelement location="${ECLIPSELINK_LIB}"/> |
| <pathelement location="${JEE_SERVER}/lib/weblogic.jar"/> |
| </path> |
| <target name="init" depends="clean"> |
| <mkdir dir="classes"/> |
| </target> |
| <target name="clean"> |
| <delete dir="classes"/> |
| </target> |
| |
| <target depends="init" name="build"> |
| <echo message="${ant.project.name}: ${ant.file}"/> |
| <javac debug="true" debuglevel="${debuglevel}" destdir="classes"> |
| <src path="src"/> |
| <exclude name="**/.svn/**"/> |
| <classpath refid="example.classpath"/> |
| </javac> |
| <copy todir="classes/META-INF"> |
| <fileset dir="src/META-INF" includes="*"/> |
| </copy> |
| <copy todir="classes/"> |
| <fileset dir="./" includes="jndi.properties"/> |
| </copy> |
| <jar jarfile="employee.jar"> |
| <fileset dir="classes" includes="**"/> |
| </jar> |
| <ear destfile="employee.ear" appxml="src/META-INF/application.xml"> |
| <fileset dir="." includes ="employee.jar"/> |
| </ear> |
| </target> |
| |
| <!-- WebLogic ant tasks --> |
| <taskdef name="wlserver" classname="weblogic.ant.taskdefs.management.WLServer"> |
| <classpath> |
| <pathelement location="${JEE_SERVER}/lib/weblogic.jar"/> |
| </classpath> |
| </taskdef> |
| <taskdef name="wlconfig" classname="weblogic.ant.taskdefs.management.WLConfig"> |
| <classpath> |
| <pathelement location="${JEE_SERVER}/lib/weblogic.jar"/> |
| </classpath> |
| </taskdef> |
| <taskdef name="wldeploy" classname="weblogic.ant.taskdefs.management.WLDeploy"> |
| <classpath> |
| <pathelement location="${JEE_SERVER}/lib/weblogic.jar"/> |
| </classpath> |
| </taskdef> |
| |
| <!-- This creates the server domain. --> |
| <target name="create-cluster"> |
| <delete dir="${JEE_DOMAIN}"/> |
| <mkdir dir="${JEE_DOMAIN}"/> |
| <wlserver fork="true" spawn="true" weblogichome="${WEBLOGIC_HOME}" |
| dir="${JEE_DOMAIN}" host="${JEE_HOST}" servername="admin" generateConfig="true" verbose="true" |
| username="${JEE_USER}" password="${JEE_PASSWORD}" action="start"> |
| <classpath> |
| <fileset dir="${JEE_SERVER}/lib" includes="weblogic.jar,weblogic_sp.jar"/> |
| <pathelement location="${env.JAVA_HOME}/lib/tools.jar"/> |
| </classpath> |
| <jvmarg value="-Xms512m"/> |
| <jvmarg value="-Xmx1024m"/> |
| <jvmarg value="-XX:MaxPermSize=128m"/> |
| </wlserver> |
| <wlconfig url="t3://${JEE_HOST}:7001" username="${JEE_USER}" password="${JEE_PASSWORD}"> |
| <create type="Server" name="server1"> |
| <set attribute="ListenPort" value="${JEE_PORT1}"/> |
| </create> |
| <create type="Server" name="server2"> |
| <set attribute="ListenPort" value="${JEE_PORT2}"/> |
| </create> |
| <create type="Server" name="server3"> |
| <set attribute="ListenPort" value="${JEE_PORT3}"/> |
| </create> |
| </wlconfig> |
| <wlserver fork="true" failonerror="false" weblogichome="${WEBLOGIC_HOME}" |
| dir="${JEE_DOMAIN}" host="${JEE_HOST}" port="7001" servername="admin" |
| username="${JEE_USER}" password="${JEE_PASSWORD}" action="shutdown"> |
| </wlserver> |
| </target> |
| |
| <!-- |
| This target is to create connection pool and managed datasource required for running this JPA example. |
| Note: WLS server must be running. |
| --> |
| <target name="setup-cluster"> |
| <wlconfig url="t3://${JEE_HOST}:7001" username="${JEE_USER}" password="${JEE_PASSWORD}"> |
| <query domain="mydomain" type="JDBCConnectionPool" name="employeePool"> |
| <delete/> |
| </query> |
| <query domain="mydomain" type="JDBCTxDataSource" name="EmployeeDS"> |
| <delete/> |
| </query> |
| <query domain="mydomain" type="JDBCDataSource" name="EmployeeLocalDS"> |
| <delete/> |
| </query> |
| <query domain="mydomain" type="JMSTopic" name="EmployeeTopic"> |
| <delete/> |
| </query> |
| <query domain="mydomain" type="JMSConnectionFactory" name="EmployeeTopicConnectionFactory"> |
| <delete/> |
| </query> |
| <query domain="mydomain" type="JMSServer" name="EmployeeJMSServer"> |
| <delete/> |
| </query> |
| <query domain="mydomain" type="Server" name="*" property="cluster"/> |
| <query domain="mydomain" type="Server" name="server1" property="server1"/> |
| <create type="JDBCConnectionPool" name="employeePool"> |
| <set attribute="CapacityIncrement" value="2"/> |
| <set attribute="DriverName" value="${DB_DRIVER}"/> |
| <set attribute="InitialCapacity" value="1"/> |
| <set attribute="MaxCapacity" value="50"/> |
| <set attribute="Password" value="${DB_PASSWORD}"/> |
| <set attribute="Properties" value="user=${DB_USER}"/> |
| <set attribute="URL" value="${DB_URL}"/> |
| <set attribute="Targets" value="${cluster}"/> |
| </create> |
| <create type="JDBCTxDataSource" name="EmployeeDS"> |
| <set attribute="JNDIName" value="jdbc/EmployeeDS"/> |
| <set attribute="PoolName" value="employeePool"/> |
| <set attribute="Targets" value="${cluster}"/> |
| </create> |
| <create type="JDBCDataSource" name="EmployeeLocalDS"> |
| <set attribute="JNDIName" value="jdbc/EmployeeLocalDS"/> |
| <set attribute="PoolName" value="employeePool"/> |
| <set attribute="Targets" value="${cluster}"/> |
| </create> |
| |
| <create type="JMSConnectionFactory" name="EmployeeTopicConnectionFactory"> |
| <set attribute="JNDIName" value="jms/EmployeeTopicConnectionFactory"/> |
| <set attribute="XAServerEnabled" value="false"/> |
| <set attribute="Targets" value="${cluster}"/> |
| </create> |
| <create type="JMSServer" name="EmployeeJMSServer"> |
| <set attribute="Targets" value="${server1}"/> |
| <create type="JMSTopic" name="EmployeeTopic"> |
| <set attribute="JNDIName" value="jms/EmployeeTopic"/> |
| </create> |
| </create> |
| |
| </wlconfig> |
| </target> |
| |
| <!-- This start the servers. --> |
| <target name="start-cluster"> |
| <!--wlserver fork="true" spawn="true" weblogichome="${JEE_SERVER}" |
| dir="${JEE_DOMAIN}" host="${JEE_HOST}" port="${JEE_PORT1}" servername="server1" generateConfig="true" verbose="true" |
| username="${JEE_USER}" password="${JEE_PASSWORD}" action="start"> |
| <classpath> |
| <fileset dir="${JEE_SERVER}/lib" includes="weblogic.jar,weblogic_sp.jar"/> |
| <pathelement location="${env.JAVA_HOME}/lib/tools.jar"/> |
| </classpath> |
| <jvmarg value="-Xms512m"/> |
| <jvmarg value="-Xmx960m"/> |
| </wlserver> |
| <sleep seconds="30"/> |
| <wlserver fork="true" spawn="true" weblogichome="${JEE_SERVER}" |
| dir="${JEE_DOMAIN}" host="${JEE_HOST}" port="${JEE_PORT2}" servername="server2" generateConfig="true" verbose="true" |
| username="${JEE_USER}" password="${JEE_PASSWORD}" action="start"> |
| <classpath> |
| <fileset dir="${JEE_SERVER}/lib" includes="weblogic.jar,weblogic_sp.jar"/> |
| <pathelement location="${env.JAVA_HOME}/lib/tools.jar"/> |
| </classpath> |
| <jvmarg value="-Xms512m"/> |
| <jvmarg value="-Xmx960m"/> |
| </wlserver> |
| <wlserver fork="true" spawn="true" weblogichome="${JEE_SERVER}" |
| dir="${JEE_DOMAIN}" host="${JEE_HOST}" port="${JEE_PORT3}" servername="server3" generateConfig="true" verbose="true" |
| username="${JEE_USER}" password="${JEE_PASSWORD}" action="start"> |
| <classpath> |
| <fileset dir="${JEE_SERVER}/lib" includes="weblogic.jar,weblogic_sp.jar"/> |
| <pathelement location="${env.JAVA_HOME}/lib/tools.jar"/> |
| </classpath> |
| <jvmarg value="-Xms512m"/> |
| <jvmarg value="-Xmx960m"/> |
| </wlserver--> |
| <!-- There is probably a more eligent way to start the cluster, but for now this works --> |
| <!-- Where as using wlserver above did not seem to --> |
| <delete> |
| <fileset dir="./" includes="server*.log,server*.err"/> |
| </delete> |
| <parallel> |
| <echo message="*** starting WebLogic admin server"/> |
| <java classname="weblogic.Server" |
| fork="true" |
| failonerror="true"> |
| <jvmarg value="-server"/> |
| <jvmarg value="-Xms512m"/> |
| <jvmarg value="-Xmx1024m"/> |
| <jvmarg value="-XX:MaxPermSize=128m"/> |
| <env key="PATH" value="${env.JAVA_HOME}/bin:${env.PATH}"/> |
| <sysproperty key="weblogic.Name" value="admin"/> |
| <sysproperty key="bea.home" value="${JEE_HOME}"/> |
| <sysproperty key="weblogic.management.username" value="${JEE_USER}"/> |
| <sysproperty key="weblogic.management.password" value="${JEE_PASSWORD}"/> |
| <sysproperty key="java.security.police" value='"${JEE_SERVER}/lib/weblogic.policy"'/> |
| <sysproperty key="weblogic.RootDirectory" value="${JEE_DOMAIN}"/> |
| <sysproperty key="weblogic.Stdout" value="admin.log"/> |
| <sysproperty key="weblogic.Stderr" value="admin.err"/> |
| <classpath> |
| <fileset dir="${JEE_SERVER}/lib" includes="weblogic.jar,weblogic_sp.jar"/> |
| <pathelement location="${env.JAVA_HOME}/lib/tools.jar"/> |
| </classpath> |
| </java> |
| <sequential> |
| <waitfor> |
| <socket server="${JEE_HOST}" port="7001"/> |
| </waitfor> |
| <parallel> |
| <echo message="*** starting managed server: server1 "/> |
| <java classname="weblogic.Server" |
| fork="true" |
| failonerror="true"> |
| <jvmarg value="-server"/> |
| <jvmarg value="-Xms512m"/> |
| <jvmarg value="-Xmx1024m"/> |
| <jvmarg value="-XX:MaxPermSize=128m"/> |
| <env key="PATH" value="${env.JAVA_HOME}/bin:${env.PATH}"/> |
| <sysproperty key="weblogic.Name" value="server1"/> |
| <sysproperty key="bea.home" value="${JEE_HOME}"/> |
| <sysproperty key="weblogic.management.server" value="${JEE_HOST}:7001"/> |
| <sysproperty key="weblogic.management.username" value="${JEE_USER}"/> |
| <sysproperty key="weblogic.management.password" value="${JEE_PASSWORD}"/> |
| <sysproperty key="java.security.police" value='"${JEE_SERVER}/lib/weblogic.policy"'/> |
| <sysproperty key="weblogic.RootDirectory" value="${JEE_DOMAIN}"/> |
| <sysproperty key="weblogic.Stdout" value="server1.log"/> |
| <sysproperty key="weblogic.Stderr" value="server1.err"/> |
| <!-- When using RMI outside of a cluster, the host URL must be defined, either as a system property, --> |
| <!-- in the persistence.xml or in code in a SessionCustomizer --> |
| <sysproperty key="eclipselink.cache.coordination.rmi.url" value="t3://${JEE_HOST}:${JEE_PORT1}/" /> |
| <classpath> |
| <fileset dir="${JEE_SERVER}/lib" includes="weblogic.jar,weblogic_sp.jar"/> |
| <pathelement location="${env.JAVA_HOME}/lib/tools.jar"/> |
| </classpath> |
| </java> |
| <echo message="*** starting managed server: server2 "/> |
| <java classname="weblogic.Server" |
| fork="true" |
| failonerror="true"> |
| <jvmarg value="-server"/> |
| <jvmarg value="-Xms512m"/> |
| <jvmarg value="-Xmx1024m"/> |
| <jvmarg value="-XX:MaxPermSize=128m"/> |
| <env key="PATH" value="${env.JAVA_HOME}/bin:${env.PATH}"/> |
| <sysproperty key="weblogic.Name" value="server2"/> |
| <sysproperty key="bea.home" value="${JEE_HOME}"/> |
| <sysproperty key="weblogic.management.server" value="${JEE_HOST}:7001"/> |
| <sysproperty key="weblogic.management.username" value="${JEE_USER}"/> |
| <sysproperty key="weblogic.management.password" value="${JEE_PASSWORD}"/> |
| <sysproperty key="java.security.police" value='"${JEE_SERVER}/lib/weblogic.policy"'/> |
| <sysproperty key="weblogic.RootDirectory" value="${JEE_DOMAIN}"/> |
| <sysproperty key="weblogic.Stdout" value="server2.log"/> |
| <sysproperty key="weblogic.Stderr" value="server2.err"/> |
| <!-- When using RMI outside of a cluster, the host URL must be defined, either as a system property, --> |
| <!-- in the persistence.xml or in code in a SessionCustomizer --> |
| <sysproperty key="eclipselink.cache.coordination.rmi.url" value="t3://${JEE_HOST}:${JEE_PORT2}/" /> |
| <classpath> |
| <fileset dir="${JEE_SERVER}/lib" includes="weblogic.jar,weblogic_sp.jar"/> |
| <pathelement location="${env.JAVA_HOME}/lib/tools.jar"/> |
| </classpath> |
| </java> |
| <echo message="*** starting managed server: server3 "/> |
| <java classname="weblogic.Server" |
| fork="true" |
| failonerror="true"> |
| <jvmarg value="-server"/> |
| <jvmarg value="-Xms512m"/> |
| <jvmarg value="-Xmx1024m"/> |
| <jvmarg value="-XX:MaxPermSize=128m"/> |
| <env key="PATH" value="${env.JAVA_HOME}/bin:${env.PATH}"/> |
| <sysproperty key="weblogic.Name" value="server3"/> |
| <sysproperty key="bea.home" value="${JEE_HOME}"/> |
| <sysproperty key="weblogic.management.server" value="${JEE_HOST}:7001"/> |
| <sysproperty key="weblogic.management.username" value="${JEE_USER}"/> |
| <sysproperty key="weblogic.management.password" value="${JEE_PASSWORD}"/> |
| <sysproperty key="java.security.police" value='"${JEE_SERVER}/lib/weblogic.policy"'/> |
| <sysproperty key="weblogic.RootDirectory" value="${JEE_DOMAIN}"/> |
| <sysproperty key="weblogic.Stdout" value="server3.log"/> |
| <sysproperty key="weblogic.Stderr" value="server3.err"/> |
| <!-- When using RMI outside of a cluster, the host URL must be defined, either as a system property, --> |
| <!-- in the persistence.xml or in code in a SessionCustomizer --> |
| <sysproperty key="eclipselink.cache.coordination.rmi.url" value="t3://${JEE_HOST}:${JEE_PORT3}/" /> |
| <classpath> |
| <fileset dir="${JEE_SERVER}/lib" includes="weblogic.jar,weblogic_sp.jar"/> |
| <pathelement location="${env.JAVA_HOME}/lib/tools.jar"/> |
| </classpath> |
| </java> |
| <sequential> |
| <waitfor> |
| <and> |
| <socket server="${JEE_HOST}" port="${JEE_PORT1}"/> |
| <socket server="${JEE_HOST}" port="${JEE_PORT2}"/> |
| <socket server="${JEE_HOST}" port="${JEE_PORT3}"/> |
| </and> |
| </waitfor> |
| <sleep seconds="30"/> |
| <echo message="*** done, do not close/break prompt "/> |
| </sequential> |
| </parallel> |
| </sequential> |
| </parallel> |
| </target> |
| |
| <!-- Stop the servers. --> |
| <target name="stop-cluster"> |
| <wlserver fork="true" failonerror="false" weblogichome="${WEBLOGIC_HOME}" |
| dir="${JEE_DOMAIN}" host="${JEE_HOST}" port="7001" servername="admin" |
| username="${JEE_USER}" password="${JEE_PASSWORD}" action="shutdown"> |
| </wlserver> |
| <wlserver fork="true" failonerror="false" weblogichome="${WEBLOGIC_HOME}" |
| dir="${JEE_DOMAIN}" host="${JEE_HOST}" port="${JEE_PORT1}" servername="server1" |
| username="${JEE_USER}" password="${JEE_PASSWORD}" action="shutdown"> |
| </wlserver> |
| <wlserver fork="true" failonerror="false" weblogichome="${WEBLOGIC_HOME}" |
| dir="${JEE_DOMAIN}" host="${JEE_HOST}" port="${JEE_PORT2}" servername="server2" |
| username="${JEE_USER}" password="${JEE_PASSWORD}" action="shutdown"> |
| </wlserver> |
| <wlserver fork="true" failonerror="false" weblogichome="${WEBLOGIC_HOME}" |
| dir="${JEE_DOMAIN}" host="${JEE_HOST}" port="${JEE_PORT3}" servername="server3" |
| username="${JEE_USER}" password="${JEE_PASSWORD}" action="shutdown"> |
| </wlserver> |
| </target> |
| |
| <!-- |
| Deploy the application ear to the servers. |
| Note: WLS server must be running. |
| --> |
| <target name="deploy"> |
| <wldeploy action="deploy" |
| name="employee" source="employee.ear" |
| user="${JEE_USER}" password="${JEE_PASSWORD}" |
| adminurl="t3://${JEE_HOST}:7001" |
| failonerror="false" targets="server1,server2,server3"> |
| </wldeploy> |
| </target> |
| |
| <target name="example"> |
| <java classname="example.Transactions" fork="true"> |
| <!--jvmarg value="${AGENT}"/--> |
| <classpath refid="example.classpath"/> |
| </java> |
| </target> |
| </project> |
| |