You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ode.apache.org by as...@apache.org on 2007/04/02 23:17:00 UTC
svn commit: r524923 - in /incubator/ode/trunk: Rakefile
bpel-runtime/src/test/java/org/apache/ode/bpel/elang/xpath20/runtime/MockCompilerContext.java
tasks/hibernate.rake
Author: assaf
Date: Mon Apr 2 14:16:59 2007
New Revision: 524923
URL: http://svn.apache.org/viewvc?view=rev&rev=524923
Log:
Added Hibernate tasks for dao-hibernate(-db)
Added:
incubator/ode/trunk/tasks/hibernate.rake
Modified:
incubator/ode/trunk/Rakefile
incubator/ode/trunk/bpel-runtime/src/test/java/org/apache/ode/bpel/elang/xpath20/runtime/MockCompilerContext.java
Modified: incubator/ode/trunk/Rakefile
URL: http://svn.apache.org/viewvc/incubator/ode/trunk/Rakefile?view=diff&rev=524923&r1=524922&r2=524923
==============================================================================
--- incubator/ode/trunk/Rakefile (original)
+++ incubator/ode/trunk/Rakefile Mon Apr 2 14:16:59 2007
@@ -1,5 +1,6 @@
require "buildr/lib/buildr.rb"
+
# Keep this structure to allow the build system to update version numbers.
VERSION_NUMBER = "2.0-SNAPSHOT"
NEXT_VERSION = "2.1"
@@ -69,8 +70,10 @@
repositories.remote << "http://pxe.intalio.org/public/maven2"
repositories.remote << "http://people.apache.org/repo/m2-incubating-repository"
repositories.remote << "http://repo1.maven.org/maven2"
+repositories.remote << "http://people.apache.org/repo/m2-snapshot-repository"
repositories.deploy_to[:url] ||= "sftp://ode.intalio.org/var/www/public/maven2"
+
define "ode", :group=>"org.apache.ode", :version=>VERSION_NUMBER do
compile.options.source = "1.5"
@@ -89,26 +92,12 @@
JAVAX.activation, JAVAX.servlet, JAVAX.stream,
JAVAX.transaction, JENCKS, WSDL4J, XMLBEANS
-=begin
- tests.compile.with *compile.classpath
tests.compile.with project("ode:tools")
-=end
-
- package :jar
- end
+ tests.run.with XERCES, WOODSTOX, AXIOM, WS_COMMONS.xml_schema, JAVAX.javamail
- desc "ODE JBI Integration Layer"
- define "jbi" do
- compile.with project("ode:bpel-api"), project("ode:bpel-connector"),
- project("ode:bpel-dao"), project("ode:bpel-epr"), project("ode:bpel-obj"),
- project("ode:bpel-runtime"), project("ode:bpel-scheduler-quartz"),
- project("ode:bpel-schemas"), project("ode:bpel-store"),
- project("ode:utils"),
- COMMONS.logging, COMMONS.pool, JAVAX.transaction, JBI, LOG4J, WSDL4J, XERCES
package :jar
end
-
desc "ODE Axis2 Based Web Application"
define "axis2-war" do
libs = project("ode:axis2"), project("ode:bpel-api"),
@@ -120,7 +109,7 @@
project("ode:dao-hibernate"), project("ode:jacob"),
project("ode:jca-ra"), project("ode:jca-server"),
project("ode:utils"),
- project("ode:dao-jpa"), project("ode:dao-jpa-ojpa-derby"),
+ project("ode:dao-jpa"),
AXIS2_ALL, ANNONGEN, BACKPORT, COMMONS.codec,
COMMONS.collections, COMMONS.fileupload, COMMONS.httpclient,
COMMONS.lang, COMMONS.pool, DERBY, DERBY_TOOLS,
@@ -132,19 +121,17 @@
WS_COMMONS.axiom, WS_COMMONS.neethi, WS_COMMONS.xml_schema,
XALAN, XERCES, XMLBEANS
- # resources filter(path_to(:base_dir, "../axis2/src/main/wsdl/*")).into(path_to(:target_dir, "resources"))
- # resources filter(path_to(:base_dir, "../bpel-schemas/src/main/xsd/pmapi.xsd")).into(path_to(:target_dir, "resources"))
-
- package(:war).with(:libs=>libs).path("WEB-INF").
- merge(project("ode:dao-jpa-ojpa-derby").package(:zip))
- package(:war).path("WEB-INF").include project("ode:axis2").path_to("src/main/wsdl/*")
- package(:war).path("WEB-INF").include project("ode:bpel-schemas").path_to("src/main/xsd/pmapi.xsd")
+ package(:war).with(:libs=>libs).path("WEB-INF").tap do |web_inf|
+ web_inf.merge project("ode:dao-jpa-ojpa-derby").package(:zip)
+ web_inf.merge project("ode:dao-hibernate-db").package(:zip)
+ web_inf.include project("ode:axis2").path_to("src/main/wsdl/*")
+ web_inf.include project("ode:bpel-schemas").path_to("src/main/xsd/pmapi.xsd")
+ end
webserve.using(:war_path=>package(:war).name, :context_path=>"/ode",
- :process_alias=>{"HelloWorld2"=>"distro-axis2/src/examples/HelloWorld2",
- "DynPartner"=>"distro-axis2/src/examples/DynPartner",
- "MagicSession"=>"distro-axis2/src/examples/MagicSession"}
- )
+ :process_alias=>{"HelloWorld2"=>"distro-axis2/src/examples/HelloWorld2",
+ "DynPartner"=>"distro-axis2/src/examples/DynPartner",
+ "MagicSession"=>"distro-axis2/src/examples/MagicSession"} )
end
desc "ODE APIs"
@@ -203,8 +190,8 @@
jjtree_out = path_to(:target_dir, "generated/jjtree")
javacc_out = path_to(:target_dir, "generated/javacc")
- prepare JavaCC.jjtree_task(path_to(jjtree_out, "org/apache/ode/ql/jcc")=>jjtree_src).using(:build_node_files=>false)
- prepare JavaCC.javacc_task(path_to(javacc_out, "org/apache/ode/ql/jcc")=>jjtree_out)
+ prepare Java::JavaCC.jjtree_task(path_to(jjtree_out, "org/apache/ode/ql/jcc")=>jjtree_src).using(:build_node_files=>false)
+ prepare Java::JavaCC.javacc_task(path_to(javacc_out, "org/apache/ode/ql/jcc")=>jjtree_out)
compile.with project("ode:bpel-api"), project("ode:bpel-compiler"),
project("ode:bpel-obj"), project("ode:jacob"), project("ode:utils"),
@@ -231,19 +218,11 @@
# Include the generated sources.
compile.from generated
-=begin
- tests.resources do |task|
- #rm_rf path_to(:test_target_dir, "derby-db")
- if tests.compile.compiled?
- unzip(artifact("#{group}:ode-dao-jpa-ojpa-derby:zip:#{version}")).into(path_to(:test_target_dir, "derby-db")).invoke
- end
- end
- tests.compile.with *compile.classpath
tests.compile.with project("ode:bpel-scheduler-quartz"),
project("ode:dao-jpa"),
COMMONS.pool, COMMONS.lang, DERBY, JAVAX.connector, JAVAX.transaction,
- LOG4J, XERCES, OpenJPA::REQUIRES, QUARTZ, XALAN
-=end
+ LOG4J, XERCES, Java::OpenJPA::REQUIRES, QUARTZ, XALAN
+ tests.resources unzip(project("ode:dao-jpa-ojpa-derby").package(:zip)).into(path_to(:test_target_dir, "derby-db"))
package :jar
end
@@ -260,10 +239,8 @@
schemas = [ path_to(:src_dir, "main/xsd/pmapi.xsdconfig"),
path_to(:src_dir, "main/xsd/dd.xsdconfig"), path_to(:src_dir, "main/xsd") ]
generated = path_to(:target_dir, "generated")
- prepare XMLBeans.compile_task(generated=>schemas).
- using(:javasource=>compile.options.source,
- :classes=>path_to(:java_target_dir),
- :jar=>path_to(:target_dir, "xmlbeans.jar"))
+ prepare Java::XMLBeans.compile_task(generated=>schemas).
+ using(:javasource=>compile.options.source, :classes=>path_to(:java_target_dir))
compile.from generated
compile.with JAVAX.stream, XMLBEANS
@@ -284,10 +261,12 @@
HIBERNATE, HSQLDB, XMLBEANS, XERCES, WSDL4J
compile do |task|
- OpenJPA.enhance(:output=>compile.target, :classpath=>compile.classpath,
+ Java::OpenJPA.enhance(:output=>compile.target, :classpath=>compile.classpath,
:properties=>path_to(:resources_dir, "META-INF/persistence.xml"))
end
+ tests.run.with DOM4J
+
package :jar
end
@@ -297,15 +276,11 @@
project("ode:bpel-dao"), project("ode:bpel-runtime"),
project("ode:bpel-store"), project("ode:utils"),
DERBY, WSDL4J
-
- tests.resources.into(path_to(:test_target_dir))
- tests.compile.with *compile.classpath
- tests.compile.with project("ode:bpel-schemas"), project("ode:bpel-scheduler-quartz"),
- project("ode:bpel-obj"), project("ode:dao-jpa"),
- project("ode:jacob"),
- COMMONS.pool, COMMONS.lang, COMMONS.logging, DERBY, JAVAX.connector,
- JAVAX.transaction, JAVAX.stream, JAXEN, HSQLDB, LOG4J, XERCES, OpenJPA::REQUIRES,
- QUARTZ, SAXON, XALAN, XMLBEANS
+
+ tests.compile.with project("ode:dao-jpa"), JAVAX.persistence
+ tests.run.with project("ode:bpel-obj"), project("ode:jacob"), project("ode:bpel-schemas"), project("ode:dao-jpa"),
+ COMMONS.collections, COMMONS.lang, COMMONS.logging,
+ JAVAX.connector, JAVAX.stream, JAVAX.transaction, JAXEN, HSQLDB, LOG4J, OPENJPA, SAXON, XERCES, XMLBEANS, XALAN
package :jar
end
@@ -315,9 +290,46 @@
compile.with project("ode:bpel-api"), project("ode:bpel-dao"),
project("ode:bpel-ql"), project("ode:utils"),
COMMONS.lang, COMMONS.logging, JAVAX.transaction, HIBERNATE, DOM4J
+
+ compile do
+ Java::Hibernate.xdoclet :source=>compile.sources, :include=>"**/*.java",
+ :target=>compile.target, :excludedtags=>"@version,@author,@todo"
+ end
+
package :jar
end
+ desc "ODE Hibernate Compatible Databases"
+ define "dao-hibernate-db" do
+
+ def predefined_for(name) ; file(path_to(:src_dir, "main", "sql", "tables_#{name}.sql")); end
+ def properties_for(name) ; file(path_to(:src_dir, "main", "sql", "ode.#{name}.properties")); end
+
+ dao_hibernate = project("ode:dao-hibernate").compile.target
+ bpel_store = project("ode:bpel-store").compile.target
+
+ export_task = Java::Hibernate.schemaexport_task
+ export = lambda do |properties, sources, target|
+ export_task.enhance([properties, sources]) do |task|
+ task.ant.schemaexport(:properties=>properties.to_s, :quiet=>"yes", :text=>"yes", :delimiter=>";",
+ :drop=>"no", :create=>"yes", :output=>target.to_s) { fileset(:dir=>sources.to_s) { include :name=>"**/*.hbm.xml" } }
+ end
+ file_create(target.to_s) { export_task.invoke }
+ end
+
+ build file_create(path_to(:target_dir)) { |task| mkpath task.name }
+ runtime_sql = export.call(properties_for(:derby), dao_hibernate, path_to(:target_dir, "runtime.sql"))
+ store_sql = export.call(properties_for(:derby), bpel_store, path_to(:target_dir, "store.sql"))
+ derby_sql = concat(path_to(:target_dir, "derby.sql")=>[ predefined_for(:derby), runtime_sql, store_sql ])
+ %w{ firebird hsql postgres sqlserver }.each do |db|
+ partial = export.call(properties_for(db), dao_hibernate, path_to(:target_dir, "partial.#{db}.sql"))
+ build concat(path_to(:target_dir, "#{db}.sql")=>[ predefined_for(db), partial ])
+ end
+
+ build derby_db = Derby.create(path_to(:target_dir, "derby/hibdb")=>derby_sql)
+ package :zip, :include=>derby_db
+ end
+
desc "ODE OpenJPA DAO Implementation"
define "dao-jpa" do
compile.with project("ode:bpel-api"), project("ode:bpel-dao"), project("ode:utils"),
@@ -325,7 +337,7 @@
OPENJPA, XERCES
compile do |task|
- OpenJPA.enhance :output=>compile.target, :classpath=>compile.classpath,
+ Java::OpenJPA.enhance :output=>compile.target, :classpath=>compile.classpath,
:properties=>path_to(:resources_dir, "META-INF/persistence.xml" )
end
package :jar
@@ -339,13 +351,18 @@
quartz_sql = path_to(:src_dir, "main/scripts/quartz-derby.sql")
derby_sql = file(path_to(:target_dir, "derby.sql")=>[derby_xml, quartz_sql]) do |task|
mkpath path_to(:target_dir), :verbose=>false
- OpenJPA.mapping_tool :properties=>derby_xml, :action=>"build", :sql=>task.name,
+ Java::OpenJPA.mapping_tool :properties=>derby_xml, :action=>"build", :sql=>task.name,
:classpath=>artifacts( project("ode:bpel-store"), project("ode:dao-jpa"),
project("ode:bpel-api"), project("ode:bpel-dao"),
project("ode:utils") )
File.open(task.name, "a") { |file| file.write File.read(quartz_sql) }
end
+ tests.compile.with project("ode:bpel-api"), project("ode:bpel-dao"),
+ project("ode:bpel-obj"), project("ode:dao-jpa"), project("ode:utils"),
+ COMMONS.collections, COMMONS.logging, JAVAX.persistence, JAVAX.transaction,
+ OPENJPA, XERCES, WSDL4J
+
build derby_db = Derby.create(path_to(:target_dir, "derby/jpadb")=>derby_sql)
package :zip, :include=>derby_db
end
@@ -393,6 +410,17 @@
desc "ODE Jacob APR Code Generation"
define "jacob-ap" do
compile.with Java.tools
+ package :jar
+ end
+
+ desc "ODE JBI Integration Layer"
+ define "jbi" do
+ compile.with project("ode:bpel-api"), project("ode:bpel-connector"),
+ project("ode:bpel-dao"), project("ode:bpel-epr"), project("ode:bpel-obj"),
+ project("ode:bpel-runtime"), project("ode:bpel-scheduler-quartz"),
+ project("ode:bpel-schemas"), project("ode:bpel-store"),
+ project("ode:utils"),
+ COMMONS.logging, COMMONS.pool, JAVAX.transaction, JBI, LOG4J, WSDL4J, XERCES
package :jar
end
Modified: incubator/ode/trunk/bpel-runtime/src/test/java/org/apache/ode/bpel/elang/xpath20/runtime/MockCompilerContext.java
URL: http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-runtime/src/test/java/org/apache/ode/bpel/elang/xpath20/runtime/MockCompilerContext.java?view=diff&rev=524923&r1=524922&r2=524923
==============================================================================
--- incubator/ode/trunk/bpel-runtime/src/test/java/org/apache/ode/bpel/elang/xpath20/runtime/MockCompilerContext.java (original)
+++ incubator/ode/trunk/bpel-runtime/src/test/java/org/apache/ode/bpel/elang/xpath20/runtime/MockCompilerContext.java Mon Apr 2 14:16:59 2007
@@ -28,6 +28,7 @@
import org.apache.ode.bpel.compiler.api.CompilationException;
import org.apache.ode.bpel.compiler.api.CompilerContext;
+import org.apache.ode.bpel.compiler.api.SourceLocation;
import org.apache.ode.bpel.compiler.bom.Activity;
import org.apache.ode.bpel.compiler.bom.BpelObject;
import org.apache.ode.bpel.compiler.bom.Expression;
@@ -199,5 +200,8 @@
public OScope compileSLC(ScopeLikeActivity child, Variable[] variables) {
// TODO Auto-generated method stub
return null;
+ }
+
+ public void recoveredFromError(SourceLocation location, CompilationException error) {
}
}
Added: incubator/ode/trunk/tasks/hibernate.rake
URL: http://svn.apache.org/viewvc/incubator/ode/trunk/tasks/hibernate.rake?view=auto&rev=524923
==============================================================================
--- incubator/ode/trunk/tasks/hibernate.rake (added)
+++ incubator/ode/trunk/tasks/hibernate.rake Mon Apr 2 14:16:59 2007
@@ -0,0 +1,48 @@
+module Buildr
+ module Java
+ module Hibernate
+
+ REQUIRES = OpenObject.new
+ REQUIRES.collections = "commons-collections:commons-collections:jar:3.1"
+ REQUIRES.logging = "commons-logging:commons-logging:jar:1.0.3"
+ REQUIRES.dom4j = "dom4j:dom4j:jar:1.6.1"
+ REQUIRES.hibernate = "org.hibernate:hibernate:jar:3.1.2"
+ REQUIRES.xdoclet = [ "xdoclet:xdoclet-hibernate-module:jar:1.2.3", "xdoclet:xdoclet-xdoclet-module:jar:1.2.3",
+ "xdoclet:xdoclet:jar:1.2.3", "xdoclet:xjavadoc:jar:1.1-j5" ]
+
+ class << self
+
+ def xdoclet(options)
+ ant("hibernatedoclet") do |ant|
+ ant.taskdef :name=>"hibernatedoclet", :classname=>"xdoclet.modules.hibernate.HibernateDocletTask", :classpath=>requires
+ ant.hibernatedoclet :destdir=>options[:target].to_s, :excludedtags=>options[:excludedtags], :force=>"true" do
+ hibernate :version=>"3.0"
+ fileset :dir=>options[:source].to_s, :includes=>options[:include]
+ end
+ end
+ end
+
+ def schemaexport(name = "schemaexport")
+ ant(name) do |ant|
+ ant.taskdef :name=>"schemaexport", :classname=>"org.hibernate.tool.hbm2ddl.SchemaExportTask", :classpath=>requires
+ end
+ end
+
+ def schemaexport_task(name = "schemaexport")
+ task(name).tap do |task|
+ class << task ; attr_accessor :ant ; end
+ task.enhance { |task| task.ant = schemaexport(name) }
+ end
+ end
+
+ protected
+
+ def requires()
+ @requires ||= artifacts(REQUIRES.to_hash.values).each(&:invoke).map(&:to_s).join(File::PATH_SEPARATOR)
+ end
+
+ end
+
+ end
+ end
+end