diff --git a/.gitignore b/.gitignore
index 2f7896d..2b39c86 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,2 @@
target/
+Gemfile.lock
diff --git a/Gemfile.lock b/Gemfile.lock
index ca2d92b..2ab3b83 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -2,15 +2,14 @@ GEM
remote: https://rubygems.org/
specs:
atoulme-Antwrap (0.7.5-java)
- bouncy-castle-java (1.5.0147)
builder (3.2.2)
- buildr (1.4.23-java)
+ buildr (1.4.25-java)
atoulme-Antwrap (= 0.7.5)
builder (= 3.2.2)
bundler
diff-lcs (= 1.2.4)
hoe (= 3.7.1)
- jruby-openssl (~> 0.8.2)
+ jruby-openssl (~> 0.9.16)
jruby-pageant (= 1.1.1)
json_pure (= 1.8.0)
minitar (= 0.5.4)
@@ -23,15 +22,14 @@ GEM
diff-lcs (1.2.4)
hoe (3.7.1)
rake (>= 0.8, < 11.0)
- jruby-openssl (0.8.10)
- bouncy-castle-java (>= 1.5.0147)
+ jruby-openssl (0.9.21-java)
jruby-pageant (1.1.1-java)
json_pure (1.8.0)
minitar (0.5.4)
net-sftp (2.1.2)
net-ssh (>= 2.6.5)
net-ssh (2.7.0)
- nokogiri (1.6.6.2-java)
+ nokogiri (1.8.0-java)
orderedhash (0.0.6)
rake (0.9.2.2)
rspec (2.14.1)
@@ -57,4 +55,4 @@ DEPENDENCIES
rspec-mocks (= 2.14.3)
BUNDLED WITH
- 1.10.5
+ 1.15.3
diff --git a/README.md b/README.md
index 2c3761f..8f85f23 100644
--- a/README.md
+++ b/README.md
@@ -24,8 +24,12 @@ In the same fashion, other database setups can be added. All database configurat
be changed in tomcat/conf/resources.properties later on.
To create the pre-configured bundle, change the settings in `profiles.yaml` and then run
-
+
+ For Tomcat
/jruby1.x-x/bin/jruby -S buildr clean package -e mysql
+
+ For TomEE
+ /jruby1.x-x/bin/jruby -S buildr -f buildfile-tomee clean package -e mysql
`-e mysql` identifies the mysql profile. If you have added other profiles in your profiles.yaml, you can select them using the `-e` switch.
diff --git a/buildfile b/buildfile
index bd08b62..672f88d 100644
--- a/buildfile
+++ b/buildfile
@@ -17,18 +17,20 @@
require 'nokogiri'
# The ODE version to bundle with Tomcat:
-ODE_WAR = "org.apache.ode:ode-axis2-war:war:1.3.7-SNAPSHOT"
+ODE_WAR = "org.apache.ode:ode-axis2-war:war:1.3.8-SNAPSHOT"
# the Tomcat version to bundle ODE with:
-TOMCAT_ZIP = "org.apache.tomcat:tomcat:zip:7.0.63"
+TOMCAT_ZIP = "org.apache.tomcat:tomcat:zip:8.5.16"
# BTM + dependencies
BITRONIX = group("btm", "btm-tomcat55-lifecycle", :under=>"org.codehaus.btm", :version=>"2.1.4")
-SLF4J = ['org.slf4j:slf4j-api:jar:1.6.4', 'org.slf4j:slf4j-jdk14:jar:1.6.4']
-JTA = 'org.apache.geronimo.specs:geronimo-jta_1.1_spec:jar:1.1.1'
-HIBERNATE = [ "org.hibernate:hibernate-core:jar:3.3.2.GA", "asm:asm:jar:3.3.1",
- "antlr:antlr:jar:2.7.6", "cglib:cglib:jar:2.2", "net.sf.ehcache:ehcache:jar:1.2.3",
- "dom4j:dom4j:jar:1.6.1", "javassist:javassist:jar:3.9.0.GA" ]
+SLF4J = ['org.slf4j:slf4j-api:jar:1.7.12', 'org.slf4j:jcl-over-slf4j:jar:1.7.12']
+JTA = 'org.jboss.spec.javax.transaction:jboss-transaction-api_1.2_spec:jar:1.0.0.Final'
+HIBERNATE = ["org.hibernate:hibernate-core:jar:4.3.11.Final", "org.javassist:javassist:jar:3.18.1-GA", "antlr:antlr:jar:2.7.7",
+ "dom4j:dom4j:jar:1.6.1", "org.hibernate.common:hibernate-commons-annotations:jar:4.0.5.Final",
+ "org.jboss:jandex:jar:1.1.0.Final", "org.jboss.logging:jboss-logging:jar:3.1.3.GA" ,
+ "org.jboss.logging:jboss-logging-annotations:jar:1.2.0.Beta1",
+ "org.hibernate.javax.persistence:hibernate-jpa-2.1-api:jar:1.0.0.Final"]
repositories.remote << "http://repo1.maven.org/maven2"
@@ -38,7 +40,7 @@ define "apache-ode-tomcat-bundle" do
project.version = artifact(ODE_WAR).version
project.group = 'de.taval.ode'
- exploded_tomcat = unzip(_("target/tomcat") => artifact(TOMCAT_ZIP)).from_path("apache-tomcat-7.0.63").target
+ exploded_tomcat = unzip(_("target/tomcat") => artifact(TOMCAT_ZIP)).from_path("apache-tomcat-8.5.16").target
exploded_ode = unzip(_(:target, 'tomcat/webapps/ode') => artifact(ODE_WAR)).target
# filter resources
@@ -64,7 +66,10 @@ define "apache-ode-tomcat-bundle" do
rm_rf _(:target, "tomcat/webapps/docs")
# remove conflicting jar
- rm _(:target, "tomcat/webapps/ode/WEB-INF/lib/geronimo-jta_1.1_spec-1.1.jar")
+ rm _(:target, "tomcat/webapps/ode/WEB-INF/lib/geronimo-jta_1.1_spec-1.1.1.jar")
+ rm _(:target, "tomcat/webapps/ode/WEB-INF/lib/geronimo-transaction-3.1.3.jar")
+ rm _(:target, "tomcat/webapps/ode/WEB-INF/lib/geronimo-jpa_2.0_spec-1.1.jar")
+
# add resources to web.xml
resourcesxml = Nokogiri::XML <<-eos
@@ -76,12 +81,12 @@ define "apache-ode-tomcat-bundle" do
eos
webxml = Nokogiri::XML(File.open(_(:target, "tomcat/webapps/ode/WEB-INF/web.xml")))
- webxml.xpath('//web-app').first.add_child(resourcesxml.root)
+ webxml.xpath('//xmlns:web-app').first.add_child(resourcesxml.root)
File.open(_(:target, "tomcat/webapps/ode/WEB-INF/web.xml"),'w') {|f| webxml.write_xml_to f}
# add TomcatFactory to ode-axis2.properties
File.open(_(:target, "tomcat/webapps/ode/WEB-INF/conf/ode-axis2.properties"), 'a') do |file|
- file.puts "\node-axis2.tx.factory.class = org.apache.ode.axis2.util.TomcatFactory"
+ file.puts "\node-axis2.tx.factory.class=org.apache.ode.axis2.util.TomcatFactory"
file.puts "ode-axis2.db.mode=EXTERNAL"
file.puts "ode-axis2.db.ext.dataSource=java:comp/env/jdbc/ode"
file.puts "ode-axis2.dao.factory=#{Buildr.settings.profile['filter']['ode.dao']}" if Buildr.settings.profile['filter']['ode.dao']
diff --git a/buildfile-tomee b/buildfile-tomee
new file mode 100644
index 0000000..7d7f807
--- /dev/null
+++ b/buildfile-tomee
@@ -0,0 +1,106 @@
+# 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.
+#
+
+require 'nokogiri'
+
+# The ODE version to bundle with Tomcat:
+ODE_WAR = "org.apache.ode:ode-axis2-war:war:1.3.7-SNAPSHOT"
+# the Tomcat version to bundle ODE with:
+TOMEE_ZIP = "org.apache.openejb:apache-tomee:zip:webprofile:1.7.2"
+
+SLF4J = ['org.slf4j:slf4j-api:jar:1.7.12', 'org.slf4j:jcl-over-slf4j:jar:1.7.12']
+OPENJPA = ['org.apache.openjpa:openjpa:jar:1.2.3']
+HIBERNATE = [ "org.hibernate:hibernate-core:jar:3.3.2.GA", "asm:asm:jar:3.3.1",
+ "antlr:antlr:jar:2.7.6", "cglib:cglib:jar:2.2", "net.sf.ehcache:ehcache:jar:1.2.3",
+ "dom4j:dom4j:jar:1.6.1", "javassist:javassist:jar:3.9.0.GA" ]
+
+
+repositories.remote << "http://repo1.maven.org/maven2"
+repositories.remote << "https://repository.apache.org/content/groups/snapshots"
+
+desc "The Apache ODE Tomcat Bundle project"
+define "apache-ode-tomee-bundle" do
+
+ project.version = artifact(ODE_WAR).version
+ project.group = 'de.taval.ode'
+
+ exploded_tomcat = unzip(_("target/tomcat") => artifact(TOMEE_ZIP)).from_path('apache-tomee-webprofile-1.7.2').target
+ exploded_ode = unzip(_(:target, 'tomcat/webapps/ode') => artifact(ODE_WAR)).target
+
+ # filter resources
+ resources.filter.using(:ruby, Buildr.settings.profile['filter'])
+
+ resources.enhance [exploded_tomcat]
+ resources.enhance do
+ # explode ODE
+ exploded_ode.invoke
+
+ # copy filtered resources to tomee
+ cp_r 'target/resources/tomee/.', _(:target, "tomcat")
+
+ # remove conflicting jar from tomee
+ rm _(:target, "tomcat/lib/commons-logging-1.1.1.jar")
+ rm _(:target, "tomcat/lib/slf4j-api-1.7.7.jar")
+ rm _(:target, "tomcat/lib/slf4j-jdk14-1.7.7.jar")
+ rm _(:target, "tomcat/lib/openjpa-2.4.0.jar")
+
+ # remove unneeded webapps
+ rm_rf _(:target, "tomcat/webapps/examples")
+ rm_rf _(:target, "tomcat/webapps/docs")
+
+ # remove conflicting jar from ODE
+ rm _(:target, "tomcat/webapps/ode/WEB-INF/lib/geronimo-jta_1.1_spec-1.1.jar")
+ rm _(:target, "tomcat/webapps/ode/WEB-INF/lib/geronimo-transaction-2.0.1.jar")
+ rm _(:target, "tomcat/webapps/ode/WEB-INF/lib/geronimo-spec-jms-1.1-rc4.jar")
+ rm _(:target, "tomcat/webapps/ode/WEB-INF/lib/geronimo-javamail_1.4_spec-1.7.1.jar")
+
+ # copy SLF4J, OPENJPA, JDBC driver to Tomcat
+ cp artifacts(SLF4J, OPENJPA, Buildr.settings.profile['filter']['jdbc.gav']).collect { |t| t.invoke; t.to_s }, _(:target, 'tomcat/lib')
+
+ if Buildr.settings.profile['filter']['ode.dao'] and Buildr.settings.profile['filter']['ode.dao'].include? "daohib"
+ cp artifacts(HIBERNATE).collect { |t| t.invoke; t.to_s }, _(:target, 'tomcat/webapps/ode/WEB-INF/lib')
+ end
+
+ # add resources to web.xml
+ resourcesxml = Nokogiri::XML <<-eos
+
+ jdbc/ode
+ javax.sql.DataSource
+ Container
+ Shareable
+
+ eos
+
+ webxml = Nokogiri::XML(File.open(_(:target, "tomcat/webapps/ode/WEB-INF/web.xml")))
+
+ # AxisAdminServlet is not available in the classpath, need to remove it.
+ webxml.xpath('//xmlns:web-app/xmlns:servlet[xmlns:servlet-name[text()="AxisAdminServlet"]]').remove
+ webxml.xpath('//xmlns:web-app/xmlns:servlet-mapping[xmlns:servlet-name[text()="AxisAdminServlet"]]').remove
+
+ webxml.xpath('//xmlns:web-app').first.add_child(resourcesxml.root)
+
+ File.open(_(:target, "tomcat/webapps/ode/WEB-INF/web.xml"),'w') {|f| webxml.write_xml_to f}
+
+ # add TomcatFactory to ode-axis2.properties
+ File.open(_(:target, "tomcat/webapps/ode/WEB-INF/conf/ode-axis2.properties"), 'a') do |file|
+ file.puts "\node-axis2.tx.factory.class=org.apache.ode.axis2.util.TomcatFactory"
+ file.puts "ode-axis2.db.mode=EXTERNAL"
+ file.puts "ode-axis2.db.ext.dataSource=java:comp/env/jdbc/ode"
+ file.puts "ode-axis2.dao.factory=#{Buildr.settings.profile['filter']['ode.dao']}" if Buildr.settings.profile['filter']['ode.dao']
+ end
+ end
+ package(:zip).include _("target/tomcat"), :as=>"apache-ode-tomee-bundle-#{project.version}"
+end
\ No newline at end of file
diff --git a/profiles.yaml b/profiles.yaml
index 8afe410..74d3e23 100644
--- a/profiles.yaml
+++ b/profiles.yaml
@@ -9,6 +9,6 @@ mysql:
jdbc.url: "jdbc:mysql://localhost:3306/ode"
jdbc.user: "root"
jdbc.password: ""
- jdbc.gav: "mysql:mysql-connector-java:jar:5.1.26"
+ jdbc.gav: "mysql:mysql-connector-java:jar:5.1.43"
ode.dao: "org.apache.ode.daohib.bpel.BpelDAOConnectionFactoryImpl" # for Hibernate
#ode.dao: "org.apache.ode.dao.jpa.BPELDAOConnectionFactoryImpl" # for OpenJPA
diff --git a/src/main/resources/tomcat/bin/setenv.bat b/src/main/resources/tomcat/bin/setenv.bat
index 0719d42..a70814b 100644
--- a/src/main/resources/tomcat/bin/setenv.bat
+++ b/src/main/resources/tomcat/bin/setenv.bat
@@ -1 +1 @@
-set CATALINA_OPTS=-Dbtm.root=%CATALINA_HOME% -Dbitronix.tm.configuration=%CATALINA_HOME%\conf\btm-config.properties
\ No newline at end of file
+set CATALINA_OPTS=-Dbtm.root=%CATALINA_HOME% -Dbitronix.tm.configuration=%CATALINA_HOME%\conf\btm-config.properties -Dorg.jboss.logging.provider=slf4j
diff --git a/src/main/resources/tomcat/bin/setenv.sh b/src/main/resources/tomcat/bin/setenv.sh
index a0c3813..affa35d 100644
--- a/src/main/resources/tomcat/bin/setenv.sh
+++ b/src/main/resources/tomcat/bin/setenv.sh
@@ -1 +1 @@
-CATALINA_OPTS="-Dbtm.root=$CATALINA_HOME -Dbitronix.tm.configuration=$CATALINA_HOME/conf/btm-config.properties"
\ No newline at end of file
+CATALINA_OPTS="-Dbtm.root=$CATALINA_HOME -Dbitronix.tm.configuration=$CATALINA_HOME/conf/btm-config.properties -Dorg.jboss.logging.provider=slf4j"
diff --git a/src/main/resources/tomcat/conf/context.xml b/src/main/resources/tomcat/conf/context.xml
index b65826a..2ec0fae 100644
--- a/src/main/resources/tomcat/conf/context.xml
+++ b/src/main/resources/tomcat/conf/context.xml
@@ -1,4 +1,4 @@
-
+
-
+
+
WEB-INF/web.xml
+ ${catalina.base}/conf/web.xml
-
-
-
-
-
-
\ No newline at end of file
+
diff --git a/src/main/resources/tomcat/conf/server.xml b/src/main/resources/tomcat/conf/server.xml
index 84eefc9..d9e0ce1 100644
--- a/src/main/resources/tomcat/conf/server.xml
+++ b/src/main/resources/tomcat/conf/server.xml
@@ -1,4 +1,4 @@
-
+
+
-
-
@@ -63,10 +62,10 @@
-->
-
+
+
+
@@ -134,7 +159,7 @@
Documentation at: /docs/config/valve.html
Note: The pattern used is equivalent to using pattern="common" -->
diff --git a/src/main/resources/tomee/conf/tomee.xml b/src/main/resources/tomee/conf/tomee.xml
new file mode 100644
index 0000000..118d4bb
--- /dev/null
+++ b/src/main/resources/tomee/conf/tomee.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+ jdbcDriver=com.mysql.jdbc.Driver
+ jdbcUrl=jdbc:mysql://localhost/ode
+ userName=root
+ password=
+ defaultAutoCommit=false
+ jtaManaged=true
+ initialSize=2
+ maxActive=30
+
+