Author: rr
Date: Wed Jun 30 10:06:14 2010
New Revision: 959253
URL: http://svn.apache.org/viewvc?rev=959253&view=rev
Log:
Expression namespace contexts memory optimization
WSDL4J update
SchemaCollection memory fix
Resources cleanup
Switched to H2 for axis-war tests
Added h2 database creation
Added:
ode/trunk/dao-hibernate-db/src/schema/
ode/trunk/dao-hibernate-db/src/schema/ode-hib-h2.sql
ode/trunk/tasks/h2.rake
Modified:
ode/trunk/Rakefile
ode/trunk/axis2-war/src/test/java/org/apache/ode/axis2/Axis2TestBase.java
ode/trunk/axis2-war/src/test/resources/test-log4j.properties
ode/trunk/axis2-war/src/test/webapp/WEB-INF/conf.hib-derby/ode-axis2.properties
ode/trunk/axis2-war/src/test/webapp/WEB-INF/conf/ode-axis2.properties
ode/trunk/axis2/src/main/java/org/apache/ode/axis2/ODEServer.java
ode/trunk/axis2/src/main/java/org/apache/ode/axis2/ODEService.java
ode/trunk/axis2/src/main/java/org/apache/ode/axis2/deploy/DeploymentPoller.java
ode/trunk/axis2/src/main/java/org/apache/ode/axis2/hooks/ODEAxisService.java
ode/trunk/bpel-api/src/main/java/org/apache/ode/bpel/iapi/BpelServer.java
ode/trunk/bpel-api/src/main/java/org/apache/ode/bpel/iapi/Scheduler.java
ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/BpelCompiler.java
ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/api/CompilerContext.java
ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/elang/xpath20/compiler/XPath20ExpressionCompilerImpl.java
ode/trunk/bpel-compiler/src/test/java/org/apache/ode/bpel/compiler/XPathTest.java
ode/trunk/bpel-epr/src/main/java/org/apache/ode/il/MockScheduler.java
ode/trunk/bpel-obj/src/main/java/org/apache/ode/bpel/o/OProcess.java
ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelServerImpl.java
ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/replayer/ReplayerScheduler.java
ode/trunk/bpel-runtime/src/test/java/org/apache/ode/bpel/elang/xpath20/runtime/MockCompilerContext.java
ode/trunk/bpel-runtime/src/test/java/org/apache/ode/bpel/runtime/MockBpelServer.java
ode/trunk/bpel-store/src/main/java/org/apache/ode/store/ProcessStoreImpl.java
ode/trunk/bpel-store/src/main/java/org/apache/ode/store/hib/DbConfStoreConnectionFactory.java
ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/BpelDAOConnectionFactoryImpl.java
ode/trunk/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/DatabaseDelegate.java
ode/trunk/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/JdbcDelegate.java
ode/trunk/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/SimpleScheduler.java
ode/trunk/utils/src/main/java/org/apache/ode/utils/NSContext.java
Modified: ode/trunk/Rakefile
URL:
http://svn.apache.org/viewvc/ode/trunk/Rakefile?rev=959253&r1=959252&r2=959253&view=diff
==============================================================================
--- ode/trunk/Rakefile (original)
+++ ode/trunk/Rakefile Wed Jun 30 10:06:14 2010
@@ -105,7 +105,7 @@ define "ode" do
test.using :testng, :forkmode=>'perTest', :properties=>{ "log4j.debug" =>
true, "log4j.configuration"=>"test-log4j.properties", "test.ports" =>
ENV['TEST_PORTS'] }, :java_args=>['-Xmx1024M', '-XX:MaxPermSize=256m']
#:java_args=>['-Xdebug',
'-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=6001', '-Xmx1024M',
'-XX:MaxPermSize=1024m']
- test.with projects("tools"), libs, AXIS2_MODULES.mods, AXIOM,
JAVAX.servlet, Buildr::Jetty::REQUIRES, HIBERNATE, DOM4J, SLF4J, LOG4J
+ test.with projects("tools"), libs, AXIS2_MODULES.mods, AXIOM,
JAVAX.servlet, Buildr::Jetty::REQUIRES, HIBERNATE, DOM4J, SLF4J, LOG4J,
H2::REQUIRES
webapp_dir = "#{test.compile.target}/webapp"
test.setup task(:prepare_webapp) do |task|
cp_r _("src/main/webapp"), test.compile.target.to_s
@@ -321,6 +321,10 @@ define "ode" do
derby_sql = concat(_("target/derby.sql")=>[ predefined_for[:derby],
common_sql, runtime_sql, store_sql ])
derby_db = Derby.create(_("target/derby/hibdb")=>derby_sql)
build derby_db
+
+ h2_sql = _("src/schema/ode-hib-h2.sql")
+ h2_db = H2.create("ode-hib-h2", _("target/h2/hibdb")=>h2_sql)
+ build h2_db
%w{ mysql firebird hsql postgres sqlserver oracle }.each do |db|
partial = export[ properties_for[db], dao_hibernate,
_("target/partial.#{db}.sql") ]
@@ -329,7 +333,7 @@ define "ode" do
NativeDB.create_dbs self, _("."), :hib
- package(:zip).include(derby_db)
+ package(:zip).include(derby_db, h2_db)
end
desc "ODE OpenJPA DAO Implementation"
Modified:
ode/trunk/axis2-war/src/test/java/org/apache/ode/axis2/Axis2TestBase.java
URL:
http://svn.apache.org/viewvc/ode/trunk/axis2-war/src/test/java/org/apache/ode/axis2/Axis2TestBase.java?rev=959253&r1=959252&r2=959253&view=diff
==============================================================================
--- ode/trunk/axis2-war/src/test/java/org/apache/ode/axis2/Axis2TestBase.java
(original)
+++ ode/trunk/axis2-war/src/test/java/org/apache/ode/axis2/Axis2TestBase.java
Wed Jun 30 10:06:14 2010
@@ -52,6 +52,7 @@ import java.io.InputStream;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.URL;
+import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
@@ -220,6 +221,7 @@ public abstract class Axis2TestBase {
} else {
System.clearProperty("ode.persistence");
}
+ server = null;
}
protected class ODEAxis2Server extends AxisServer {
Modified: ode/trunk/axis2-war/src/test/resources/test-log4j.properties
URL:
http://svn.apache.org/viewvc/ode/trunk/axis2-war/src/test/resources/test-log4j.properties?rev=959253&r1=959252&r2=959253&view=diff
==============================================================================
--- ode/trunk/axis2-war/src/test/resources/test-log4j.properties (original)
+++ ode/trunk/axis2-war/src/test/resources/test-log4j.properties Wed Jun 30
10:06:14 2010
@@ -27,14 +27,15 @@ log4j.rootLogger=INFO, file
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=target/test/test.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
-log4j.appender.file.layout.conversionpattern=%d{mm...@hh:mm:ss} %-5p (%13F:%L)
%3x - %m%n
+log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} | %-5p | %-10t |
%-24.24c{1} | %-30.30C %4L | %m%n
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
-log4j.appender.stdout.layout.conversionpattern=%d{mm...@hh:mm:ss} %-5p
(%13F:%L) %3x - %m%n
+log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} | %-5p | %-10t |
%-24.24c{1} | %-30.30C %4L | %m%n
log4j.category.httpclient=INFO
log4j.category.httpclient.Wire=INFO
log4j.category.org.apache.ode=INFO
-#log4j.category.hibernate=DEBUG
-#log4j.category.org.hibernate=DEBUG
+log4j.category.hibernate=INFO
+log4j.category.org.hibernate=INFO
+log4j.category.org.apache.axis2=INFO
Modified:
ode/trunk/axis2-war/src/test/webapp/WEB-INF/conf.hib-derby/ode-axis2.properties
URL:
http://svn.apache.org/viewvc/ode/trunk/axis2-war/src/test/webapp/WEB-INF/conf.hib-derby/ode-axis2.properties?rev=959253&r1=959252&r2=959253&view=diff
==============================================================================
---
ode/trunk/axis2-war/src/test/webapp/WEB-INF/conf.hib-derby/ode-axis2.properties
(original)
+++
ode/trunk/axis2-war/src/test/webapp/WEB-INF/conf.hib-derby/ode-axis2.properties
Wed Jun 30 10:06:14 2010
@@ -16,8 +16,12 @@
#
ode-axis2.dao.factory=org.apache.ode.axis2.instancecleanup.HibDaoConnectionFactoryImpl
-ode-axis2.db.emb.name=hibdb
-ode-axis2.db.mode=EMBEDDED
+ode-axis2.db.mode=INTERNAL
+ode-axis2.db.int.jdbcurl=jdbc:h2:file:axis2-war/target/test/classes/webapp/WEB-INF/hibdb/ode-hib-h2;DB_CLOSE_ON_EXIT=false;user=sa;TRACE_LEVEL_FILE=3
+ode-axis2.db.int.driver=org.h2.Driver
ode-axis2.cluster.localRoute.targets=http://doesntexist:8080/ode/processes/
ode-axis2.cluster.localRoute.base=http://localhost:8888/ode/processes/
ode-axis2.event.listeners=org.apache.ode.bpel.common.evt.DebugBpelEventListener
+#hibernate.dialect=org.hibernate.dialect.H2Dialect
+ode-axis2.acquireTransactionLocks=true
+
Modified: ode/trunk/axis2-war/src/test/webapp/WEB-INF/conf/ode-axis2.properties
URL:
http://svn.apache.org/viewvc/ode/trunk/axis2-war/src/test/webapp/WEB-INF/conf/ode-axis2.properties?rev=959253&r1=959252&r2=959253&view=diff
==============================================================================
--- ode/trunk/axis2-war/src/test/webapp/WEB-INF/conf/ode-axis2.properties
(original)
+++ ode/trunk/axis2-war/src/test/webapp/WEB-INF/conf/ode-axis2.properties Wed
Jun 30 10:06:14 2010
@@ -16,8 +16,12 @@
#
ode-axis2.dao.factory=org.apache.ode.axis2.instancecleanup.HibDaoConnectionFactoryImpl
-ode-axis2.db.emb.name=hibdb
-ode-axis2.db.mode=EMBEDDED
+ode-axis2.db.mode=INTERNAL
+ode-axis2.db.int.jdbcurl=jdbc:h2:file:axis2-war/target/test/classes/webapp/WEB-INF/hibdb/ode-hib-h2;DB_CLOSE_ON_EXIT=false;user=sa;TRACE_LEVEL_FILE=3
+ode-axis2.db.int.driver=org.h2.Driver
ode-axis2.cluster.localRoute.targets=http://doesntexist:8080/ode/processes/
ode-axis2.cluster.localRoute.base=http://localhost:8888/ode/processes/
ode-axis2.event.listeners=org.apache.ode.bpel.common.evt.DebugBpelEventListener
+#hibernate.dialect=org.hibernate.dialect.H2Dialect
+ode.acquireTransactionLocks=true
+
Modified: ode/trunk/axis2/src/main/java/org/apache/ode/axis2/ODEServer.java
URL:
http://svn.apache.org/viewvc/ode/trunk/axis2/src/main/java/org/apache/ode/axis2/ODEServer.java?rev=959253&r1=959252&r2=959253&view=diff
==============================================================================
--- ode/trunk/axis2/src/main/java/org/apache/ode/axis2/ODEServer.java (original)
+++ ode/trunk/axis2/src/main/java/org/apache/ode/axis2/ODEServer.java Wed Jun
30 10:06:14 2010
@@ -384,6 +384,7 @@ public class ODEServer {
__log.error("Unable to cleanup temp files.", t);
}
+ _executorService.shutdownNow();
__log.info(__msgs.msgOdeShutdownCompleted());
} finally {
Modified: ode/trunk/axis2/src/main/java/org/apache/ode/axis2/ODEService.java
URL:
http://svn.apache.org/viewvc/ode/trunk/axis2/src/main/java/org/apache/ode/axis2/ODEService.java?rev=959253&r1=959252&r2=959253&view=diff
==============================================================================
--- ode/trunk/axis2/src/main/java/org/apache/ode/axis2/ODEService.java
(original)
+++ ode/trunk/axis2/src/main/java/org/apache/ode/axis2/ODEService.java Wed Jun
30 10:06:14 2010
@@ -44,6 +44,7 @@ import org.apache.axis2.transport.jms.JM
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.ode.axis2.util.SoapMessageConverter;
+import org.apache.ode.bpel.engine.BpelServerImpl;
import org.apache.ode.bpel.epr.EndpointFactory;
import org.apache.ode.bpel.epr.MutableEndpoint;
import org.apache.ode.bpel.epr.WSAEndpoint;
@@ -104,6 +105,8 @@ public class ODEService {
try {
_txManager.begin();
if (__log.isDebugEnabled()) __log.debug("Starting transaction.");
+
+ _server.acquireTransactionLocks();
// Creating message exchange
String messageId = new GUID().toString();
Modified:
ode/trunk/axis2/src/main/java/org/apache/ode/axis2/deploy/DeploymentPoller.java
URL:
http://svn.apache.org/viewvc/ode/trunk/axis2/src/main/java/org/apache/ode/axis2/deploy/DeploymentPoller.java?rev=959253&r1=959252&r2=959253&view=diff
==============================================================================
---
ode/trunk/axis2/src/main/java/org/apache/ode/axis2/deploy/DeploymentPoller.java
(original)
+++
ode/trunk/axis2/src/main/java/org/apache/ode/axis2/deploy/DeploymentPoller.java
Wed Jun 30 10:06:14 2010
@@ -111,6 +111,7 @@ public class DeploymentPoller {
public void stop() {
_poller.kill();
_poller = null;
+ __log.info("Poller stopped.");
}
protected boolean isDeploymentFromODEFileSystemAllowed() {
Modified:
ode/trunk/axis2/src/main/java/org/apache/ode/axis2/hooks/ODEAxisService.java
URL:
http://svn.apache.org/viewvc/ode/trunk/axis2/src/main/java/org/apache/ode/axis2/hooks/ODEAxisService.java?rev=959253&r1=959252&r2=959253&view=diff
==============================================================================
---
ode/trunk/axis2/src/main/java/org/apache/ode/axis2/hooks/ODEAxisService.java
(original)
+++
ode/trunk/axis2/src/main/java/org/apache/ode/axis2/hooks/ODEAxisService.java
Wed Jun 30 10:06:14 2010
@@ -23,9 +23,11 @@ import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
+import java.lang.ref.WeakReference;
import java.net.URI;
import java.net.URL;
import java.util.Collection;
+import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
@@ -52,6 +54,8 @@ import org.apache.ode.axis2.util.Axis2WS
import org.apache.ode.axis2.util.AxisUtils;
import org.apache.ode.bpel.iapi.ProcessConf;
import org.apache.ode.bpel.epr.WSDL11Endpoint;
+import org.apache.ode.utils.DOMUtils;
+import org.apache.ode.utils.GUID;
import org.apache.ode.utils.Properties;
import org.apache.ws.commons.schema.XmlSchema;
import org.apache.ws.commons.schema.XmlSchemaCollection;
@@ -77,7 +81,7 @@ public class ODEAxisService {
try {
URI baseUri =
pconf.getBaseURI().resolve(wsdlDefinition.getDocumentBaseURI());
is = baseUri.toURL().openStream();
- WSDL11ToAxisServiceBuilder serviceBuilder = new
WSDL11ToAxisPatchedBuilder(is, wsdlServiceName, portName);
+ WSDL11ToAxisPatchedBuilder serviceBuilder = new
WSDL11ToAxisPatchedBuilder(is, wsdlServiceName, portName);
serviceBuilder.setBaseUri(baseUri.toString());
serviceBuilder.setCustomResolver(new Axis2UriResolver());
serviceBuilder.setCustomWSLD4JResolver(new
Axis2WSDLLocator(baseUri));
@@ -303,12 +307,27 @@ public class ODEAxisService {
super(in);
}
+ private static Map<String, WeakReference<XmlSchema>> cached = new
HashMap<String, WeakReference<XmlSchema>>();
+
protected XmlSchema getXMLSchema(Element element, String baseUri) {
- XmlSchemaCollection schemaCollection = new XmlSchemaCollection();
- if (baseUri != null) {
- schemaCollection.setBaseUri(baseUri);
+ synchronized (cached) {
+ String digest = GUID.makeGUID("" + baseUri + ";" +
DOMUtils.domToString(element));
+ if (cached.containsKey(digest)) {
+ XmlSchema s = cached.get(digest).get();
+ if (s != null) {
+ log.debug("Cache hit for schema guid " + digest);
+ return s;
+ }
+ }
+
+ XmlSchemaCollection schemaCollection = new
XmlSchemaCollection();
+ if (baseUri != null) {
+ schemaCollection.setBaseUri(baseUri);
+ }
+ XmlSchema schema = schemaCollection.read(element, baseUri);
+ cached.put(digest, new WeakReference<XmlSchema>(schema));
+ return schema;
}
- return schemaCollection.read(element, baseUri);
}
}
Modified:
ode/trunk/bpel-api/src/main/java/org/apache/ode/bpel/iapi/BpelServer.java
URL:
http://svn.apache.org/viewvc/ode/trunk/bpel-api/src/main/java/org/apache/ode/bpel/iapi/BpelServer.java?rev=959253&r1=959252&r2=959253&view=diff
==============================================================================
--- ode/trunk/bpel-api/src/main/java/org/apache/ode/bpel/iapi/BpelServer.java
(original)
+++ ode/trunk/bpel-api/src/main/java/org/apache/ode/bpel/iapi/BpelServer.java
Wed Jun 30 10:06:14 2010
@@ -126,4 +126,9 @@ public interface BpelServer {
*/
DebuggerContext getDebugger(QName pid) throws BpelEngineException;
+ /**
+ * Sometimes it's required to acquire table locks at beginning of
transaction.
+ * This is for H2 database.
+ */
+ void acquireTransactionLocks();
}
Modified:
ode/trunk/bpel-api/src/main/java/org/apache/ode/bpel/iapi/Scheduler.java
URL:
http://svn.apache.org/viewvc/ode/trunk/bpel-api/src/main/java/org/apache/ode/bpel/iapi/Scheduler.java?rev=959253&r1=959252&r2=959253&view=diff
==============================================================================
--- ode/trunk/bpel-api/src/main/java/org/apache/ode/bpel/iapi/Scheduler.java
(original)
+++ ode/trunk/bpel-api/src/main/java/org/apache/ode/bpel/iapi/Scheduler.java
Wed Jun 30 10:06:14 2010
@@ -313,4 +313,6 @@ public interface Scheduler {
void storeToDetails(JobDetails details);
void restoreFromDetails(JobDetails details);
}
-}
\ No newline at end of file
+
+ public void acquireTransactionLocks();
+}
Modified:
ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/BpelCompiler.java
URL:
http://svn.apache.org/viewvc/ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/BpelCompiler.java?rev=959253&r1=959252&r2=959253&view=diff
==============================================================================
---
ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/BpelCompiler.java
(original)
+++
ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/BpelCompiler.java
Wed Jun 30 10:06:14 2010
@@ -675,7 +675,8 @@ public abstract class BpelCompiler imple
_oprocess.guid = null;
_oprocess.constants = makeConstants();
_oprocess.debugInfo = createDebugInfo(process, "process");
-
+ _oprocess.namespaceContext = process.getNamespaceContext();
+
if (process.getTargetNamespace() == null) {
_oprocess.targetNamespace = "--UNSPECIFIED--";
recoveredFromError(process, new
CompilationException(__cmsgs.errProcessNamespaceNotSpecified()));
@@ -1736,6 +1737,13 @@ public abstract class BpelCompiler imple
return _resourceFinder.getBaseResourceURI();
}
+ public NSContext tryCacheNamespaceContext(NSContext nsContext) {
+ if (getOProcess().namespaceContext.equals(nsContext)) {
+ return getOProcess().namespaceContext;
+ } else {
+ return nsContext;
+ }
+ }
/**
* Compile external variable declaration.
Modified:
ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/api/CompilerContext.java
URL:
http://svn.apache.org/viewvc/ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/api/CompilerContext.java?rev=959253&r1=959252&r2=959253&view=diff
==============================================================================
---
ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/api/CompilerContext.java
(original)
+++
ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/api/CompilerContext.java
Wed Jun 30 10:06:14 2010
@@ -152,4 +152,6 @@ public interface CompilerContext {
* @return URI - the URI representing the absolute physical file path
location that this process is defined within.
*/
URI getBaseResourceURI();
+
+ public NSContext tryCacheNamespaceContext(NSContext nsContext);
}
Modified:
ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/elang/xpath20/compiler/XPath20ExpressionCompilerImpl.java
URL:
http://svn.apache.org/viewvc/ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/elang/xpath20/compiler/XPath20ExpressionCompilerImpl.java?rev=959253&r1=959252&r2=959253&view=diff
==============================================================================
---
ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/elang/xpath20/compiler/XPath20ExpressionCompilerImpl.java
(original)
+++
ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/elang/xpath20/compiler/XPath20ExpressionCompilerImpl.java
Wed Jun 30 10:06:14 2010
@@ -112,7 +112,7 @@ public class XPath20ExpressionCompilerIm
public OLValueExpression compileLValue(Object source) throws
CompilationException {
return (OLValueExpression) _compile((Expression) source, false);
}
-
+
/**
* @see
org.apache.ode.bpel.compiler.api.ExpressionCompiler#compile(java.lang.Object)
*/
@@ -120,7 +120,7 @@ public class XPath20ExpressionCompilerIm
throws CompilationException {
OXPath20ExpressionBPEL20 oexp = new
OXPath20ExpressionBPEL20(_compilerContext.getOProcess(), _qnVarData,
_qnVarProp, _qnLinkStatus, _qnXslTransform, isJoinCondition);
- oexp.namespaceCtx = xpath.getNamespaceContext();
+ oexp.namespaceCtx =
_compilerContext.tryCacheNamespaceContext(xpath.getNamespaceContext());
doJaxpCompile(oexp, xpath);
return oexp;
}
Modified:
ode/trunk/bpel-compiler/src/test/java/org/apache/ode/bpel/compiler/XPathTest.java
URL:
http://svn.apache.org/viewvc/ode/trunk/bpel-compiler/src/test/java/org/apache/ode/bpel/compiler/XPathTest.java?rev=959253&r1=959252&r2=959253&view=diff
==============================================================================
---
ode/trunk/bpel-compiler/src/test/java/org/apache/ode/bpel/compiler/XPathTest.java
(original)
+++
ode/trunk/bpel-compiler/src/test/java/org/apache/ode/bpel/compiler/XPathTest.java
Wed Jun 30 10:06:14 2010
@@ -297,4 +297,8 @@ class MockCompilerContext implements Com
// TODO Auto-generated method stub
return null;
}
+
+ public NSContext tryCacheNamespaceContext(NSContext nsContext) {
+ return nsContext;
+ }
}
Modified: ode/trunk/bpel-epr/src/main/java/org/apache/ode/il/MockScheduler.java
URL:
http://svn.apache.org/viewvc/ode/trunk/bpel-epr/src/main/java/org/apache/ode/il/MockScheduler.java?rev=959253&r1=959252&r2=959253&view=diff
==============================================================================
--- ode/trunk/bpel-epr/src/main/java/org/apache/ode/il/MockScheduler.java
(original)
+++ ode/trunk/bpel-epr/src/main/java/org/apache/ode/il/MockScheduler.java Wed
Jun 30 10:06:14 2010
@@ -321,4 +321,10 @@ public class MockScheduler implements Sc
public boolean amICoordinator() {
return true;
}
+
+ @Override
+ public void acquireTransactionLocks() {
+ // TODO Auto-generated method stub
+
+ }
}
Modified: ode/trunk/bpel-obj/src/main/java/org/apache/ode/bpel/o/OProcess.java
URL:
http://svn.apache.org/viewvc/ode/trunk/bpel-obj/src/main/java/org/apache/ode/bpel/o/OProcess.java?rev=959253&r1=959252&r2=959253&view=diff
==============================================================================
--- ode/trunk/bpel-obj/src/main/java/org/apache/ode/bpel/o/OProcess.java
(original)
+++ ode/trunk/bpel-obj/src/main/java/org/apache/ode/bpel/o/OProcess.java Wed
Jun 30 10:06:14 2010
@@ -20,6 +20,9 @@ package org.apache.ode.bpel.o;
import javax.wsdl.Operation;
import javax.xml.namespace.QName;
+
+import org.apache.ode.utils.NSContext;
+
import java.io.IOException;
import java.io.ObjectInputStream;
import java.net.URI;
@@ -76,6 +79,8 @@ public class OProcess extends OBase {
public final HashMap<URI, OXslSheet> xslSheets = new HashMap<URI,
OXslSheet>();
+ public NSContext namespaceContext = null;
+
public OProcess(String bpelVersion) {
super(null);
this.version = bpelVersion;
Modified:
ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelServerImpl.java
URL:
http://svn.apache.org/viewvc/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelServerImpl.java?rev=959253&r1=959252&r2=959253&view=diff
==============================================================================
---
ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelServerImpl.java
(original)
+++
ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelServerImpl.java
Wed Jun 30 10:06:14 2010
@@ -683,4 +683,10 @@ public class BpelServerImpl implements B
public void setMigrationTransactionTimeout(int
migrationTransactionTimeout) {
this._migrationTransactionTimeout = migrationTransactionTimeout;
}
+
+ public void acquireTransactionLocks() {
+ if
(Boolean.parseBoolean(_configProperties.getProperty("ode.acquireTransactionLocks",
"false"))) {
+ _contexts.scheduler.acquireTransactionLocks();
+ }
+ }
}
Modified:
ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/replayer/ReplayerScheduler.java
URL:
http://svn.apache.org/viewvc/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/replayer/ReplayerScheduler.java?rev=959253&r1=959252&r2=959253&view=diff
==============================================================================
---
ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/replayer/ReplayerScheduler.java
(original)
+++
ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/replayer/ReplayerScheduler.java
Wed Jun 30 10:06:14 2010
@@ -156,4 +156,10 @@ public class ReplayerScheduler implement
__log.debug("scheduleVolatileJob");
return null;
}
+
+ @Override
+ public void acquireTransactionLocks() {
+ // TODO Auto-generated method stub
+
+ }
}
Modified:
ode/trunk/bpel-runtime/src/test/java/org/apache/ode/bpel/elang/xpath20/runtime/MockCompilerContext.java
URL:
http://svn.apache.org/viewvc/ode/trunk/bpel-runtime/src/test/java/org/apache/ode/bpel/elang/xpath20/runtime/MockCompilerContext.java?rev=959253&r1=959252&r2=959253&view=diff
==============================================================================
---
ode/trunk/bpel-runtime/src/test/java/org/apache/ode/bpel/elang/xpath20/runtime/MockCompilerContext.java
(original)
+++
ode/trunk/bpel-runtime/src/test/java/org/apache/ode/bpel/elang/xpath20/runtime/MockCompilerContext.java
Wed Jun 30 10:06:14 2010
@@ -231,4 +231,8 @@ public class MockCompilerContext impleme
// TODO Auto-generated method stub
return null;
}
+
+ public NSContext tryCacheNamespaceContext(NSContext nsContext) {
+ return nsContext;
+ }
}
Modified:
ode/trunk/bpel-runtime/src/test/java/org/apache/ode/bpel/runtime/MockBpelServer.java
URL:
http://svn.apache.org/viewvc/ode/trunk/bpel-runtime/src/test/java/org/apache/ode/bpel/runtime/MockBpelServer.java?rev=959253&r1=959252&r2=959253&view=diff
==============================================================================
---
ode/trunk/bpel-runtime/src/test/java/org/apache/ode/bpel/runtime/MockBpelServer.java
(original)
+++
ode/trunk/bpel-runtime/src/test/java/org/apache/ode/bpel/runtime/MockBpelServer.java
Wed Jun 30 10:06:14 2010
@@ -420,5 +420,11 @@ class MockBpelServer {
public boolean amICoordinator() {
return true;
}
+
+ @Override
+ public void acquireTransactionLocks() {
+ // TODO Auto-generated method stub
+
+ }
}
}
Modified:
ode/trunk/bpel-store/src/main/java/org/apache/ode/store/ProcessStoreImpl.java
URL:
http://svn.apache.org/viewvc/ode/trunk/bpel-store/src/main/java/org/apache/ode/store/ProcessStoreImpl.java?rev=959253&r1=959252&r2=959253&view=diff
==============================================================================
---
ode/trunk/bpel-store/src/main/java/org/apache/ode/store/ProcessStoreImpl.java
(original)
+++
ode/trunk/bpel-store/src/main/java/org/apache/ode/store/ProcessStoreImpl.java
Wed Jun 30 10:06:14 2010
@@ -144,6 +144,10 @@ public class ProcessStoreImpl implements
shutdownInternalDB(_inMemDs);
_inMemDs = null;
}
+ if (_executor != null) {
+ _executor.shutdownNow();
+ _executor = null;
+ }
}
@Override
Modified:
ode/trunk/bpel-store/src/main/java/org/apache/ode/store/hib/DbConfStoreConnectionFactory.java
URL:
http://svn.apache.org/viewvc/ode/trunk/bpel-store/src/main/java/org/apache/ode/store/hib/DbConfStoreConnectionFactory.java?rev=959253&r1=959252&r2=959253&view=diff
==============================================================================
---
ode/trunk/bpel-store/src/main/java/org/apache/ode/store/hib/DbConfStoreConnectionFactory.java
(original)
+++
ode/trunk/bpel-store/src/main/java/org/apache/ode/store/hib/DbConfStoreConnectionFactory.java
Wed Jun 30 10:06:14 2010
@@ -76,6 +76,8 @@ public class DbConfStoreConnectionFactor
// Informix Dynamic Server
// Oracle 8 and Oracle >8
HIBERNATE_DIALECTS.put("Apache Derby", new
DialectFactory.VersionInsensitiveMapper(DEFAULT_HIBERNATE_DIALECT));
+ HIBERNATE_DIALECTS.put("INGRES", new
DialectFactory.VersionInsensitiveMapper("org.hibernate.dialect.IngresDialect"));
+ HIBERNATE_DIALECTS.put("H2", new
DialectFactory.VersionInsensitiveMapper("org.hibernate.dialect.H2Dialect"));
}
private TransactionManager _txMgr;
Added: ode/trunk/dao-hibernate-db/src/schema/ode-hib-h2.sql
URL:
http://svn.apache.org/viewvc/ode/trunk/dao-hibernate-db/src/schema/ode-hib-h2.sql?rev=959253&view=auto
==============================================================================
--- ode/trunk/dao-hibernate-db/src/schema/ode-hib-h2.sql (added)
+++ ode/trunk/dao-hibernate-db/src/schema/ode-hib-h2.sql Wed Jun 30 10:06:14
2010
@@ -0,0 +1,92 @@
+create table ODE_SCHEMA_VERSION(VERSION integer);
+insert into ODE_SCHEMA_VERSION values (6);
+-- Apache ODE - SimpleScheduler Database Schema
+--
+-- MySQL scripts by Maciej Szefler.
+--
+--
+DROP TABLE IF EXISTS ODE_JOB;
+
+CREATE TABLE ODE_JOB (
+ jobid CHAR(64) NOT NULL DEFAULT '',
+ ts BIGINT NOT NULL DEFAULT 0,
+ nodeid char(64) NULL,
+ scheduled int NOT NULL DEFAULT 0,
+ transacted int NOT NULL DEFAULT 0,
+
+ instanceId BIGINT,
+ mexId varchar(255),
+ processId varchar(255),
+ type varchar(255),
+ channel varchar(255),
+ correlatorId varchar(255),
+ correlationKeySet varchar(255),
+ retryCount int,
+ inMem int,
+ detailsExt blob(4096),
+
+ PRIMARY KEY(jobid)
+);
+
+create index IDX_ODE_JOB_TS on ODE_JOB(ts);
+create index IDX_ODE_JOB_NODEID on ODE_JOB(nodeid);
+
+create table BPEL_ACTIVITY_RECOVERY (ID bigint not null auto_increment, PIID
bigint, AID bigint, CHANNEL varchar(255), REASON varchar(255), DATE_TIME
timestamp, DETAILS blob(2G), ACTIONS varchar(255), RETRIES integer, INSERT_TIME
timestamp, MLOCK integer not null, primary key (ID));
+create table BPEL_CORRELATION_PROP (ID bigint not null auto_increment, NAME
varchar(255), NAMESPACE varchar(255), VALUE varchar(255), CORR_SET_ID bigint,
INSERT_TIME timestamp, MLOCK integer not null, primary key (ID));
+create table BPEL_CORRELATION_SET (ID bigint not null auto_increment, VALUE
varchar(255), CORR_SET_NAME varchar(255), SCOPE_ID bigint, PIID bigint,
PROCESS_ID bigint, INSERT_TIME timestamp, MLOCK integer not null, primary key
(ID));
+create table BPEL_CORRELATOR (ID bigint not null auto_increment, CID
varchar(255), PROCESS_ID bigint, INSERT_TIME timestamp, MLOCK integer not null,
primary key (ID));
+create table BPEL_CORRELATOR_MESSAGE_CKEY (ID bigint not null auto_increment,
CKEY varchar(255), CORRELATOR_MESSAGE_ID bigint, INSERT_TIME timestamp, MLOCK
integer not null, primary key (ID));
+create table BPEL_EVENT (ID bigint not null auto_increment, IID bigint, PID
bigint, TSTAMP timestamp, TYPE varchar(255), DETAIL clob, DATA blob(2G), SID
bigint, INSERT_TIME timestamp, MLOCK integer not null, primary key (ID));
+create table BPEL_FAULT (ID bigint not null auto_increment, FAULTNAME
varchar(255), DATA blob(2G), EXPLANATION varchar(4000), LINE_NUM integer, AID
integer, INSERT_TIME timestamp, MLOCK integer not null, primary key (ID));
+create table BPEL_INSTANCE (ID bigint not null auto_increment,
INSTANTIATING_CORRELATOR bigint, FAULT bigint, JACOB_STATE_DATA blob(2G),
PREVIOUS_STATE smallint, PROCESS_ID bigint, STATE smallint, LAST_ACTIVE_DT
timestamp, SEQUENCE bigint, FAILURE_COUNT integer, FAILURE_DT timestamp,
INSERT_TIME timestamp, MLOCK integer not null, primary key (ID));
+create table BPEL_MESSAGE (ID bigint not null auto_increment, MEX bigint, TYPE
varchar(255), MESSAGE_DATA blob(2G), MESSAGE_HEADER blob(2G), INSERT_TIME
timestamp, MLOCK integer not null, primary key (ID));
+create table BPEL_MESSAGE_EXCHANGE (ID bigint not null auto_increment,
PORT_TYPE varchar(255), CHANNEL_NAME varchar(255), CLIENTKEY varchar(255),
ENDPOINT blob(2G), CALLBACK_ENDPOINT blob(2G), REQUEST bigint, RESPONSE bigint,
INSERT_DT timestamp, OPERATION varchar(255), STATE varchar(255), PROCESS
bigint, PIID bigint, DIR char(255), PLINK_MODELID integer, PATTERN
varchar(255), CORR_STATUS varchar(255), FAULT_TYPE varchar(255), FAULT_EXPL
varchar(255), CALLEE varchar(255), PARTNERLINK bigint, PIPED_ID varchar(255),
SUBSCRIBER_COUNT integer, INSERT_TIME timestamp, MLOCK integer not null,
primary key (ID));
+create table BPEL_MEX_PROPS (MEX bigint not null, VALUE varchar(8000), NAME
varchar(255) not null, primary key (MEX, NAME));
+create table BPEL_PLINK_VAL (ID bigint not null auto_increment, PARTNER_LINK
varchar(100) not null, PARTNERROLE varchar(100), MYROLE_EPR_DATA blob(2G),
PARTNERROLE_EPR_DATA blob(2G), PROCESS bigint, SCOPE bigint, SVCNAME
varchar(255), MYROLE varchar(100), MODELID integer, MYSESSIONID varchar(255),
PARTNERSESSIONID varchar(255), INSERT_TIME timestamp, MLOCK integer not null,
primary key (ID));
+create table BPEL_PROCESS (ID bigint not null auto_increment, PROCID
varchar(255) not null unique, deployer varchar(255), deploydate timestamp,
type_name varchar(255), type_ns varchar(255), version bigint, ACTIVE_ bit, guid
varchar(255), INSERT_TIME timestamp, MLOCK integer not null, primary key (ID));
+create table BPEL_SCOPE (ID bigint not null auto_increment, PIID bigint,
PARENT_SCOPE_ID bigint, STATE varchar(255) not null, NAME varchar(255) not
null, MODELID integer, INSERT_TIME timestamp, MLOCK integer not null, primary
key (ID));
+create table BPEL_SELECTORS (ID bigint not null auto_increment, PIID bigint
not null auto_increment, SELGRPID varchar(255) not null, IDX integer not null,
CORRELATION_KEY varchar(255) not null, PROC_TYPE varchar(255) not null,
ROUTE_POLICY varchar(255), CORRELATOR bigint not null, INSERT_TIME timestamp,
MLOCK integer not null, primary key (ID), unique (CORRELATION_KEY, CORRELATOR));
+create table BPEL_UNMATCHED (ID bigint not null auto_increment, MEX bigint,
CORRELATION_KEY varchar(255), CORRELATOR bigint not null, INSERT_TIME
timestamp, MLOCK integer not null, primary key (ID));
+create table BPEL_XML_DATA (ID bigint not null auto_increment, DATA blob(2G),
NAME varchar(255) not null, SIMPLE_VALUE varchar(255), SCOPE_ID bigint, PIID
bigint, IS_SIMPLE_TYPE bit, INSERT_TIME timestamp, MLOCK integer not null,
primary key (ID));
+create table STORE_DU (NAME varchar(255) not null, deployer varchar(255),
DEPLOYDT timestamp, DIR varchar(255), primary key (NAME));
+create table STORE_PROCESS (PID varchar(255) not null, DU varchar(255), TYPE
varchar(255), version bigint, STATE varchar(255), primary key (PID));
+create table STORE_PROCESS_PROP (propId varchar(255) not null, value
varchar(255), name varchar(255) not null, primary key (propId, name));
+create table STORE_VERSIONS (ID integer not null, VERSION bigint, primary key
(ID));
+create table VAR_PROPERTY (ID bigint not null auto_increment, XML_DATA_ID
bigint, PROP_VALUE varchar(255), PROP_NAME varchar(255) not null, INSERT_TIME
timestamp, MLOCK integer not null, primary key (ID));
+create sequence hibernate_seqhilo;
+
+create index IDX_CORRELATOR_CID on BPEL_CORRELATOR (CID);
+create index IDX_BPEL_CORRELATOR_MESSAGE_CKEY on BPEL_CORRELATOR_MESSAGE_CKEY
(CKEY);
+create index IDX_SELECTOR_SELGRPID on BPEL_SELECTORS (SELGRPID);
+create index IDX_SELECTOR_CKEY on BPEL_SELECTORS (CORRELATION_KEY);
+create index IDX_SELECTOR_CORRELATOR on BPEL_SELECTORS (CORRELATOR);
+create index IDX_UNMATCHED_CORRELATOR on BPEL_UNMATCHED (CORRELATOR);
+create index IDX_UNMATCHED_CKEY on BPEL_UNMATCHED (CORRELATION_KEY);
+create index IDX_XMLDATA_IID on BPEL_XML_DATA (PIID) ;
+create index IDX_XMLDATA_SID on BPEL_XML_DATA (SCOPE_ID) ;
+create index IDX_XMLDATA_NAME on BPEL_XML_DATA (NAME) ;
+create index IDX_XMLDATA_NAME_SID on BPEL_XML_DATA (NAME, SCOPE_ID) ;
+create index IDX_EVENT_IID on BPEL_EVENT (IID) ;
+create index IDX_EVENT_PID on BPEL_EVENT (PID) ;
+create index IDX_CORR_SET_NAME on BPEL_CORRELATION_SET (CORR_SET_NAME) ;
+create index IDX_CORR_SET_SCOPE_ID on BPEL_CORRELATION_SET (SCOPE_ID) ;
+create index IDX_BPEL_INSTANCE_PROCESS_ID on BPEL_INSTANCE (PROCESS_ID) ;
+create index IDX_BPEL_INSTANCE_STATE on BPEL_INSTANCE (STATE) ;
+create index IDX_BPEL_PROCESS_TYPE_NAME on BPEL_PROCESS (type_name) ;
+create index IDX_BPEL_PROCESS_TYPE_NS on BPEL_PROCESS (type_ns) ;
+create index IDX_BPEL_CORRELATOR_PROCESS_ID on BPEL_CORRELATOR(PROCESS_ID) ;
+create index IDX_UNMATCHED_CORRELATOR_CKEY on BPEL_UNMATCHED
(CORRELATOR,CORRELATION_KEY) ;
+create index IDX_PLINK_VAL_PROCESS_IDX on BPEL_PLINK_VAL (PROCESS) ;
+create index IDX_PLINK_VAL_SCOPE on BPEL_PLINK_VAL (SCOPE) ;
+create index IDX_PLINK_VAL_MODELID on BPEL_PLINK_VAL (MODELID) ;
+create index IDX_SELECTOR_INSTANCE on BPEL_SELECTORS (PIID) ;
+create index IDX_VARPROP_XMLDATA on VAR_PROPERTY (XML_DATA_ID) ;
+create index IDX_VARPROP_NAME on VAR_PROPERTY (PROP_NAME) ;
+create index IDX_VARPROP_VALUE on VAR_PROPERTY (PROP_VALUE) ;
+create index IDX_UNMATCHED_MEX on BPEL_UNMATCHED (MEX) ;
+create index IDX_MESSAGE_MEX on BPEL_MESSAGE(MEX) ;
+create index IDX_MESSAGE_EXCHANGE_PIID on BPEL_MESSAGE_EXCHANGE(PIID) ;
+create index IDX_SCOPE_PIID on BPEL_SCOPE(PIID) ;
+create index IDX_BPEL_SELECTORS_PROC_TYPE on BPEL_SELECTORS(PROC_TYPE);
+create index IDX_BPEL_SELECTORS_SELGRPID on BPEL_SELECTORS(SELGRPID);
+
Modified:
ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/BpelDAOConnectionFactoryImpl.java
URL:
http://svn.apache.org/viewvc/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/BpelDAOConnectionFactoryImpl.java?rev=959253&r1=959252&r2=959253&view=diff
==============================================================================
---
ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/BpelDAOConnectionFactoryImpl.java
(original)
+++
ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/BpelDAOConnectionFactoryImpl.java
Wed Jun 30 10:06:14 2010
@@ -158,10 +158,9 @@ public class BpelDAOConnectionFactoryImp
// Sybase SQL Server
// Informix Dynamic Server
// Oracle 8 and Oracle >8
- HIBERNATE_DIALECTS.put("Apache Derby", new
DialectFactory.VersionInsensitiveMapper(
- "org.hibernate.dialect.DerbyDialect"));
- HIBERNATE_DIALECTS.put("INGRES", new
DialectFactory.VersionInsensitiveMapper(
- "org.hibernate.dialect.IngresDialect"));
+ HIBERNATE_DIALECTS.put("Apache Derby", new
DialectFactory.VersionInsensitiveMapper("org.hibernate.dialect.DerbyDialect"));
+ HIBERNATE_DIALECTS.put("INGRES", new
DialectFactory.VersionInsensitiveMapper("org.hibernate.dialect.IngresDialect"));
+ HIBERNATE_DIALECTS.put("H2", new
DialectFactory.VersionInsensitiveMapper("org.hibernate.dialect.H2Dialect"));
}
public void shutdown() {
Modified:
ode/trunk/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/DatabaseDelegate.java
URL:
http://svn.apache.org/viewvc/ode/trunk/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/DatabaseDelegate.java?rev=959253&r1=959252&r2=959253&view=diff
==============================================================================
---
ode/trunk/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/DatabaseDelegate.java
(original)
+++
ode/trunk/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/DatabaseDelegate.java
Wed Jun 30 10:06:14 2010
@@ -103,4 +103,6 @@ public interface DatabaseDelegate {
* @throws DatabaseException
*/
int updateReassign(String oldnode, String newnode) throws
DatabaseException;
+
+ public void acquireTransactionLocks();
}
Modified:
ode/trunk/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/JdbcDelegate.java
URL:
http://svn.apache.org/viewvc/ode/trunk/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/JdbcDelegate.java?rev=959253&r1=959252&r2=959253&view=diff
==============================================================================
---
ode/trunk/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/JdbcDelegate.java
(original)
+++
ode/trunk/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/JdbcDelegate.java
Wed Jun 30 10:06:14 2010
@@ -27,6 +27,7 @@ import java.sql.DatabaseMetaData;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
+import java.sql.Statement;
import java.sql.Types;
import java.util.ArrayList;
import java.util.HashMap;
@@ -456,6 +457,8 @@ public class JdbcDelegate implements Dat
d = Dialect.FIREBIRD;
} else if (dbProductName.indexOf("HSQL") >= 0) {
d = Dialect.HSQL;
+ } else if (dbProductName.indexOf("H2") >= 0) {
+ d = Dialect.H2;
} else if (dbProductName.indexOf("Microsoft SQL") >= 0) {
d = Dialect.SQLSERVER;
} else if (dbProductName.indexOf("MySQL") >= 0) {
@@ -476,8 +479,27 @@ public class JdbcDelegate implements Dat
return d;
}
+ public void acquireTransactionLocks() {
+ Statement s = null;
+ Connection c = null;
+ try {
+ c = getConnection();
+ s = c.createStatement();
+ s.execute("update ODE_JOB set jobid = '' where 1 = 0");
+ } catch (Exception e) {
+ throw new RuntimeException("", e);
+ } finally {
+ try {
+ if (s != null) s.close();
+ if (c != null) c.close();
+ } catch (Exception e) {
+ throw new RuntimeException("", e);
+ }
+ }
+ }
+
enum Dialect {
- DB2, DERBY, FIREBIRD, HSQL, MYSQL, ORACLE, SQLSERVER, SYBASE,
SYBASE12, UNKNOWN
+ DB2, DERBY, FIREBIRD, HSQL, MYSQL, ORACLE, SQLSERVER, SYBASE,
SYBASE12, H2, UNKNOWN
}
}
Modified:
ode/trunk/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/SimpleScheduler.java
URL:
http://svn.apache.org/viewvc/ode/trunk/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/SimpleScheduler.java?rev=959253&r1=959252&r2=959253&view=diff
==============================================================================
---
ode/trunk/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/SimpleScheduler.java
(original)
+++
ode/trunk/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/SimpleScheduler.java
Wed Jun 30 10:06:14 2010
@@ -906,4 +906,8 @@ public class SimpleScheduler implements
}
}
}
+
+ public void acquireTransactionLocks() {
+ _db.acquireTransactionLocks();
+ }
}
Added: ode/trunk/tasks/h2.rake
URL: http://svn.apache.org/viewvc/ode/trunk/tasks/h2.rake?rev=959253&view=auto
==============================================================================
--- ode/trunk/tasks/h2.rake (added)
+++ ode/trunk/tasks/h2.rake Wed Jun 30 10:06:14 2010
@@ -0,0 +1,42 @@
+#
+# 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.
+#
+
+module H2
+
+ REQUIRES = "com.h2database:h2:jar:1.1.117"
+
+ #Java.classpath << REQUIRES
+
+ class << self
+
+ # Returns a task that will create a new Derby database. The task name is
the path to
+ # the derby database. The prerequisites are all the SQL files for
inclusion in the database.
+ #
+ # For example:
+ # H2.create "mydb"=>derby.sql
+ def create(dbname, args)
+ db, prereqs = args.keys.first, args.values.first
+ targetDir=File.expand_path(db)
+ file(targetDir=>prereqs) do |task|
+ rm_rf dbname if File.exist?(dbname)
+ Java::Commands.java "org.h2.tools.RunScript", "-url",
"jdbc:h2:file:"+targetDir+File::Separator+dbname+";DB_CLOSE_ON_EXIT=false;user=sa",
"-showResults", "-script", prereqs, :classpath => REQUIRES
+ #Buildr.filter(prereqs).into(dbname).run
+ #touch task.name, :verbose=>false
+ end
+ end
+ end
+end
Modified: ode/trunk/utils/src/main/java/org/apache/ode/utils/NSContext.java
URL:
http://svn.apache.org/viewvc/ode/trunk/utils/src/main/java/org/apache/ode/utils/NSContext.java?rev=959253&r1=959252&r2=959253&view=diff
==============================================================================
--- ode/trunk/utils/src/main/java/org/apache/ode/utils/NSContext.java (original)
+++ ode/trunk/utils/src/main/java/org/apache/ode/utils/NSContext.java Wed Jun
30 10:06:14 2010
@@ -215,4 +215,13 @@ public class NSContext implements Namesp
public Map<String, String> toMap() {
return Collections.unmodifiableMap(_prefixToUriMap);
}
+
+ @Override
+ public boolean equals(Object b) {
+ if (b instanceof NSContext) {
+ return _prefixToUriMap.equals(((NSContext) b)._prefixToUriMap);
+ } else {
+ return false;
+ }
+ }
}