You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ode.apache.org by ka...@apache.org on 2008/12/11 20:49:36 UTC

svn commit: r725794 - in /ode/branches/APACHE_ODE_1.X: ./ bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/ bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/api/ bpel-compiler/src/main/java/org/apache/ode/bpel/elang/xpath10/compiler/ bp...

Author: karthick
Date: Thu Dec 11 11:49:36 2008
New Revision: 725794

URL: http://svn.apache.org/viewvc?rev=725794&view=rev
Log:
Cache XSLT Style Sheets By Bundle (ODE-439)

Modified:
    ode/branches/APACHE_ODE_1.X/Rakefile
    ode/branches/APACHE_ODE_1.X/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/BpelCompiler.java
    ode/branches/APACHE_ODE_1.X/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/DefaultResourceFinder.java
    ode/branches/APACHE_ODE_1.X/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/ResourceFinder.java
    ode/branches/APACHE_ODE_1.X/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/api/CompilerContext.java
    ode/branches/APACHE_ODE_1.X/bpel-compiler/src/main/java/org/apache/ode/bpel/elang/xpath10/compiler/JaxenBpelHandler.java
    ode/branches/APACHE_ODE_1.X/bpel-compiler/src/main/java/org/apache/ode/bpel/elang/xpath10/compiler/XslCompileUriResolver.java
    ode/branches/APACHE_ODE_1.X/bpel-compiler/src/main/java/org/apache/ode/bpel/elang/xpath20/compiler/JaxpFunctionResolver.java
    ode/branches/APACHE_ODE_1.X/bpel-obj/src/main/java/org/apache/ode/bpel/elang/xpath10/o/OXPath10Expression.java
    ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath10/runtime/JaxenContexts.java
    ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath10/runtime/XslRuntimeUriResolver.java
    ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath20/runtime/JaxpFunctionResolver.java
    ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath20/runtime/XslRuntimeUriResolver.java
    ode/branches/APACHE_ODE_1.X/utils/src/main/java/org/apache/ode/utils/xsl/XslTransformHandler.java

Modified: ode/branches/APACHE_ODE_1.X/Rakefile
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/Rakefile?rev=725794&r1=725793&r2=725794&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/Rakefile (original)
+++ ode/branches/APACHE_ODE_1.X/Rakefile Thu Dec 11 11:49:36 2008
@@ -1,648 +1,648 @@
-#
-#    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.
-#
-
-gem "buildr", "~>1.2.4"
-require "buildr"
-require "buildr/xmlbeans.rb"
-require "buildr/openjpa"
-require "buildr/javacc"
-require "buildr/jetty"
-require "buildr/hibernate"
-
-# Keep this structure to allow the build system to update version numbers.
-VERSION_NUMBER = "1.2-SNAPSHOT"
-NEXT_VERSION = "1.3"
-
-ANNONGEN            = "annogen:annogen:jar:0.1.0"
-ANT                 = "ant:ant:jar:1.6.5"
-AXIOM               = [ group("axiom-api", "axiom-impl", "axiom-dom",
-                        :under=>"org.apache.ws.commons.axiom", :version=>"1.2.5") ]
-AXIS2_ALL           = group("axis2-adb", "axis2-codegen", "axis2-kernel",
-                        "axis2-java2wsdl", "axis2-jibx", "axis2-saaj", "axis2-xmlbeans",
-                        :under=>"org.apache.axis2", :version=>"1.3")
-AXIS2_TEST          = group("httpcore", "httpcore-nio", "httpcore-niossl", 
-                           :under=>"org.apache.httpcomponents", :version=>"4.0-alpha5")
-AXIS2_MODULES        = struct(
- :mods              => ["org.apache.rampart:rampart:mar:1.3", 
-                         "org.apache.rampart:rahas:mar:1.3",
-                         "org.apache.axis2:addressing:mar:1.3"],
- :libs              => [group("rampart-core", "rampart-policy", "rampart-trust",
-                              :under=>"org.apache.rampart",
-                              :version=>"1.3"), 
-                        "org.apache.ws.security:wss4j:jar:1.5.3", 
-                        "org.apache.santuario:xmlsec:jar:1.4.0",
-                        "opensaml:opensaml:jar:1.1",
-                        "bouncycastle:bcprov-jdk15:jar:132"] 
-)
-AXIS2_WAR           = "org.apache.axis2:axis2-webapp:war:1.3"
-BACKPORT            = "backport-util-concurrent:backport-util-concurrent:jar:3.0"
-COMMONS             = struct(
-  :codec            =>"commons-codec:commons-codec:jar:1.3",
-  :collections      =>"commons-collections:commons-collections:jar:3.1",
-  :dbcp             =>"commons-dbcp:commons-dbcp:jar:1.2.1",
-  :fileupload       =>"commons-fileupload:commons-fileupload:jar:1.1.1",
-  :httpclient       =>"commons-httpclient:commons-httpclient:jar:3.0",
-  :lang             =>"commons-lang:commons-lang:jar:2.3",
-  :logging          =>"commons-logging:commons-logging:jar:1.1",
-  :io               =>"commons-io:commons-io:jar:1.4",
-  :pool             =>"commons-pool:commons-pool:jar:1.2",
-  :primitives       =>"commons-primitives:commons-primitives:jar:1.0"
-)
-DERBY               = "org.apache.derby:derby:jar:10.4.1.3"
-DERBY_TOOLS         = "org.apache.derby:derbytools:jar:10.4.1.3"
-DOM4J               = "dom4j:dom4j:jar:1.6.1"
-GERONIMO            = struct(
-  :kernel           =>"org.apache.geronimo.modules:geronimo-kernel:jar:2.0.1",
-  :transaction      =>"org.apache.geronimo.components:geronimo-transaction:jar:2.0.1",
-  :connector        =>"org.apache.geronimo.components:geronimo-connector:jar:2.0.1"
-)
-HIBERNATE           = [ "org.hibernate:hibernate:jar:3.2.5.ga", "asm:asm:jar:1.5.3",
-                        "antlr:antlr:jar:2.7.6", "cglib:cglib:jar:2.1_3", "net.sf.ehcache:ehcache:jar:1.2.3" ]
-HSQLDB              = "hsqldb:hsqldb:jar:1.8.0.7"
-JAVAX               = struct(
-  :activation       =>"javax.activation:activation:jar:1.1",
-  #:activation       =>"geronimo-spec:geronimo-spec-activation:jar:1.0.2-rc4",
-  :connector        =>"org.apache.geronimo.specs:geronimo-j2ee-connector_1.5_spec:jar:1.0",
-  :ejb              =>"org.apache.geronimo.specs:geronimo-ejb_2.1_spec:jar:1.1",
-  :javamail         =>"geronimo-spec:geronimo-spec-javamail:jar:1.3.1-rc5",
-  :jms              =>"geronimo-spec:geronimo-spec-jms:jar:1.1-rc4",
-  :persistence      =>"javax.persistence:persistence-api:jar:1.0",
-  :servlet          =>"org.apache.geronimo.specs:geronimo-servlet_2.4_spec:jar:1.0",
-  :stream           =>"stax:stax-api:jar:1.0.1",
-  :transaction      =>"org.apache.geronimo.specs:geronimo-jta_1.1_spec:jar:1.1",
-  :resource         =>"org.apache.geronimo.specs:geronimo-j2ee-connector_1.5_spec:jar:1.0"
-)
-JAXEN               = "jaxen:jaxen:jar:1.1.1"
-JBI                 = "org.apache.servicemix:servicemix-jbi:jar:3.1.1-incubating"
-JENCKS              = "org.jencks:jencks:jar:all:1.3"
-JIBX                = "jibx:jibx-run:jar:1.1-beta3"
-LOG4J               = "log4j:log4j:jar:1.2.13"
-OPENJPA             = ["org.apache.openjpa:openjpa:jar:1.2.0",
-                       "net.sourceforge.serp:serp:jar:1.13.1"]
-
-SAXON               = group("saxon", "saxon-xpath", "saxon-dom", "saxon-xqj", :under=>"net.sf.saxon", :version=>"9.x")
-SERVICEMIX          = group("servicemix-core", "servicemix-shared", "servicemix-services",
-                        :under=>"org.apache.servicemix", :version=>"3.1-incubating")
-SPRING              = group("spring-beans", "spring-context", "spring-core", "spring-jmx",
-                        :under=>"org.springframework", :version=>"2.0.1")
-TRANQL              = [ "tranql:tranql-connector:jar:1.1", "axion:axion:jar:1.0-M3-dev", COMMONS.primitives ]
-WOODSTOX            = "woodstox:wstx-asl:jar:3.2.1"
-WSDL4J              = "wsdl4j:wsdl4j:jar:1.6.1"
-XALAN               = "org.apache.ode:xalan:jar:2.7.0-2"
-XERCES              = "xerces:xercesImpl:jar:2.9.0"
-XSTREAM             = "xstream:xstream:jar:1.2"
-WS_COMMONS          = struct(
-  :axiom            =>AXIOM,
-  :neethi           =>"org.apache.neethi:neethi:jar:2.0.2",
-  :xml_schema       =>"org.apache.ws.commons.schema:XmlSchema:jar:1.3.2"
-)
-XBEAN               = group("xbean-classloader", "xbean-kernel", "xbean-server", "xbean-spring",
-                        :under=>"org.apache.xbean", :version=>"2.8")
-XMLBEANS            = "org.apache.xmlbeans:xmlbeans:jar:2.3.0"
-
-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.remote << "http://download.java.net/maven/2"
-repositories.remote << "http://ws.zones.apache.org/repository2"
-repositories.release_to[:url] ||= "sftp://guest@localhost/home/guest"
-
-# Changing releases tag names
-class Release
-  class << self
-    def tag_with_apache_ode(version)
-      tag_without_apache_ode("APACHE_ODE_#{version.upcase}")
-    end
-    alias_method_chain :tag, :apache_ode
-  end
-end
-
-desc "Apache ODE"
-#define "ode", :group=>"org.apache.ode", :version=>VERSION_NUMBER do
-define "ode" do
-  project.version = VERSION_NUMBER
-  project.group = "org.apache.ode"
-
-  compile.options.source = "1.5"
-  compile.options.target = "1.5"
-  manifest["Implementation-Vendor"] = "Apache Software Foundation"
-  meta_inf << file("NOTICE")
-
-  desc "ODE Axis Integration Layer"
-  define "axis2" do
-    compile.with projects("bpel-api", "bpel-connector", "bpel-dao", "bpel-epr", "bpel-runtime",
-      "scheduler-simple", "bpel-schemas", "bpel-store", "utils"),
-      AXIOM, AXIS2_ALL, COMMONS.lang, COMMONS.logging, COMMONS.collections, COMMONS.httpclient, COMMONS.lang, 
-      DERBY, GERONIMO.kernel, GERONIMO.transaction, JAVAX.activation, JAVAX.servlet, JAVAX.stream, 
-      JAVAX.transaction, JENCKS, WSDL4J, WS_COMMONS, XMLBEANS, AXIS2_MODULES.libs
-
-    test.exclude 'org.apache.ode.axis2.management.*'
-    test.with project("tools"), AXIOM, JAVAX.javamail, COMMONS.codec, COMMONS.httpclient, XERCES, WOODSTOX
-
-    package :jar
-  end
-
-  desc "ODE Axis2 Based Web Application"
-  define "axis2-war" do
-    libs = projects("axis2", "bpel-api", "bpel-compiler", "bpel-connector", "bpel-dao",
-      "bpel-epr", "bpel-obj", "bpel-ql", "bpel-runtime", "scheduler-simple",
-      "bpel-schemas", "bpel-store", "dao-hibernate", "jacob", "jca-ra", "jca-server",
-      "utils", "dao-jpa"),
-      AXIS2_ALL, ANNONGEN, BACKPORT, COMMONS.codec, COMMONS.collections, COMMONS.fileupload, COMMONS.io, COMMONS.httpclient,
-      COMMONS.lang, COMMONS.logging, COMMONS.pool, DERBY, DERBY_TOOLS, JAXEN, JAVAX.activation, JAVAX.ejb, JAVAX.javamail,
-      JAVAX.connector, JAVAX.jms, JAVAX.persistence, JAVAX.transaction, JAVAX.stream,  JIBX,
-      GERONIMO.connector, GERONIMO.kernel, GERONIMO.transaction, LOG4J, OPENJPA, SAXON, TRANQL,
-      WOODSTOX, WSDL4J, WS_COMMONS, XALAN, XERCES, XMLBEANS,
-      AXIS2_MODULES.libs
-
-    package(:war).with(:libs=>libs).path("WEB-INF").tap do |web_inf|
-      web_inf.merge project("dao-jpa-ojpa-derby").package(:zip)
-      web_inf.merge project("dao-hibernate-db").package(:zip)
-      web_inf.include project("axis2").path_to("src/main/wsdl/*")
-      web_inf.include project("bpel-schemas").path_to("src/main/xsd/pmapi.xsd")
-    end
-    package(:war).path("WEB-INF/modules").include(artifacts(AXIS2_MODULES.mods))
-    package(:war).tap do |root|
-      root.merge(artifact(AXIS2_WAR)).exclude("WEB-INF/*").exclude("META-INF/*")
-    end
-
-    task("start"=>[package(:war), jetty.use]) do |task|
-      class << task ; attr_accessor :url, :path ; end
-      task.url = "http://localhost:8080/ode"
-      task.path = jetty.deploy(task.url, task.prerequisites.first)
-      jetty.teardown task("stop")
-    end
-
-    task("stop") do |task|
-      if url = task("start").url rescue nil
-        jetty.undeploy url
-      end
-    end
-    
-    test.using :testng
-    test.with projects("tools"), libs, AXIS2_TEST, AXIOM, JAVAX.servlet, Buildr::Jetty::REQUIRES, HIBERNATE, DOM4J
-    test.setup task(:prepare_webapp) do |task|
-      webapp_dir = "target/test-classes/webapp"
-      cp_r _("src/main/webapp"), _("target/test-classes")
-      cp Dir[_("src/main/webapp/WEB-INF/classes/*")], _("target/test-classes")
-      cp Dir[project("axis2").path_to("src/main/wsdl/*")], _("#{webapp_dir}/WEB-INF")
-      cp project("bpel-schemas").path_to("src/main/xsd/pmapi.xsd"), _("#{webapp_dir}/WEB-INF")
-      rm_rf Dir[_(webapp_dir) + "/**/.svn"]
-      mkdir _("#{webapp_dir}/WEB-INF/processes") unless File.exist?(_("#{webapp_dir}/WEB-INF/processes"))
-      mkdir _("#{webapp_dir}/WEB-INF/modules") unless File.exist?(_("#{webapp_dir}/WEB-INF/modules"))
-      # move around some property files for test purpose
-      mv Dir[_("target/test-classes/TestEndpointProperties/*_global_conf*.endpoint")], _("#{webapp_dir}/WEB-INF/conf")
-      artifacts(AXIS2_MODULES.mods).map {|a| a.invoke }
-      cp AXIS2_MODULES.mods.map {|a| repositories.locate(a)} , _("#{webapp_dir}/WEB-INF/modules")
-    end
-    test.setup unzip(_("target/test-classes/webapp/WEB-INF")=>project("dao-jpa-ojpa-derby").package(:zip))
-    test.setup unzip(_("target/test-classes/webapp/WEB-INF")=>project("dao-hibernate-db").package(:zip))
-    
-    test.setup task(:prepare_rampart_policy_test) do |task|
-      # test_dir will be the Axis2 Repo dir
-      test_dir = _("target/test-classes/TestRampartPolicy")
-      # copy the required modules
-      mkdir "#{test_dir}/modules" unless File.directory? "#{test_dir}/modules"
-      artifacts(AXIS2_MODULES.mods).map {|a| a.invoke }
-      cp AXIS2_MODULES.mods.map {|a| repositories.locate(a)} , _("#{test_dir}/modules")
-      # generate one process per test
-      Dir.chdir(test_dir) do
-        Dir["policy-sample*.xml"].each do |policy_file| 
-          sample_name = policy_file.gsub(".xml","")
-          # create process directory
-          proc_dir = "process-#{sample_name}"
-          mkdir proc_dir unless File.directory? proc_dir
-          # copy files
-          [policy_file, "README-#{sample_name}.txt"].each{|f| cp f, proc_dir }
-          # copy files from template and replace variable names
-          Dir["process-template/*"].each do |file|
-            lines = IO.readlines(file)
-            # copy file and replace template values
-            File.open("#{proc_dir}/#{File.basename(file)}", 'w') { |f| 
-              lines.each { |l| 
-                sample_id = sample_name[-2,2]
-                l.gsub!("{sample.namespace}", "http://sample#{sample_id}.policy.samples.rampart.apache.org")
-                l.gsub!("{sample.service.name}", sample_name)
-                f<<l
-              }
-            }
-          end
-        end
-      end
-    end
-
-    test.setup task(:prepare_rampart_basic_test) do |task|
-      # test_dir will be the Axis2 Repo dir
-      test_dir = _("target/test-classes/TestRampartBasic")
-      # copy the required modules
-      mkdir "#{test_dir}/modules" unless File.directory? "#{test_dir}/modules"
-      artifacts(AXIS2_MODULES.mods).map {|a| a.invoke }
-      cp AXIS2_MODULES.mods.map {|a| repositories.locate(a)} , _("#{test_dir}/modules")
-      # generate one process per test
-      Dir.chdir(test_dir) do
-        Dir["sample*.axis2"].each do |axis2_file| 
-          sample_name = axis2_file.gsub(".axis2","")
-          # create process directory
-          proc_dir = "process-basic-#{sample_name}"
-          mkdir proc_dir unless File.directory? proc_dir
-          # copy files
-          [axis2_file, "README-#{sample_name}.txt"].each{|f| cp f, proc_dir }
-         # cp axis2_file, "#{proc_dir}/"
-          # copy files from template and replace variable names
-          Dir["process-template/*"].each do |file|
-            lines = IO.readlines(file)
-            # copy file and replace template values
-            File.open("#{proc_dir}/#{File.basename(file)}", 'w') { |f| 
-              lines.each { |l| 
-                sample_id = sample_name[-2,2]
-                l.gsub!("{sample.namespace}", "http://sample#{sample_id}.samples.rampart.apache.org")
-                l.gsub!("{sample.service.name}", sample_name)
-                f<<l
-              }
-            }
-          end
-        end
-      end
-    end
-
-
-
-  end
-
-  desc "ODE APIs"
-  define "bpel-api" do
-    compile.with projects("utils", "bpel-obj", "bpel-schemas"), WSDL4J, COMMONS.logging
-    package :jar
-  end
-
-  desc "ODE JCA connector"
-  define "bpel-api-jca" do
-    compile.with project("bpel-api"), JAVAX.connector
-    package :jar
-  end
-
-  desc "ODE BPEL Compiler"
-  define "bpel-compiler" do
-    compile.with projects("bpel-api", "bpel-obj", "bpel-schemas", "utils"),
-      COMMONS.logging, JAVAX.stream, JAXEN, SAXON, WSDL4J, XALAN, XERCES
-    test.resources { filter(project("bpel-scripts").path_to("src/main/resources")).into(test.resources.target).run }
-    package :jar
-  end
-
-  desc "ODE JCA Connector Implementation"
-  define "bpel-connector" do
-    compile.with projects("bpel-api", "bpel-api-jca", "bpel-runtime", "jca-ra", "jca-server")
-    package :jar
-  end
-
-  desc "ODE DAO Interfaces"
-  define "bpel-dao" do
-    compile.with project("bpel-api")
-    package :jar
-  end
-
-  desc "ODE Interface Layers Common"
-  define "bpel-epr" do
-    compile.with projects("utils", "bpel-dao", "bpel-api"),
-      AXIOM, COMMONS.lang, COMMONS.logging, DERBY, JAVAX.connector, JAVAX.stream, JAVAX.transaction, GERONIMO.transaction, GERONIMO.connector, TRANQL, XMLBEANS
-    package :jar
-  end
-
-  desc "ODE BPEL Object Model"
-  define "bpel-obj" do
-    compile.with project("utils"), SAXON, WSDL4J
-    package :jar
-  end
-
-  desc "ODE BPEL Query Language"
-  define "bpel-ql" do
-    pkg_name = "org.apache.ode.ql.jcc"
-    jjtree = jjtree(_("src/main/jjtree"), :in_package=>pkg_name)
-    compile.from javacc(jjtree, :in_package=>pkg_name), jjtree
-    compile.with projects("bpel-api", "bpel-compiler", "bpel-obj", "jacob", "utils")
-
-    package :jar
-  end
-
-  desc "ODE Runtime Engine"
-  define "bpel-runtime" do
-    compile.from apt
-    compile.with projects("bpel-api", "bpel-compiler", "bpel-dao", "bpel-obj", "bpel-schemas",
-      "bpel-store", "jacob", "jacob-ap", "utils"),
-      COMMONS.logging, COMMONS.collections, COMMONS.httpclient, JAXEN, JAVAX.persistence, JAVAX.stream, SAXON, WSDL4J, XMLBEANS
-
-    test.with projects("scheduler-simple", "dao-jpa", "dao-hibernate", "bpel-epr"),
-        BACKPORT, COMMONS.pool, COMMONS.lang, DERBY, JAVAX.connector, JAVAX.transaction,
-        GERONIMO.transaction, GERONIMO.kernel, GERONIMO.connector, TRANQL, HSQLDB, JAVAX.ejb,
-        LOG4J, XERCES, Buildr::OpenJPA::REQUIRES, XALAN
-
-    package :jar
-  end
-
-  desc "ODE Simple Scheduler"
-  define "scheduler-simple" do
-    compile.with projects("bpel-api", "utils"), COMMONS.collections, COMMONS.logging, JAVAX.transaction
-	test.compile.with HSQLDB, GERONIMO.kernel, GERONIMO.transaction
-	test.with HSQLDB, JAVAX.transaction, JAVAX.resource, JAVAX.connector, LOG4J,
-          GERONIMO.kernel, GERONIMO.transaction, BACKPORT, JAVAX.ejb
-    package :jar
-  end
-
-  desc "ODE Schemas"
-  define "bpel-schemas" do
-    compile_xml_beans _("src/main/xsd/*.xsdconfig"), _("src/main/xsd")
-    package :jar
-  end
-
-  desc "ODE BPEL Test Script Files"
-  define "bpel-scripts" do
-    package :jar
-  end
-
-  desc "ODE Process Store"
-  define "bpel-store" do
-    compile.with projects("bpel-api", "bpel-compiler", "bpel-dao", "bpel-obj", "bpel-schemas", "bpel-epr",
-      "dao-hibernate", "utils"),
-      COMMONS.logging, JAVAX.persistence, JAVAX.stream, HIBERNATE, HSQLDB, XMLBEANS, XERCES, WSDL4J
-    compile { open_jpa_enhance }
-    resources hibernate_doclet(:package=>"org.apache.ode.store.hib", :excludedtags=>"@version,@author,@todo")
-
-    test.with COMMONS.collections, COMMONS.lang, JAVAX.connector, JAVAX.transaction, DOM4J, LOG4J,
-      XERCES, XALAN, JAXEN, SAXON, OPENJPA
-    package :jar
-  end
-
-  desc "ODE BPEL Tests"
-  define "bpel-test" do
-    compile.with projects("bpel-api", "bpel-compiler", "bpel-dao", "bpel-runtime",
-      "bpel-store", "utils", "bpel-epr", "dao-jpa"),
-      DERBY, Java::JUnit::JUNIT_REQUIRES, JAVAX.persistence, OPENJPA, WSDL4J, COMMONS.httpclient,
-	COMMONS.codec
-
-    test.with projects("bpel-obj", "jacob", "bpel-schemas",
-      "bpel-scripts", "scheduler-simple"),
-      COMMONS.collections, COMMONS.lang, COMMONS.logging, DERBY, JAVAX.connector,
-      JAVAX.stream, JAVAX.transaction, JAXEN, HSQLDB, LOG4J, SAXON, XERCES, XMLBEANS, XALAN
-
-    package :jar
-  end
-
-  desc "ODE Hibernate DAO Implementation"
-  define "dao-hibernate" do
-    compile.with projects("bpel-api", "bpel-dao", "bpel-ql", "utils"),
-      COMMONS.lang, COMMONS.logging, JAVAX.transaction, HIBERNATE, DOM4J
-    resources hibernate_doclet(:package=>"org.apache.ode.daohib.bpel.hobj", :excludedtags=>"@version,@author,@todo")
-
-    test.with project("bpel-epr"), BACKPORT, COMMONS.collections, COMMONS.lang, HSQLDB,
-      GERONIMO.transaction, GERONIMO.kernel, GERONIMO.connector, JAVAX.connector, JAVAX.ejb, SPRING
-
-    package :jar
-  end
-
-  desc "ODE Hibernate Compatible Databases"
-  define "dao-hibernate-db" do
-    predefined_for = lambda { |name| _("src/main/sql/simplesched-#{name}.sql") }
-    properties_for = lambda { |name| _("src/main/sql/ode.#{name}.properties") }
-
-    dao_hibernate = project("dao-hibernate").compile.target
-    bpel_store = project("bpel-store").compile.target
-
-    Buildr::Hibernate::REQUIRES[:xdoclet] =  Buildr.group("xdoclet", "xdoclet-xdoclet-module", "xdoclet-hibernate-module",
-      :under=>"xdoclet", :version=>"1.2.3") + ["xdoclet:xjavadoc:jar:1.1-j5"]
-    export = lambda do |properties, source, target|
-      file(target=>[properties, source]) do |task|
-        mkpath File.dirname(target), :verbose=>false
-        # Protection against a buildr bug until the fix is released, avoids build failure
-        class << task ; attr_accessor :ant ; end
-        task.enhance { |task| task.ant = Buildr::Hibernate.schemaexport }
-        
-        hibernate_schemaexport target do |task, ant|
-          ant.schemaexport(:properties=>properties.to_s, :quiet=>"yes", :text=>"yes", :delimiter=>";",
-                           :drop=>"no", :create=>"yes", :output=>target) do
-            ant.fileset(:dir=>source.to_s) { 
-              ant.include :name=>"**/*.hbm.xml"
-              ant.exclude :name=>"**/HMessageExchangeProperty.hbm.xml"}
-          end
-        end
-      end
-    end
-
-    runtime_sql = export[ properties_for[:derby], dao_hibernate, _("target/runtime.sql") ]
-    store_sql = export[ properties_for[:derby], bpel_store, _("target/store.sql") ]
-    derby_sql = concat(_("target/derby.sql")=>[ predefined_for[:derby], runtime_sql, store_sql ])
-    derby_db = Derby.create(_("target/derby/hibdb")=>derby_sql)
-    build derby_db
-
-    %w{ firebird hsql postgres sqlserver oracle }.each do |db|
-      partial = export[ properties_for[db], dao_hibernate, _("target/partial.#{db}.sql") ]
-      build concat(_("target/#{db}.sql")=>[ predefined_for[db], partial ])
-    end
-
-    package(:zip).include(derby_db)
-  end
-
-  desc "ODE OpenJPA DAO Implementation"
-  define "dao-jpa" do
-    compile.with projects("bpel-api", "bpel-dao", "utils"),
-      COMMONS.collections, COMMONS.logging, JAVAX.connector, JAVAX.persistence, JAVAX.transaction,
-      OPENJPA, XERCES
-    compile { open_jpa_enhance }
-    package :jar
-  end
-
-  desc "ODE OpenJPA Derby Database"
-  define "dao-jpa-ojpa-derby" do
-    %w{ derby mysql oracle }.each do |db|
-      db_xml = _("src/main/descriptors/persistence.#{db}.xml")
-      scheduler_sql = _("src/main/scripts/simplesched-#{db}.sql")
-      partial_sql = file("target/partial.#{db}.sql"=>db_xml) do |task|
-        mkpath _("target"), :verbose=>false
-        Buildr::OpenJPA.mapping_tool :properties=>db_xml, :action=>"build", :sql=>task.name,
-          :classpath=>projects("bpel-store", "dao-jpa", "bpel-api", "bpel-dao", "utils" )
-      end
-      sql = concat(_("target/#{db}.sql")=>[_("src/main/scripts/license-header.sql"), partial_sql, scheduler_sql])
-      build sql
-    end
-    derby_db = Derby.create(_("target/derby/jpadb")=>_("target/derby.sql"))
-
-    test.with projects("bpel-api", "bpel-dao", "bpel-obj", "bpel-epr", "dao-jpa", "utils"),
-      BACKPORT, COMMONS.collections, COMMONS.lang, COMMONS.logging, GERONIMO.transaction,
-      GERONIMO.kernel, GERONIMO.connector, HSQLDB, JAVAX.connector, JAVAX.ejb, JAVAX.persistence,
-      JAVAX.transaction, LOG4J, OPENJPA, XERCES, WSDL4J
-
-    build derby_db
-    package(:zip).include(derby_db)
-  end
-
-  desc "ODE JAva Concurrent OBjects"
-  define "jacob" do
-    compile.with projects("utils", "jacob-ap"), COMMONS.logging
-    compile.from apt
-
-    package :jar
-  end
-
-  desc "ODE Jacob APR Code Generation"
-  define "jacob-ap" do
-    compile.with Java.tools_jar
-    package :jar
-  end
-
-  desc "ODE JBI Integration Layer"
-  define "jbi" do
-    compile.with projects("bpel-api", "bpel-connector", "bpel-dao", "bpel-epr", "bpel-obj",
-      "bpel-runtime", "scheduler-simple", "bpel-schemas", "bpel-store", "utils"),
-      AXIOM, COMMONS.logging, COMMONS.pool, JAVAX.transaction, JBI, LOG4J, WSDL4J, XERCES
-
-    package(:jar)
-    package(:jbi).tap do |jbi|
-      libs = artifacts(package(:jar),
-        projects("bpel-api", "bpel-api-jca", "bpel-compiler", "bpel-connector", "bpel-dao",
-        "bpel-epr", "jca-ra", "jca-server", "bpel-obj", "bpel-ql", "bpel-runtime",
-        "scheduler-simple", "bpel-schemas", "bpel-store", "dao-hibernate", "dao-jpa",
-        "jacob", "jacob-ap", "utils"),
-        ANT, AXIOM, BACKPORT, COMMONS.codec, COMMONS.collections, COMMONS.dbcp, COMMONS.lang, COMMONS.pool,
-        COMMONS.primitives, DERBY, GERONIMO.connector, GERONIMO.transaction, JAXEN, JAVAX.connector, 
-        JAVAX.ejb, JAVAX.jms, JAVAX.persistence, JAVAX.stream, JAVAX.transaction, LOG4J, OPENJPA, 
-        SAXON, TRANQL, XALAN, XERCES, XMLBEANS, XSTREAM, WSDL4J)
-
-      jbi.component :type=>:service_engine, :name=>"OdeBpelEngine", :description=>self.comment
-      jbi.component :class_name=>"org.apache.ode.jbi.OdeComponent", :libs=>libs
-      jbi.bootstrap :class_name=>"org.apache.ode.jbi.OdeBootstrap", :libs=>libs
-      jbi.merge project("dao-hibernate-db").package(:zip)
-      jbi.merge project("dao-jpa-ojpa-derby").package(:zip)
-      jbi.include path_to("src/main/jbi/ode-jbi.properties")
-    end
-
-    test.with projects("dao-jpa", "bpel-compiler", "bpel-api-jca", "jca-ra",
-      "jca-server", "jacob"),
-      BACKPORT, COMMONS.lang, COMMONS.collections, DERBY, GERONIMO.connector, GERONIMO.kernel,
-      GERONIMO.transaction, JAVAX.connector, JAVAX.ejb, JAVAX.persistence, JAVAX.stream,
-      JAVAX.transaction, JAXEN, JBI, OPENJPA, SAXON, SERVICEMIX, SPRING, TRANQL,
-      XALAN, XBEAN, XMLBEANS, XSTREAM
-    test.using :properties=>{ "jbi.install"=>_("target/smixInstallDir"),  "jbi.examples"=>_("../distro/src/examples-jbi/") }
-    test.setup unzip(_("target/smixInstallDir/install/ODE")=>project("dao-jpa-ojpa-derby").package(:zip))
-  end
-
-  desc "ODE JCA Resource Archive"
-  define "jca-ra" do
-    compile.with project("utils"), JAVAX.connector
-    package :jar
-  end
-
-  desc "ODE JCA Server"
-  define "jca-server" do
-    compile.with projects("jca-ra", "utils"), COMMONS.logging
-    package :jar
-  end
-
-  desc "ODE Tools"
-  define "tools" do
-    compile.with projects("bpel-compiler", "utils"), ANT, COMMONS.httpclient, COMMONS.logging
-    package :jar
-  end
-
-  desc "ODE Utils"
-  define "utils" do
-    compile.with COMMONS.collections, COMMONS.logging, COMMONS.pool, COMMONS.httpclient, COMMONS.codec, LOG4J, XERCES, JAVAX.stream, WSDL4J
-	test.exclude "*TestResources"
-    package :jar
-  end
-
-end
-
-define "apache-ode" do
-  [:version, :group, :manifest, :meta_inf].each { |prop| send "#{prop}=", project("ode").send(prop) }
-
-  def distro(project, postfix)
-    id = project.parent.id + postfix
-    project.package(:zip, :id=>id).path("#{id}-#{version}").tap do |zip|
-      zip.include meta_inf + ["RELEASE_NOTES", "README"].map { |f| path_to(f) }
-      zip.path("examples").include project.path_to("src/examples"+postfix), :as=>"."
-
-      # Libraries
-      zip.path("lib").include artifacts(COMMONS.logging, COMMONS.codec, COMMONS.httpclient,
-        COMMONS.pool, COMMONS.collections, JAXEN, SAXON, LOG4J, WSDL4J, XALAN, XERCES)
-      project("ode").projects("utils", "tools", "bpel-compiler", "bpel-api", "bpel-obj", "bpel-schemas").
-        map(&:packages).flatten.each do |pkg|
-        zip.include(pkg.to_s, :as=>"#{pkg.id}.#{pkg.type}", :path=>"lib")
-      end
-
-      # Including third party licenses
-      Dir["#{project.path_to("license")}/*LICENSE"].each { |l| zip.include(l, :path=>"lib") }
-      zip.include(project.path_to("target/LICENSE"))
-
-      # Include supported database schemas
-      Dir["#{project("ode:dao-jpa-ojpa-derby").path_to("target")}/*.sql"].each do |f|
-        zip.include(f, :path=>"sql") unless f =~ /partial/
-      end
-
-      # Tools scripts (like bpelc and sendsoap)
-      bins = file(project.path_to("target/bin")=>FileList[project.path_to("src/bin/*")]) do |task|
-        mkpath task.name
-        cp task.prerequisites, task.name
-        chmod 0755, FileList[task.name + "/*"], :verbose=>false
-      end
-      zip.include(bins)
-
-      yield zip
-      # For some reason this always fails on a clean build, commenting until I have time to inquire
-      # project.check zip, "should contain mysql.sql" do
-      #   it.should contain("sql/mysql.sql")
-      # end
-    end
-  end
-
-  desc "ODE Axis2 Based Distribution"
-  define "distro" do
-    parent.distro(self, "-war") { |zip| zip.include project("ode:axis2-war").package(:war), :as=>"ode.war" }
-    parent.distro(self, "-jbi") { |zip| zip.include project("ode:jbi").package(:zip) }
-
-    # Preparing third party licenses
-    build do
-      Dir.mkdir(project.path_to("target")) unless File.exist?(project.path_to("target"))
-      cp parent.path_to("LICENSE"), project.path_to("target/LICENSE")
-      File.open(project.path_to("target/LICENSE"), "a+") do |l|
-        l <<  Dir["#{project.path_to("license")}/*LICENSE"].map { |f| "lib/"+f[/[^\/]*$/] }.join("\n")
-      end
-    end
-
-    project("ode:axis2-war").task("start").enhance do |task|
-      target = "#{task.path}/webapp/WEB-INF/processes"
-      puts "Deploying processes to #{target}" if verbose
-      verbose(false) do
-        mkpath target
-        cp_r FileList[_("src/examples/*")].to_a, target
-        rm Dir.glob("#{target}/*.deployed")
-      end
-    end
-  end
-
-  package(:zip, :id=>"#{id}-sources").path("#{id}-sources-#{version}").tap do |zip|
-    if File.exist?(".svn")
-      `svn status -v`.reject { |l| l[0] == ?? || l[0] == ?D }.
-        map { |l| l.split.last }.reject { |f| File.directory?(f) }.
-        each { |f| zip.include f, :as=>f }
-    else
-      zip.include Dir.pwd, :as=>"."
-    end
-  end
-
-  package(:zip, :id=>"#{id}-docs").include(javadoc(project("ode").projects).target) unless ENV["JAVADOC"] =~ /^(no|off|false|skip)$/i
-end
-
+#
+#    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.
+#
+
+gem "buildr", "~>1.2.4"
+require "buildr"
+require "buildr/xmlbeans.rb"
+require "buildr/openjpa"
+require "buildr/javacc"
+require "buildr/jetty"
+require "buildr/hibernate"
+
+# Keep this structure to allow the build system to update version numbers.
+VERSION_NUMBER = "1.2-SNAPSHOT"
+NEXT_VERSION = "1.3"
+
+ANNONGEN            = "annogen:annogen:jar:0.1.0"
+ANT                 = "ant:ant:jar:1.6.5"
+AXIOM               = [ group("axiom-api", "axiom-impl", "axiom-dom",
+                        :under=>"org.apache.ws.commons.axiom", :version=>"1.2.5") ]
+AXIS2_ALL           = group("axis2-adb", "axis2-codegen", "axis2-kernel",
+                        "axis2-java2wsdl", "axis2-jibx", "axis2-saaj", "axis2-xmlbeans",
+                        :under=>"org.apache.axis2", :version=>"1.3")
+AXIS2_TEST          = group("httpcore", "httpcore-nio", "httpcore-niossl", 
+                           :under=>"org.apache.httpcomponents", :version=>"4.0-alpha5")
+AXIS2_MODULES        = struct(
+ :mods              => ["org.apache.rampart:rampart:mar:1.3", 
+                         "org.apache.rampart:rahas:mar:1.3",
+                         "org.apache.axis2:addressing:mar:1.3"],
+ :libs              => [group("rampart-core", "rampart-policy", "rampart-trust",
+                              :under=>"org.apache.rampart",
+                              :version=>"1.3"), 
+                        "org.apache.ws.security:wss4j:jar:1.5.3", 
+                        "org.apache.santuario:xmlsec:jar:1.4.0",
+                        "opensaml:opensaml:jar:1.1",
+                        "bouncycastle:bcprov-jdk15:jar:132"] 
+)
+AXIS2_WAR           = "org.apache.axis2:axis2-webapp:war:1.3"
+BACKPORT            = "backport-util-concurrent:backport-util-concurrent:jar:3.0"
+COMMONS             = struct(
+  :codec            =>"commons-codec:commons-codec:jar:1.3",
+  :collections      =>"commons-collections:commons-collections:jar:3.1",
+  :dbcp             =>"commons-dbcp:commons-dbcp:jar:1.2.1",
+  :fileupload       =>"commons-fileupload:commons-fileupload:jar:1.1.1",
+  :httpclient       =>"commons-httpclient:commons-httpclient:jar:3.0",
+  :lang             =>"commons-lang:commons-lang:jar:2.3",
+  :logging          =>"commons-logging:commons-logging:jar:1.1",
+  :io               =>"commons-io:commons-io:jar:1.4",
+  :pool             =>"commons-pool:commons-pool:jar:1.2",
+  :primitives       =>"commons-primitives:commons-primitives:jar:1.0"
+)
+DERBY               = "org.apache.derby:derby:jar:10.4.1.3"
+DERBY_TOOLS         = "org.apache.derby:derbytools:jar:10.4.1.3"
+DOM4J               = "dom4j:dom4j:jar:1.6.1"
+GERONIMO            = struct(
+  :kernel           =>"org.apache.geronimo.modules:geronimo-kernel:jar:2.0.1",
+  :transaction      =>"org.apache.geronimo.components:geronimo-transaction:jar:2.0.1",
+  :connector        =>"org.apache.geronimo.components:geronimo-connector:jar:2.0.1"
+)
+HIBERNATE           = [ "org.hibernate:hibernate:jar:3.2.5.ga", "asm:asm:jar:1.5.3",
+                        "antlr:antlr:jar:2.7.6", "cglib:cglib:jar:2.1_3", "net.sf.ehcache:ehcache:jar:1.2.3" ]
+HSQLDB              = "hsqldb:hsqldb:jar:1.8.0.7"
+JAVAX               = struct(
+  :activation       =>"javax.activation:activation:jar:1.1",
+  #:activation       =>"geronimo-spec:geronimo-spec-activation:jar:1.0.2-rc4",
+  :connector        =>"org.apache.geronimo.specs:geronimo-j2ee-connector_1.5_spec:jar:1.0",
+  :ejb              =>"org.apache.geronimo.specs:geronimo-ejb_2.1_spec:jar:1.1",
+  :javamail         =>"geronimo-spec:geronimo-spec-javamail:jar:1.3.1-rc5",
+  :jms              =>"geronimo-spec:geronimo-spec-jms:jar:1.1-rc4",
+  :persistence      =>"javax.persistence:persistence-api:jar:1.0",
+  :servlet          =>"org.apache.geronimo.specs:geronimo-servlet_2.4_spec:jar:1.0",
+  :stream           =>"stax:stax-api:jar:1.0.1",
+  :transaction      =>"org.apache.geronimo.specs:geronimo-jta_1.1_spec:jar:1.1",
+  :resource         =>"org.apache.geronimo.specs:geronimo-j2ee-connector_1.5_spec:jar:1.0"
+)
+JAXEN               = "jaxen:jaxen:jar:1.1.1"
+JBI                 = "org.apache.servicemix:servicemix-jbi:jar:3.1.1-incubating"
+JENCKS              = "org.jencks:jencks:jar:all:1.3"
+JIBX                = "jibx:jibx-run:jar:1.1-beta3"
+LOG4J               = "log4j:log4j:jar:1.2.13"
+OPENJPA             = ["org.apache.openjpa:openjpa:jar:1.2.0",
+                       "net.sourceforge.serp:serp:jar:1.13.1"]
+
+SAXON               = group("saxon", "saxon-xpath", "saxon-dom", "saxon-xqj", :under=>"net.sf.saxon", :version=>"9.x")
+SERVICEMIX          = group("servicemix-core", "servicemix-shared", "servicemix-services",
+                        :under=>"org.apache.servicemix", :version=>"3.1-incubating")
+SPRING              = group("spring-beans", "spring-context", "spring-core", "spring-jmx",
+                        :under=>"org.springframework", :version=>"2.0.1")
+TRANQL              = [ "tranql:tranql-connector:jar:1.1", "axion:axion:jar:1.0-M3-dev", COMMONS.primitives ]
+WOODSTOX            = "woodstox:wstx-asl:jar:3.2.1"
+WSDL4J              = "wsdl4j:wsdl4j:jar:1.6.1"
+XALAN               = "org.apache.ode:xalan:jar:2.7.0-2"
+XERCES              = "xerces:xercesImpl:jar:2.9.0"
+XSTREAM             = "xstream:xstream:jar:1.2"
+WS_COMMONS          = struct(
+  :axiom            =>AXIOM,
+  :neethi           =>"org.apache.neethi:neethi:jar:2.0.2",
+  :xml_schema       =>"org.apache.ws.commons.schema:XmlSchema:jar:1.3.2"
+)
+XBEAN               = group("xbean-classloader", "xbean-kernel", "xbean-server", "xbean-spring",
+                        :under=>"org.apache.xbean", :version=>"2.8")
+XMLBEANS            = "org.apache.xmlbeans:xmlbeans:jar:2.3.0"
+
+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.remote << "http://download.java.net/maven/2"
+repositories.remote << "http://ws.zones.apache.org/repository2"
+repositories.release_to[:url] ||= "sftp://guest@localhost/home/guest"
+
+# Changing releases tag names
+class Release
+  class << self
+    def tag_with_apache_ode(version)
+      tag_without_apache_ode("APACHE_ODE_#{version.upcase}")
+    end
+    alias_method_chain :tag, :apache_ode
+  end
+end
+
+desc "Apache ODE"
+#define "ode", :group=>"org.apache.ode", :version=>VERSION_NUMBER do
+define "ode" do
+  project.version = VERSION_NUMBER
+  project.group = "org.apache.ode"
+
+  compile.options.source = "1.5"
+  compile.options.target = "1.5"
+  manifest["Implementation-Vendor"] = "Apache Software Foundation"
+  meta_inf << file("NOTICE")
+
+  desc "ODE Axis Integration Layer"
+  define "axis2" do
+    compile.with projects("bpel-api", "bpel-connector", "bpel-dao", "bpel-epr", "bpel-runtime",
+      "scheduler-simple", "bpel-schemas", "bpel-store", "utils"),
+      AXIOM, AXIS2_ALL, COMMONS.lang, COMMONS.logging, COMMONS.collections, COMMONS.httpclient, COMMONS.lang, 
+      DERBY, GERONIMO.kernel, GERONIMO.transaction, JAVAX.activation, JAVAX.servlet, JAVAX.stream, 
+      JAVAX.transaction, JENCKS, WSDL4J, WS_COMMONS, XMLBEANS, AXIS2_MODULES.libs
+
+    test.exclude 'org.apache.ode.axis2.management.*'
+    test.with project("tools"), AXIOM, JAVAX.javamail, COMMONS.codec, COMMONS.httpclient, XERCES, WOODSTOX
+
+    package :jar
+  end
+
+  desc "ODE Axis2 Based Web Application"
+  define "axis2-war" do
+    libs = projects("axis2", "bpel-api", "bpel-compiler", "bpel-connector", "bpel-dao",
+      "bpel-epr", "bpel-obj", "bpel-ql", "bpel-runtime", "scheduler-simple",
+      "bpel-schemas", "bpel-store", "dao-hibernate", "jacob", "jca-ra", "jca-server",
+      "utils", "dao-jpa"),
+      AXIS2_ALL, ANNONGEN, BACKPORT, COMMONS.codec, COMMONS.collections, COMMONS.fileupload, COMMONS.io, COMMONS.httpclient,
+      COMMONS.lang, COMMONS.logging, COMMONS.pool, DERBY, DERBY_TOOLS, JAXEN, JAVAX.activation, JAVAX.ejb, JAVAX.javamail,
+      JAVAX.connector, JAVAX.jms, JAVAX.persistence, JAVAX.transaction, JAVAX.stream,  JIBX,
+      GERONIMO.connector, GERONIMO.kernel, GERONIMO.transaction, LOG4J, OPENJPA, SAXON, TRANQL,
+      WOODSTOX, WSDL4J, WS_COMMONS, XALAN, XERCES, XMLBEANS,
+      AXIS2_MODULES.libs
+
+    package(:war).with(:libs=>libs).path("WEB-INF").tap do |web_inf|
+      web_inf.merge project("dao-jpa-ojpa-derby").package(:zip)
+      web_inf.merge project("dao-hibernate-db").package(:zip)
+      web_inf.include project("axis2").path_to("src/main/wsdl/*")
+      web_inf.include project("bpel-schemas").path_to("src/main/xsd/pmapi.xsd")
+    end
+    package(:war).path("WEB-INF/modules").include(artifacts(AXIS2_MODULES.mods))
+    package(:war).tap do |root|
+      root.merge(artifact(AXIS2_WAR)).exclude("WEB-INF/*").exclude("META-INF/*")
+    end
+
+    task("start"=>[package(:war), jetty.use]) do |task|
+      class << task ; attr_accessor :url, :path ; end
+      task.url = "http://localhost:8080/ode"
+      task.path = jetty.deploy(task.url, task.prerequisites.first)
+      jetty.teardown task("stop")
+    end
+
+    task("stop") do |task|
+      if url = task("start").url rescue nil
+        jetty.undeploy url
+      end
+    end
+    
+    test.using :testng
+    test.with projects("tools"), libs, AXIS2_TEST, AXIOM, JAVAX.servlet, Buildr::Jetty::REQUIRES, HIBERNATE, DOM4J
+    test.setup task(:prepare_webapp) do |task|
+      webapp_dir = "target/test-classes/webapp"
+      cp_r _("src/main/webapp"), _("target/test-classes")
+      cp Dir[_("src/main/webapp/WEB-INF/classes/*")], _("target/test-classes")
+      cp Dir[project("axis2").path_to("src/main/wsdl/*")], _("#{webapp_dir}/WEB-INF")
+      cp project("bpel-schemas").path_to("src/main/xsd/pmapi.xsd"), _("#{webapp_dir}/WEB-INF")
+      rm_rf Dir[_(webapp_dir) + "/**/.svn"]
+      mkdir _("#{webapp_dir}/WEB-INF/processes") unless File.exist?(_("#{webapp_dir}/WEB-INF/processes"))
+      mkdir _("#{webapp_dir}/WEB-INF/modules") unless File.exist?(_("#{webapp_dir}/WEB-INF/modules"))
+      # move around some property files for test purpose
+      mv Dir[_("target/test-classes/TestEndpointProperties/*_global_conf*.endpoint")], _("#{webapp_dir}/WEB-INF/conf")
+      artifacts(AXIS2_MODULES.mods).map {|a| a.invoke }
+      cp AXIS2_MODULES.mods.map {|a| repositories.locate(a)} , _("#{webapp_dir}/WEB-INF/modules")
+    end
+    test.setup unzip(_("target/test-classes/webapp/WEB-INF")=>project("dao-jpa-ojpa-derby").package(:zip))
+    test.setup unzip(_("target/test-classes/webapp/WEB-INF")=>project("dao-hibernate-db").package(:zip))
+    
+    test.setup task(:prepare_rampart_policy_test) do |task|
+      # test_dir will be the Axis2 Repo dir
+      test_dir = _("target/test-classes/TestRampartPolicy")
+      # copy the required modules
+      mkdir "#{test_dir}/modules" unless File.directory? "#{test_dir}/modules"
+      artifacts(AXIS2_MODULES.mods).map {|a| a.invoke }
+      cp AXIS2_MODULES.mods.map {|a| repositories.locate(a)} , _("#{test_dir}/modules")
+      # generate one process per test
+      Dir.chdir(test_dir) do
+        Dir["policy-sample*.xml"].each do |policy_file| 
+          sample_name = policy_file.gsub(".xml","")
+          # create process directory
+          proc_dir = "process-#{sample_name}"
+          mkdir proc_dir unless File.directory? proc_dir
+          # copy files
+          [policy_file, "README-#{sample_name}.txt"].each{|f| cp f, proc_dir }
+          # copy files from template and replace variable names
+          Dir["process-template/*"].each do |file|
+            lines = IO.readlines(file)
+            # copy file and replace template values
+            File.open("#{proc_dir}/#{File.basename(file)}", 'w') { |f| 
+              lines.each { |l| 
+                sample_id = sample_name[-2,2]
+                l.gsub!("{sample.namespace}", "http://sample#{sample_id}.policy.samples.rampart.apache.org")
+                l.gsub!("{sample.service.name}", sample_name)
+                f<<l
+              }
+            }
+          end
+        end
+      end
+    end
+
+    test.setup task(:prepare_rampart_basic_test) do |task|
+      # test_dir will be the Axis2 Repo dir
+      test_dir = _("target/test-classes/TestRampartBasic")
+      # copy the required modules
+      mkdir "#{test_dir}/modules" unless File.directory? "#{test_dir}/modules"
+      artifacts(AXIS2_MODULES.mods).map {|a| a.invoke }
+      cp AXIS2_MODULES.mods.map {|a| repositories.locate(a)} , _("#{test_dir}/modules")
+      # generate one process per test
+      Dir.chdir(test_dir) do
+        Dir["sample*.axis2"].each do |axis2_file| 
+          sample_name = axis2_file.gsub(".axis2","")
+          # create process directory
+          proc_dir = "process-basic-#{sample_name}"
+          mkdir proc_dir unless File.directory? proc_dir
+          # copy files
+          [axis2_file, "README-#{sample_name}.txt"].each{|f| cp f, proc_dir }
+         # cp axis2_file, "#{proc_dir}/"
+          # copy files from template and replace variable names
+          Dir["process-template/*"].each do |file|
+            lines = IO.readlines(file)
+            # copy file and replace template values
+            File.open("#{proc_dir}/#{File.basename(file)}", 'w') { |f| 
+              lines.each { |l| 
+                sample_id = sample_name[-2,2]
+                l.gsub!("{sample.namespace}", "http://sample#{sample_id}.samples.rampart.apache.org")
+                l.gsub!("{sample.service.name}", sample_name)
+                f<<l
+              }
+            }
+          end
+        end
+      end
+    end
+
+
+
+  end
+
+  desc "ODE APIs"
+  define "bpel-api" do
+    compile.with projects("utils", "bpel-obj", "bpel-schemas"), WSDL4J, COMMONS.logging
+    package :jar
+  end
+
+  desc "ODE JCA connector"
+  define "bpel-api-jca" do
+    compile.with project("bpel-api"), JAVAX.connector
+    package :jar
+  end
+
+  desc "ODE BPEL Compiler"
+  define "bpel-compiler" do
+    compile.with projects("bpel-api", "bpel-obj", "bpel-schemas", "utils"),
+      COMMONS.logging, JAVAX.stream, JAXEN, SAXON, WSDL4J, XALAN, XERCES, COMMONS.collections
+    test.resources { filter(project("bpel-scripts").path_to("src/main/resources")).into(test.resources.target).run }
+    package :jar
+  end
+
+  desc "ODE JCA Connector Implementation"
+  define "bpel-connector" do
+    compile.with projects("bpel-api", "bpel-api-jca", "bpel-runtime", "jca-ra", "jca-server")
+    package :jar
+  end
+
+  desc "ODE DAO Interfaces"
+  define "bpel-dao" do
+    compile.with project("bpel-api")
+    package :jar
+  end
+
+  desc "ODE Interface Layers Common"
+  define "bpel-epr" do
+    compile.with projects("utils", "bpel-dao", "bpel-api"),
+      AXIOM, COMMONS.lang, COMMONS.logging, DERBY, JAVAX.connector, JAVAX.stream, JAVAX.transaction, GERONIMO.transaction, GERONIMO.connector, TRANQL, XMLBEANS
+    package :jar
+  end
+
+  desc "ODE BPEL Object Model"
+  define "bpel-obj" do
+    compile.with project("utils"), SAXON, WSDL4J, COMMONS.collections
+    package :jar
+  end
+
+  desc "ODE BPEL Query Language"
+  define "bpel-ql" do
+    pkg_name = "org.apache.ode.ql.jcc"
+    jjtree = jjtree(_("src/main/jjtree"), :in_package=>pkg_name)
+    compile.from javacc(jjtree, :in_package=>pkg_name), jjtree
+    compile.with projects("bpel-api", "bpel-compiler", "bpel-obj", "jacob", "utils")
+
+    package :jar
+  end
+
+  desc "ODE Runtime Engine"
+  define "bpel-runtime" do
+    compile.from apt
+    compile.with projects("bpel-api", "bpel-compiler", "bpel-dao", "bpel-obj", "bpel-schemas",
+      "bpel-store", "jacob", "jacob-ap", "utils"),
+      COMMONS.logging, COMMONS.collections, COMMONS.httpclient, JAXEN, JAVAX.persistence, JAVAX.stream, SAXON, WSDL4J, XMLBEANS
+
+    test.with projects("scheduler-simple", "dao-jpa", "dao-hibernate", "bpel-epr"),
+        BACKPORT, COMMONS.pool, COMMONS.lang, DERBY, JAVAX.connector, JAVAX.transaction,
+        GERONIMO.transaction, GERONIMO.kernel, GERONIMO.connector, TRANQL, HSQLDB, JAVAX.ejb,
+        LOG4J, XERCES, Buildr::OpenJPA::REQUIRES, XALAN
+
+    package :jar
+  end
+
+  desc "ODE Simple Scheduler"
+  define "scheduler-simple" do
+    compile.with projects("bpel-api", "utils"), COMMONS.collections, COMMONS.logging, JAVAX.transaction
+	test.compile.with HSQLDB, GERONIMO.kernel, GERONIMO.transaction
+	test.with HSQLDB, JAVAX.transaction, JAVAX.resource, JAVAX.connector, LOG4J,
+          GERONIMO.kernel, GERONIMO.transaction, BACKPORT, JAVAX.ejb
+    package :jar
+  end
+
+  desc "ODE Schemas"
+  define "bpel-schemas" do
+    compile_xml_beans _("src/main/xsd/*.xsdconfig"), _("src/main/xsd")
+    package :jar
+  end
+
+  desc "ODE BPEL Test Script Files"
+  define "bpel-scripts" do
+    package :jar
+  end
+
+  desc "ODE Process Store"
+  define "bpel-store" do
+    compile.with projects("bpel-api", "bpel-compiler", "bpel-dao", "bpel-obj", "bpel-schemas", "bpel-epr",
+      "dao-hibernate", "utils"),
+      COMMONS.logging, JAVAX.persistence, JAVAX.stream, HIBERNATE, HSQLDB, XMLBEANS, XERCES, WSDL4J
+    compile { open_jpa_enhance }
+    resources hibernate_doclet(:package=>"org.apache.ode.store.hib", :excludedtags=>"@version,@author,@todo")
+
+    test.with COMMONS.collections, COMMONS.lang, JAVAX.connector, JAVAX.transaction, DOM4J, LOG4J,
+      XERCES, XALAN, JAXEN, SAXON, OPENJPA
+    package :jar
+  end
+
+  desc "ODE BPEL Tests"
+  define "bpel-test" do
+    compile.with projects("bpel-api", "bpel-compiler", "bpel-dao", "bpel-runtime",
+      "bpel-store", "utils", "bpel-epr", "dao-jpa"),
+      DERBY, Java::JUnit::JUNIT_REQUIRES, JAVAX.persistence, OPENJPA, WSDL4J, COMMONS.httpclient,
+	COMMONS.codec
+
+    test.with projects("bpel-obj", "jacob", "bpel-schemas",
+      "bpel-scripts", "scheduler-simple"),
+      COMMONS.collections, COMMONS.lang, COMMONS.logging, DERBY, JAVAX.connector,
+      JAVAX.stream, JAVAX.transaction, JAXEN, HSQLDB, LOG4J, SAXON, XERCES, XMLBEANS, XALAN
+
+    package :jar
+  end
+
+  desc "ODE Hibernate DAO Implementation"
+  define "dao-hibernate" do
+    compile.with projects("bpel-api", "bpel-dao", "bpel-ql", "utils"),
+      COMMONS.lang, COMMONS.logging, JAVAX.transaction, HIBERNATE, DOM4J
+    resources hibernate_doclet(:package=>"org.apache.ode.daohib.bpel.hobj", :excludedtags=>"@version,@author,@todo")
+
+    test.with project("bpel-epr"), BACKPORT, COMMONS.collections, COMMONS.lang, HSQLDB,
+      GERONIMO.transaction, GERONIMO.kernel, GERONIMO.connector, JAVAX.connector, JAVAX.ejb, SPRING
+
+    package :jar
+  end
+
+  desc "ODE Hibernate Compatible Databases"
+  define "dao-hibernate-db" do
+    predefined_for = lambda { |name| _("src/main/sql/simplesched-#{name}.sql") }
+    properties_for = lambda { |name| _("src/main/sql/ode.#{name}.properties") }
+
+    dao_hibernate = project("dao-hibernate").compile.target
+    bpel_store = project("bpel-store").compile.target
+
+    Buildr::Hibernate::REQUIRES[:xdoclet] =  Buildr.group("xdoclet", "xdoclet-xdoclet-module", "xdoclet-hibernate-module",
+      :under=>"xdoclet", :version=>"1.2.3") + ["xdoclet:xjavadoc:jar:1.1-j5"]
+    export = lambda do |properties, source, target|
+      file(target=>[properties, source]) do |task|
+        mkpath File.dirname(target), :verbose=>false
+        # Protection against a buildr bug until the fix is released, avoids build failure
+        class << task ; attr_accessor :ant ; end
+        task.enhance { |task| task.ant = Buildr::Hibernate.schemaexport }
+        
+        hibernate_schemaexport target do |task, ant|
+          ant.schemaexport(:properties=>properties.to_s, :quiet=>"yes", :text=>"yes", :delimiter=>";",
+                           :drop=>"no", :create=>"yes", :output=>target) do
+            ant.fileset(:dir=>source.to_s) { 
+              ant.include :name=>"**/*.hbm.xml"
+              ant.exclude :name=>"**/HMessageExchangeProperty.hbm.xml"}
+          end
+        end
+      end
+    end
+
+    runtime_sql = export[ properties_for[:derby], dao_hibernate, _("target/runtime.sql") ]
+    store_sql = export[ properties_for[:derby], bpel_store, _("target/store.sql") ]
+    derby_sql = concat(_("target/derby.sql")=>[ predefined_for[:derby], runtime_sql, store_sql ])
+    derby_db = Derby.create(_("target/derby/hibdb")=>derby_sql)
+    build derby_db
+
+    %w{ firebird hsql postgres sqlserver oracle }.each do |db|
+      partial = export[ properties_for[db], dao_hibernate, _("target/partial.#{db}.sql") ]
+      build concat(_("target/#{db}.sql")=>[ predefined_for[db], partial ])
+    end
+
+    package(:zip).include(derby_db)
+  end
+
+  desc "ODE OpenJPA DAO Implementation"
+  define "dao-jpa" do
+    compile.with projects("bpel-api", "bpel-dao", "utils"),
+      COMMONS.collections, COMMONS.logging, JAVAX.connector, JAVAX.persistence, JAVAX.transaction,
+      OPENJPA, XERCES
+    compile { open_jpa_enhance }
+    package :jar
+  end
+
+  desc "ODE OpenJPA Derby Database"
+  define "dao-jpa-ojpa-derby" do
+    %w{ derby mysql oracle }.each do |db|
+      db_xml = _("src/main/descriptors/persistence.#{db}.xml")
+      scheduler_sql = _("src/main/scripts/simplesched-#{db}.sql")
+      partial_sql = file("target/partial.#{db}.sql"=>db_xml) do |task|
+        mkpath _("target"), :verbose=>false
+        Buildr::OpenJPA.mapping_tool :properties=>db_xml, :action=>"build", :sql=>task.name,
+          :classpath=>projects("bpel-store", "dao-jpa", "bpel-api", "bpel-dao", "utils" )
+      end
+      sql = concat(_("target/#{db}.sql")=>[_("src/main/scripts/license-header.sql"), partial_sql, scheduler_sql])
+      build sql
+    end
+    derby_db = Derby.create(_("target/derby/jpadb")=>_("target/derby.sql"))
+
+    test.with projects("bpel-api", "bpel-dao", "bpel-obj", "bpel-epr", "dao-jpa", "utils"),
+      BACKPORT, COMMONS.collections, COMMONS.lang, COMMONS.logging, GERONIMO.transaction,
+      GERONIMO.kernel, GERONIMO.connector, HSQLDB, JAVAX.connector, JAVAX.ejb, JAVAX.persistence,
+      JAVAX.transaction, LOG4J, OPENJPA, XERCES, WSDL4J
+
+    build derby_db
+    package(:zip).include(derby_db)
+  end
+
+  desc "ODE JAva Concurrent OBjects"
+  define "jacob" do
+    compile.with projects("utils", "jacob-ap"), COMMONS.logging
+    compile.from apt
+
+    package :jar
+  end
+
+  desc "ODE Jacob APR Code Generation"
+  define "jacob-ap" do
+    compile.with Java.tools_jar
+    package :jar
+  end
+
+  desc "ODE JBI Integration Layer"
+  define "jbi" do
+    compile.with projects("bpel-api", "bpel-connector", "bpel-dao", "bpel-epr", "bpel-obj",
+      "bpel-runtime", "scheduler-simple", "bpel-schemas", "bpel-store", "utils"),
+      AXIOM, COMMONS.logging, COMMONS.pool, JAVAX.transaction, JBI, LOG4J, WSDL4J, XERCES
+
+    package(:jar)
+    package(:jbi).tap do |jbi|
+      libs = artifacts(package(:jar),
+        projects("bpel-api", "bpel-api-jca", "bpel-compiler", "bpel-connector", "bpel-dao",
+        "bpel-epr", "jca-ra", "jca-server", "bpel-obj", "bpel-ql", "bpel-runtime",
+        "scheduler-simple", "bpel-schemas", "bpel-store", "dao-hibernate", "dao-jpa",
+        "jacob", "jacob-ap", "utils"),
+        ANT, AXIOM, BACKPORT, COMMONS.codec, COMMONS.collections, COMMONS.dbcp, COMMONS.lang, COMMONS.pool,
+        COMMONS.primitives, DERBY, GERONIMO.connector, GERONIMO.transaction, JAXEN, JAVAX.connector, 
+        JAVAX.ejb, JAVAX.jms, JAVAX.persistence, JAVAX.stream, JAVAX.transaction, LOG4J, OPENJPA, 
+        SAXON, TRANQL, XALAN, XERCES, XMLBEANS, XSTREAM, WSDL4J)
+
+      jbi.component :type=>:service_engine, :name=>"OdeBpelEngine", :description=>self.comment
+      jbi.component :class_name=>"org.apache.ode.jbi.OdeComponent", :libs=>libs
+      jbi.bootstrap :class_name=>"org.apache.ode.jbi.OdeBootstrap", :libs=>libs
+      jbi.merge project("dao-hibernate-db").package(:zip)
+      jbi.merge project("dao-jpa-ojpa-derby").package(:zip)
+      jbi.include path_to("src/main/jbi/ode-jbi.properties")
+    end
+
+    test.with projects("dao-jpa", "bpel-compiler", "bpel-api-jca", "jca-ra",
+      "jca-server", "jacob"),
+      BACKPORT, COMMONS.lang, COMMONS.collections, DERBY, GERONIMO.connector, GERONIMO.kernel,
+      GERONIMO.transaction, JAVAX.connector, JAVAX.ejb, JAVAX.persistence, JAVAX.stream,
+      JAVAX.transaction, JAXEN, JBI, OPENJPA, SAXON, SERVICEMIX, SPRING, TRANQL,
+      XALAN, XBEAN, XMLBEANS, XSTREAM
+    test.using :properties=>{ "jbi.install"=>_("target/smixInstallDir"),  "jbi.examples"=>_("../distro/src/examples-jbi/") }
+    test.setup unzip(_("target/smixInstallDir/install/ODE")=>project("dao-jpa-ojpa-derby").package(:zip))
+  end
+
+  desc "ODE JCA Resource Archive"
+  define "jca-ra" do
+    compile.with project("utils"), JAVAX.connector
+    package :jar
+  end
+
+  desc "ODE JCA Server"
+  define "jca-server" do
+    compile.with projects("jca-ra", "utils"), COMMONS.logging
+    package :jar
+  end
+
+  desc "ODE Tools"
+  define "tools" do
+    compile.with projects("bpel-compiler", "utils"), ANT, COMMONS.httpclient, COMMONS.logging
+    package :jar
+  end
+
+  desc "ODE Utils"
+  define "utils" do
+    compile.with COMMONS.collections, COMMONS.logging, COMMONS.pool, COMMONS.httpclient, COMMONS.codec, LOG4J, XERCES, JAVAX.stream, WSDL4J
+	test.exclude "*TestResources"
+    package :jar
+  end
+
+end
+
+define "apache-ode" do
+  [:version, :group, :manifest, :meta_inf].each { |prop| send "#{prop}=", project("ode").send(prop) }
+
+  def distro(project, postfix)
+    id = project.parent.id + postfix
+    project.package(:zip, :id=>id).path("#{id}-#{version}").tap do |zip|
+      zip.include meta_inf + ["RELEASE_NOTES", "README"].map { |f| path_to(f) }
+      zip.path("examples").include project.path_to("src/examples"+postfix), :as=>"."
+
+      # Libraries
+      zip.path("lib").include artifacts(COMMONS.logging, COMMONS.codec, COMMONS.httpclient,
+        COMMONS.pool, COMMONS.collections, JAXEN, SAXON, LOG4J, WSDL4J, XALAN, XERCES)
+      project("ode").projects("utils", "tools", "bpel-compiler", "bpel-api", "bpel-obj", "bpel-schemas").
+        map(&:packages).flatten.each do |pkg|
+        zip.include(pkg.to_s, :as=>"#{pkg.id}.#{pkg.type}", :path=>"lib")
+      end
+
+      # Including third party licenses
+      Dir["#{project.path_to("license")}/*LICENSE"].each { |l| zip.include(l, :path=>"lib") }
+      zip.include(project.path_to("target/LICENSE"))
+
+      # Include supported database schemas
+      Dir["#{project("ode:dao-jpa-ojpa-derby").path_to("target")}/*.sql"].each do |f|
+        zip.include(f, :path=>"sql") unless f =~ /partial/
+      end
+
+      # Tools scripts (like bpelc and sendsoap)
+      bins = file(project.path_to("target/bin")=>FileList[project.path_to("src/bin/*")]) do |task|
+        mkpath task.name
+        cp task.prerequisites, task.name
+        chmod 0755, FileList[task.name + "/*"], :verbose=>false
+      end
+      zip.include(bins)
+
+      yield zip
+      # For some reason this always fails on a clean build, commenting until I have time to inquire
+      # project.check zip, "should contain mysql.sql" do
+      #   it.should contain("sql/mysql.sql")
+      # end
+    end
+  end
+
+  desc "ODE Axis2 Based Distribution"
+  define "distro" do
+    parent.distro(self, "-war") { |zip| zip.include project("ode:axis2-war").package(:war), :as=>"ode.war" }
+    parent.distro(self, "-jbi") { |zip| zip.include project("ode:jbi").package(:zip) }
+
+    # Preparing third party licenses
+    build do
+      Dir.mkdir(project.path_to("target")) unless File.exist?(project.path_to("target"))
+      cp parent.path_to("LICENSE"), project.path_to("target/LICENSE")
+      File.open(project.path_to("target/LICENSE"), "a+") do |l|
+        l <<  Dir["#{project.path_to("license")}/*LICENSE"].map { |f| "lib/"+f[/[^\/]*$/] }.join("\n")
+      end
+    end
+
+    project("ode:axis2-war").task("start").enhance do |task|
+      target = "#{task.path}/webapp/WEB-INF/processes"
+      puts "Deploying processes to #{target}" if verbose
+      verbose(false) do
+        mkpath target
+        cp_r FileList[_("src/examples/*")].to_a, target
+        rm Dir.glob("#{target}/*.deployed")
+      end
+    end
+  end
+
+  package(:zip, :id=>"#{id}-sources").path("#{id}-sources-#{version}").tap do |zip|
+    if File.exist?(".svn")
+      `svn status -v`.reject { |l| l[0] == ?? || l[0] == ?D }.
+        map { |l| l.split.last }.reject { |f| File.directory?(f) }.
+        each { |f| zip.include f, :as=>f }
+    else
+      zip.include Dir.pwd, :as=>"."
+    end
+  end
+
+  package(:zip, :id=>"#{id}-docs").include(javadoc(project("ode").projects).target) unless ENV["JAVADOC"] =~ /^(no|off|false|skip)$/i
+end
+

Modified: ode/branches/APACHE_ODE_1.X/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/BpelCompiler.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/BpelCompiler.java?rev=725794&r1=725793&r2=725794&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/BpelCompiler.java (original)
+++ ode/branches/APACHE_ODE_1.X/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/BpelCompiler.java Thu Dec 11 11:49:36 2008
@@ -1673,6 +1673,18 @@
     	}
     	return schemaSources;
     }
+    
+	/**
+	 * Retrieves the base URI that the BPEL Process execution contextis running relative to.
+	 * 
+	 * @return URI - the URI representing the absolute physical file path location that this process is defined within.
+	 * @throws IOException 
+	 * @throws MalformedURLException 
+	 */
+	 public URI getBaseResourceURI() {
+		return _resourceFinder.getBaseResourceURI();
+	}
+    
 
     /**
      * Compile external variable declaration.

Modified: ode/branches/APACHE_ODE_1.X/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/DefaultResourceFinder.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/DefaultResourceFinder.java?rev=725794&r1=725793&r2=725794&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/DefaultResourceFinder.java (original)
+++ ode/branches/APACHE_ODE_1.X/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/DefaultResourceFinder.java Thu Dec 11 11:49:36 2008
@@ -101,5 +101,9 @@
 
         return new FileInputStream(f);
     }
+    
+    public URI getBaseResourceURI() {
+        return _absoluteDir.toURI();
+    }
 
 }

Modified: ode/branches/APACHE_ODE_1.X/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/ResourceFinder.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/ResourceFinder.java?rev=725794&r1=725793&r2=725794&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/ResourceFinder.java (original)
+++ ode/branches/APACHE_ODE_1.X/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/ResourceFinder.java Thu Dec 11 11:49:36 2008
@@ -39,5 +39,6 @@
      */
     InputStream openResource(URI uri) throws MalformedURLException, IOException;
 
+    URI getBaseResourceURI();
 }
 

Modified: ode/branches/APACHE_ODE_1.X/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/api/CompilerContext.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/api/CompilerContext.java?rev=725794&r1=725793&r2=725794&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/api/CompilerContext.java (original)
+++ ode/branches/APACHE_ODE_1.X/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/api/CompilerContext.java Thu Dec 11 11:49:36 2008
@@ -139,4 +139,10 @@
     
     Map<URI, Source> getSchemaSources();
 
+	/**
+	 * Retrieves the base URI that the BPEL Process execution contextis running relative to.
+	 * 
+	 * @return URI - the URI representing the absolute physical file path location that this process is defined within.
+	 */
+	URI getBaseResourceURI();
 }

Modified: ode/branches/APACHE_ODE_1.X/bpel-compiler/src/main/java/org/apache/ode/bpel/elang/xpath10/compiler/JaxenBpelHandler.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/bpel-compiler/src/main/java/org/apache/ode/bpel/elang/xpath10/compiler/JaxenBpelHandler.java?rev=725794&r1=725793&r2=725794&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/bpel-compiler/src/main/java/org/apache/ode/bpel/elang/xpath10/compiler/JaxenBpelHandler.java (original)
+++ ode/branches/APACHE_ODE_1.X/bpel-compiler/src/main/java/org/apache/ode/bpel/elang/xpath10/compiler/JaxenBpelHandler.java Thu Dec 11 11:49:36 2008
@@ -226,14 +226,14 @@
     String xslUri = getLiteralFromExpression((Expr)params.get(0));
     OXslSheet xslSheet = _cctx.compileXslt(xslUri);
     try {
-      XslTransformHandler.getInstance().parseXSLSheet(xslSheet.uri, xslSheet.sheetBody,
+      XslTransformHandler.getInstance().parseXSLSheet(_cctx.getBaseResourceURI(), xslSheet.uri, xslSheet.sheetBody,
                       new XslCompileUriResolver(_cctx, _out));
     } catch (Exception e) {
       throw new CompilationException(
           __msgs.errInvalidNumberOfArguments(xslUri));
     }
 
-    _out.xslSheets.put(xslSheet.uri, xslSheet);
+    _out.setXslSheet(xslSheet.uri, xslSheet);
   }
 
   private String getLiteralFromExpression(Expr expr)

Modified: ode/branches/APACHE_ODE_1.X/bpel-compiler/src/main/java/org/apache/ode/bpel/elang/xpath10/compiler/XslCompileUriResolver.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/bpel-compiler/src/main/java/org/apache/ode/bpel/elang/xpath10/compiler/XslCompileUriResolver.java?rev=725794&r1=725793&r2=725794&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/bpel-compiler/src/main/java/org/apache/ode/bpel/elang/xpath10/compiler/XslCompileUriResolver.java (original)
+++ ode/branches/APACHE_ODE_1.X/bpel-compiler/src/main/java/org/apache/ode/bpel/elang/xpath10/compiler/XslCompileUriResolver.java Thu Dec 11 11:49:36 2008
@@ -45,7 +45,7 @@
 
   public Source resolve(String href, String base) throws TransformerException {
     OXslSheet xslSheet = _cc.compileXslt(href);
-    _expr.xslSheets.put(xslSheet.uri, xslSheet);
+    _expr.setXslSheet(xslSheet.uri, xslSheet);
     return new StreamSource(new StringReader(xslSheet.sheetBody));
   }
 }

Modified: ode/branches/APACHE_ODE_1.X/bpel-compiler/src/main/java/org/apache/ode/bpel/elang/xpath20/compiler/JaxpFunctionResolver.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/bpel-compiler/src/main/java/org/apache/ode/bpel/elang/xpath20/compiler/JaxpFunctionResolver.java?rev=725794&r1=725793&r2=725794&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/bpel-compiler/src/main/java/org/apache/ode/bpel/elang/xpath20/compiler/JaxpFunctionResolver.java (original)
+++ ode/branches/APACHE_ODE_1.X/bpel-compiler/src/main/java/org/apache/ode/bpel/elang/xpath20/compiler/JaxpFunctionResolver.java Thu Dec 11 11:49:36 2008
@@ -153,13 +153,13 @@
             String xslUri = (String) params.get(0);
             OXslSheet xslSheet = _cctx.compileXslt(xslUri);
             try {
-                XslTransformHandler.getInstance().parseXSLSheet(xslSheet.uri, xslSheet.sheetBody,
+                XslTransformHandler.getInstance().parseXSLSheet(_cctx.getBaseResourceURI(), xslSheet.uri, xslSheet.sheetBody,
                         new XslCompileUriResolver(_cctx, _out));
             } catch (Exception e) {
                 throw new CompilationException(__msgs.errXslCompilation(xslUri, e.toString()));
             }
 
-            _out.xslSheets.put(xslSheet.uri, xslSheet);
+            _out.setXslSheet(xslSheet.uri, xslSheet);
             return "";
         }
     }

Modified: ode/branches/APACHE_ODE_1.X/bpel-obj/src/main/java/org/apache/ode/bpel/elang/xpath10/o/OXPath10Expression.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/bpel-obj/src/main/java/org/apache/ode/bpel/elang/xpath10/o/OXPath10Expression.java?rev=725794&r1=725793&r2=725794&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/bpel-obj/src/main/java/org/apache/ode/bpel/elang/xpath10/o/OXPath10Expression.java (original)
+++ ode/branches/APACHE_ODE_1.X/bpel-obj/src/main/java/org/apache/ode/bpel/elang/xpath10/o/OXPath10Expression.java Thu Dec 11 11:49:36 2008
@@ -18,6 +18,13 @@
  */
 package org.apache.ode.bpel.elang.xpath10.o;
 
+import java.io.Serializable;
+import java.net.URI;
+import java.util.HashMap;
+
+import javax.xml.namespace.QName;
+
+import org.apache.commons.collections.keyvalue.MultiKey;
 import org.apache.ode.bpel.o.OBase;
 import org.apache.ode.bpel.o.OExpression;
 import org.apache.ode.bpel.o.OLValueExpression;
@@ -25,15 +32,10 @@
 import org.apache.ode.bpel.o.OMessageVarType;
 import org.apache.ode.bpel.o.OProcess;
 import org.apache.ode.bpel.o.OScope;
-import org.apache.ode.bpel.o.OScope.Variable;
 import org.apache.ode.bpel.o.OXslSheet;
+import org.apache.ode.bpel.o.OScope.Variable;
 import org.apache.ode.utils.NSContext;
 
-import javax.xml.namespace.QName;
-import java.io.Serializable;
-import java.net.URI;
-import java.util.HashMap;
-
 
 /**
  * Jaxen-based compiled-xpath representation for XPATH 1.0 expression language. 
@@ -50,8 +52,6 @@
 
   public final HashMap<String, OLink> links = new HashMap<String,OLink>();
 
-  public final HashMap<URI,OXslSheet> xslSheets = new HashMap<URI, OXslSheet>();
-
   /** Map getVariableData invocation signature to compiled objects. */
   private final HashMap<SigGetVariableData,OSigGetVariableData> _getVariableDataSigs =
     new HashMap<SigGetVariableData,OSigGetVariableData>();
@@ -68,6 +68,7 @@
   /** QName of the <code>bpws:getVariableData</code> function. */
   public final QName qname_getLinkStatus;
 
+  protected final HashMap<URI, OXslSheet> xslSheets = new HashMap<URI, OXslSheet>();
 
   public OXPath10Expression(OProcess owner,
                             QName qname_getVariableData,
@@ -101,7 +102,15 @@
   public void addGetVariableDataSig(String varname, String partname, String location, OSigGetVariableData compiled) {
     _getVariableDataSigs.put(new SigGetVariableData(varname,  partname, location), compiled);
   }
+  
+  public void setXslSheet(URI projectRelativeXslUri, OXslSheet xslSheet) {
+	  xslSheets.put(projectRelativeXslUri, xslSheet);
+  }
 
+  public OXslSheet getXslSheet(URI projectRelativeXslUri) {
+	  return xslSheets.get(projectRelativeXslUri);
+  }
+  
   public String toString() {
     return "{OXPath10Expression " + xpath + "}";
   }

Modified: ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath10/runtime/JaxenContexts.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath10/runtime/JaxenContexts.java?rev=725794&r1=725793&r2=725794&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath10/runtime/JaxenContexts.java (original)
+++ ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath10/runtime/JaxenContexts.java Thu Dec 11 11:49:36 2008
@@ -320,7 +320,7 @@
                 // Shouldn't happen, checked at compilation time
                 throw new FunctionCallException("First parameter of the bpws:doXslTransform isn't a valid URI!", use);
             }
-            OXslSheet xslSheet = _oxpath.xslSheets.get(xslUri);
+            OXslSheet xslSheet = _oxpath.getXslSheet(xslUri);
             // Shouldn't happen, checked at compilation time
             if (xslSheet == null) throw new FunctionCallException("Couldn't find the XSL sheet " + args.get(0)
                     + ", process compilation or deployment was probably incomplete!");
@@ -347,9 +347,9 @@
             DOMSource source = new DOMSource(varDoc);
             Object result;
             XslRuntimeUriResolver resolver = new XslRuntimeUriResolver(_oxpath, _xpathEvalCtx.getBaseResourceURI());
-            XslTransformHandler.getInstance().cacheXSLSheet(xslUri, xslSheet.sheetBody, resolver);
+            XslTransformHandler.getInstance().cacheXSLSheet(_xpathEvalCtx.getBaseResourceURI(), xslUri, xslSheet.sheetBody, resolver);
             try {
-            	result = XslTransformHandler.getInstance().transform(xslUri, source, parametersMap, resolver);
+            	result = XslTransformHandler.getInstance().transform(_xpathEvalCtx.getBaseResourceURI(), xslUri, source, parametersMap, resolver);
             } catch (Exception e) {
                 throw new WrappedFaultException.JaxenFunctionException(
                         new FaultException(_oxpath.getOwner().constants.qnSubLanguageExecutionFault,

Modified: ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath10/runtime/XslRuntimeUriResolver.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath10/runtime/XslRuntimeUriResolver.java?rev=725794&r1=725793&r2=725794&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath10/runtime/XslRuntimeUriResolver.java (original)
+++ ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath10/runtime/XslRuntimeUriResolver.java Thu Dec 11 11:49:36 2008
@@ -64,7 +64,7 @@
           return null;
       }
 
-      OXslSheet sheet = _expr.xslSheets.get(uri);
+      OXslSheet sheet = _expr.getXslSheet(uri);
       if( sheet != null) {
           result = sheet.sheetBody;
       } else {

Modified: ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath20/runtime/JaxpFunctionResolver.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath20/runtime/JaxpFunctionResolver.java?rev=725794&r1=725793&r2=725794&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath20/runtime/JaxpFunctionResolver.java (original)
+++ ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath20/runtime/JaxpFunctionResolver.java Thu Dec 11 11:49:36 2008
@@ -254,7 +254,7 @@
                 // Shouldn't happen, checked at compilation time
                 throw new XPathFunctionException("First parameter of the bpws:doXslTransform isn't a valid URI!");
             }
-            OXslSheet xslSheet = _oxpath.xslSheets.get(xslUri);
+            OXslSheet xslSheet = _oxpath.getXslSheet(xslUri);
             // Shouldn't happen, checked at compilation time
             if (xslSheet == null) throw new XPathFunctionException("Couldn't find the XSL sheet " + args.get(0)
                     + ", process compilation or deployment was probably incomplete!");
@@ -296,9 +296,9 @@
             DOMSource source = new DOMSource(varDoc);
             Object result;
             XslRuntimeUriResolver resolver = new XslRuntimeUriResolver(_oxpath, _ectx.getBaseResourceURI());
-            XslTransformHandler.getInstance().cacheXSLSheet(xslUri, xslSheet.sheetBody, resolver);
+            XslTransformHandler.getInstance().cacheXSLSheet(_ectx.getBaseResourceURI(), xslUri, xslSheet.sheetBody, resolver);
             try {
-                result = XslTransformHandler.getInstance().transform(xslUri, source, parametersMap, resolver);
+                result = XslTransformHandler.getInstance().transform(_ectx.getBaseResourceURI(), xslUri, source, parametersMap, resolver);
             } catch (Exception e) {
                 e.printStackTrace();
                 throw new XPathFunctionException(

Modified: ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath20/runtime/XslRuntimeUriResolver.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath20/runtime/XslRuntimeUriResolver.java?rev=725794&r1=725793&r2=725794&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath20/runtime/XslRuntimeUriResolver.java (original)
+++ ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath20/runtime/XslRuntimeUriResolver.java Thu Dec 11 11:49:36 2008
@@ -65,7 +65,7 @@
             return null;
         }
 
-        OXslSheet sheet = _expr.xslSheets.get(uri);
+        OXslSheet sheet = _expr.getXslSheet(uri);
         if( sheet != null) {
             result = sheet.sheetBody;
         } else {

Modified: ode/branches/APACHE_ODE_1.X/utils/src/main/java/org/apache/ode/utils/xsl/XslTransformHandler.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/utils/src/main/java/org/apache/ode/utils/xsl/XslTransformHandler.java?rev=725794&r1=725793&r2=725794&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/utils/src/main/java/org/apache/ode/utils/xsl/XslTransformHandler.java (original)
+++ ode/branches/APACHE_ODE_1.X/utils/src/main/java/org/apache/ode/utils/xsl/XslTransformHandler.java Thu Dec 11 11:49:36 2008
@@ -38,6 +38,7 @@
 import java.util.HashMap;
 import java.util.Map;
 
+import org.apache.commons.collections.keyvalue.MultiKey;
 import org.w3c.dom.Node;
 import org.w3c.dom.Document;
 
@@ -55,7 +56,7 @@
   private static XslTransformHandler __singleton;
 
   private TransformerFactory _transformerFactory = null;
-  private final HashMap<URI,Templates> _templateCache = new HashMap<URI, Templates>();
+  private final HashMap<MultiKey, Templates> _templateCache = new HashMap<MultiKey, Templates>();
 
   /**
    * Singleton access.
@@ -84,7 +85,7 @@
    * @param body of the XSL document
    * @param resolver used to resolve includes and imports
    */
-  public void parseXSLSheet(URI uri, String body, URIResolver resolver) {
+  public void parseXSLSheet(URI baseUri, URI uri, String body, URIResolver resolver) {
     Templates tm;
     try {
       _transformerFactory.setURIResolver(resolver);
@@ -93,7 +94,7 @@
       throw new XslTransformException(e);
     }
     synchronized(_templateCache) {
-      _templateCache.put(uri, tm);
+      _templateCache.put(new MultiKey(baseUri, uri), tm);
     }
   }
 
@@ -104,12 +105,12 @@
    * @param body of the XSL document
    * @param resolver used to resolve includes and imports
    */
-  public void cacheXSLSheet(URI uri, String body, URIResolver resolver) {
+  public void cacheXSLSheet(URI baseUri, URI uri, String body, URIResolver resolver) {
     Templates tm;
     synchronized (_templateCache) {
-      tm = _templateCache.get(uri);
+      tm = _templateCache.get(new MultiKey(baseUri, uri));
     }
-    if (tm == null) parseXSLSheet(uri, body, resolver);
+    if (tm == null) parseXSLSheet(baseUri, uri, body, resolver);
   }
 
   /**
@@ -121,11 +122,11 @@
    * @param resolver used to resolve includes and imports
    * @return result of the transformation (XSL, HTML or text depending of the output method specified in stylesheet.
    */
-  public Object transform(URI uri, Source source,
+  public Object transform(URI baseUri, URI uri, Source source,
                         Map<QName, Object> parameters, URIResolver resolver) {
     Templates tm;
     synchronized (_templateCache) {
-      tm = _templateCache.get(uri);
+      tm = _templateCache.get(new MultiKey(baseUri, uri));
     }
     if (tm == null)
       throw new XslTransformException("XSL sheet" + uri + " has not been parsed before transformation!");
@@ -138,7 +139,7 @@
         }
       }
       String method = tf.getOutputProperties().getProperty("method");
-      if(method.equals("xml") || method.equals("html")) {
+      if (method == null || method.equals("xml") || method.equals("html")) {
     	  DOMResult result = new DOMResult();
     	  tf.transform(source, result);
     	  Node node = result.getNode();