second iteration of STM done, simple tests work now

This commit is contained in:
Jonas Boner 2009-04-09 15:49:42 +02:00
parent 2639d14e1a
commit cd1ef83e49
40 changed files with 4102 additions and 3215 deletions

View file

@ -8,16 +8,8 @@
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module" module-name="util-java" />
<orderEntry type="module" module-name="kernel" />
<orderEntry type="module-library">
<library>
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/testng/testng/5.8/testng-5.8-jdk15.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</orderEntry>
<orderEntry type="module-library">
<library>
<CLASSES>
@ -36,15 +28,6 @@
<SOURCES />
</library>
</orderEntry>
<orderEntry type="module-library">
<library>
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/scala-libs/scala-otp-behavior/0.1-SNAPSHOT/scala-otp-behavior-0.1-SNAPSHOT.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</orderEntry>
<orderEntry type="module-library">
<library>
<CLASSES>
@ -54,15 +37,6 @@
<SOURCES />
</library>
</orderEntry>
<orderEntry type="module-library">
<library>
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/scala-libs/scala-otp-util-java/0.1-SNAPSHOT/scala-otp-util-java-0.1-SNAPSHOT.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</orderEntry>
</component>
</module>

File diff suppressed because it is too large Load diff

View file

@ -1,8 +1,8 @@
build.xml.data.CRC32=a3c53bfd
build.xml.script.CRC32=b65508dc
build.xml.stylesheet.CRC32=958a1d3e
# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml.
# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you.
nbproject/build-impl.xml.data.CRC32=a3c53bfd
nbproject/build-impl.xml.script.CRC32=3a7ee62c
nbproject/build-impl.xml.stylesheet.CRC32=d5ddc080@1.24.0.45
build.xml.data.CRC32=3e53666f
build.xml.script.CRC32=b65508dc
build.xml.stylesheet.CRC32=958a1d3e
# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml.
# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you.
nbproject/build-impl.xml.data.CRC32=3e53666f
nbproject/build-impl.xml.script.CRC32=0784ec5f
nbproject/build-impl.xml.stylesheet.CRC32=65b8de21

View file

@ -1,7 +1,7 @@
compile.on.save=true
do.depend=false
do.jar=true
javac.debug=true
javadoc.preview=true
jaxws.endorsed.dir=/home/jboner/bin/netbeans-dev-200903220201/java2/modules/ext/jaxws21/api:/home/jboner/bin/netbeans-dev-200903220201/ide11/modules/ext/jaxb/api
user.properties.file=/home/jboner/.netbeans/dev/build.properties
compile.on.save=true
do.depend=false
do.jar=true
javac.debug=true
javadoc.preview=true
jaxws.endorsed.dir=C:\\Program Files\\NetBeans 6.5.1\\java2\\modules\\ext\\jaxws21\\api:C:\\Program Files\\NetBeans 6.5.1\\ide10\\modules\\ext\\jaxb\\api
user.properties.file=C:\\Documents and Settings\\jboner\\.netbeans\\6.5\\build.properties

View file

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<project-private xmlns="http://www.netbeans.org/ns/project-private/1">
<editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/1"/>
</project-private>

View file

@ -1,186 +1,185 @@
application.title=api-java
application.vendor=jboner
build.classes.dir=${build.dir}/classes
build.classes.excludes=**/*.java,**/*.form
# This directory is removed when the project is cleaned:
build.dir=build
build.generated.dir=${build.dir}/generated
build.generated.sources.dir=${build.dir}/generated-sources
# Only compile against the classpath explicitly listed here:
build.sysclasspath=ignore
build.test.classes.dir=${build.dir}/test/classes
build.test.results.dir=${build.dir}/test/results
# Uncomment to specify the preferred debugger connection transport:
#debug.transport=dt_socket
debug.classpath=\
${run.classpath}
debug.test.classpath=\
${run.test.classpath}
# This directory is removed when the project is cleaned:
dist.dir=dist
dist.jar=${dist.dir}/api-java.jar
dist.javadoc.dir=${dist.dir}/javadoc
excludes=
file.reference.activation-1.1.jar=../lib/activation-1.1.jar
file.reference.aopalliance-1.0.jar=../lib/aopalliance-1.0.jar
file.reference.asm-3.1.jar=../lib/asm-3.1.jar
file.reference.catalina-ant.jar=../lib/catalina-ant.jar
file.reference.cglib-2.2.jar=../lib/cglib-2.2.jar
file.reference.colt-1.2.0.jar=../lib/colt-1.2.0.jar
file.reference.commons-codec-1.3.jar=../lib/commons-codec-1.3.jar
file.reference.commons-collections-3.1.jar=../lib/commons-collections-3.1.jar
file.reference.commons-dbcp-1.2.2.jar=../lib/commons-dbcp-1.2.2.jar
file.reference.commons-httpclient-3.1.jar=../lib/commons-httpclient-3.1.jar
file.reference.commons-io-1.3.2.jar=../lib/commons-io-1.3.2.jar
file.reference.commons-lang-2.1.jar=../lib/commons-lang-2.1.jar
file.reference.commons-logging.jar=../lib/commons-logging.jar
file.reference.commons-pool-1.4.jar=../lib/commons-pool-1.4.jar
file.reference.configgy-1.2.jar=../lib/configgy-1.2.jar
file.reference.google-collect-snapshot-20090211.jar=../lib/google-collect-snapshot-20090211.jar
file.reference.grizzly-framework-1.8.6.3.jar=../lib/grizzly-framework-1.8.6.3.jar
file.reference.grizzly-http-1.8.6.3.jar=../lib/grizzly-http-1.8.6.3.jar
file.reference.grizzly-http-servlet-1.8.6.3.jar=../lib/grizzly-http-servlet-1.8.6.3.jar
file.reference.grizzly-http-utils-1.8.6.3.jar=../lib/grizzly-http-utils-1.8.6.3.jar
file.reference.grizzly-portunif-1.8.6.3.jar=../lib/grizzly-portunif-1.8.6.3.jar
file.reference.grizzly-rcm-1.8.6.3.jar=../lib/grizzly-rcm-1.8.6.3.jar
file.reference.grizzly-servlet-webserver-1.8.6.3.jar=../lib/grizzly-servlet-webserver-1.8.6.3.jar
file.reference.guice-core-2.0-SNAPSHOT.jar=../lib/guice-core-2.0-SNAPSHOT.jar
file.reference.guice-jsr250-2.0-SNAPSHOT.jar=../lib/guice-jsr250-2.0-SNAPSHOT.jar
file.reference.jaxb-api-2.1.jar=../lib/jaxb-api-2.1.jar
file.reference.jaxb-impl-2.1.jar=../lib/jaxb-impl-2.1.jar
file.reference.jdom-1.0.jar=../lib/jdom-1.0.jar
file.reference.je-3.3.62.jar=../lib/je-3.3.62.jar
file.reference.jersey-atom-1.0.1.jar=../lib/jersey-atom-1.0.1.jar
file.reference.jersey-core-1.0.1.jar=../lib/jersey-core-1.0.1.jar
file.reference.jersey-json-1.0.1.jar=../lib/jersey-json-1.0.1.jar
file.reference.jersey-server-1.0.1.jar=../lib/jersey-server-1.0.1.jar
file.reference.jettison-1.0.1.jar=../lib/jettison-1.0.1.jar
file.reference.jetty-6.1.6rc0.jar=../lib/jetty-6.1.6rc0.jar
file.reference.jetty-util-6.1.6rc0.jar=../lib/jetty-util-6.1.6rc0.jar
file.reference.jsr250-api-1.0.jar=../lib/jsr250-api-1.0.jar
file.reference.jsr311-api-1.0.jar=../lib/jsr311-api-1.0.jar
file.reference.junit-3.8.2.jar=../lib/junit-3.8.2.jar
file.reference.libthrift-20080411p1.jar=../lib/libthrift-20080411p1.jar
file.reference.log4j-1.2.13.jar=../lib/log4j-1.2.13.jar
file.reference.main-java=src/main/java
file.reference.mina-core-2.0.0-M2-SNAPSHOT.jar=../lib/mina-core-2.0.0-M2-SNAPSHOT.jar
file.reference.mina-integration-scala-2.0.0-M2-SNAPSHOT.jar=../lib/mina-integration-scala-2.0.0-M2-SNAPSHOT.jar
file.reference.protobuf-java-2.0.3.jar=../lib/protobuf-java-2.0.3.jar
file.reference.rome-0.9.jar=../lib/rome-0.9.jar
file.reference.scala-library-2.7.3.jar=../lib/scala-library-2.7.3.jar
file.reference.scalatest-0.9.5.jar=../lib/scalatest-0.9.5.jar
file.reference.scalatest-0.9.5.zip=../lib/scalatest-0.9.5.zip
file.reference.servlet-api-2.5.jar=../lib/servlet-api-2.5.jar
file.reference.slf4j-api-1.4.3.jar=../lib/slf4j-api-1.4.3.jar
file.reference.slf4j-log4j12-1.4.3.jar=../lib/slf4j-log4j12-1.4.3.jar
file.reference.stax-api-1.0-2.jar=../lib/stax-api-1.0-2.jar
file.reference.test-java=src/test/java
file.reference.velocity-1.5.jar=../lib/velocity-1.5.jar
file.reference.voldemort-0.4a.jar=../lib/voldemort-0.4a.jar
file.reference.voldemort-contrib-0.4a.jar=../lib/voldemort-contrib-0.4a.jar
file.reference.xerces.jar=../lib/xerces.jar
file.reference.zookeeper-3.1.0.jar=../lib/zookeeper-3.1.0.jar
includes=**
jar.compress=false
javac.classpath=\
${reference.akka-util-java.jar}:\
${reference.akka-kernel.jar}:\
${file.reference.guice-core-2.0-SNAPSHOT.jar}:\
${file.reference.guice-jsr250-2.0-SNAPSHOT.jar}:\
${file.reference.activation-1.1.jar}:\
${file.reference.aopalliance-1.0.jar}:\
${file.reference.asm-3.1.jar}:\
${file.reference.catalina-ant.jar}:\
${file.reference.cglib-2.2.jar}:\
${file.reference.colt-1.2.0.jar}:\
${file.reference.commons-codec-1.3.jar}:\
${file.reference.commons-collections-3.1.jar}:\
${file.reference.commons-dbcp-1.2.2.jar}:\
${file.reference.commons-httpclient-3.1.jar}:\
${file.reference.commons-io-1.3.2.jar}:\
${file.reference.commons-lang-2.1.jar}:\
${file.reference.commons-logging.jar}:\
${file.reference.commons-pool-1.4.jar}:\
${file.reference.configgy-1.2.jar}:\
${file.reference.google-collect-snapshot-20090211.jar}:\
${file.reference.grizzly-framework-1.8.6.3.jar}:\
${file.reference.grizzly-http-1.8.6.3.jar}:\
${file.reference.grizzly-http-servlet-1.8.6.3.jar}:\
${file.reference.grizzly-http-utils-1.8.6.3.jar}:\
${file.reference.grizzly-portunif-1.8.6.3.jar}:\
${file.reference.grizzly-rcm-1.8.6.3.jar}:\
${file.reference.grizzly-servlet-webserver-1.8.6.3.jar}:\
${file.reference.jaxb-api-2.1.jar}:\
${file.reference.jaxb-impl-2.1.jar}:\
${file.reference.jdom-1.0.jar}:\
${file.reference.je-3.3.62.jar}:\
${file.reference.jersey-atom-1.0.1.jar}:\
${file.reference.jersey-core-1.0.1.jar}:\
${file.reference.jersey-json-1.0.1.jar}:\
${file.reference.jersey-server-1.0.1.jar}:\
${file.reference.jettison-1.0.1.jar}:\
${file.reference.jetty-6.1.6rc0.jar}:\
${file.reference.jetty-util-6.1.6rc0.jar}:\
${file.reference.jsr250-api-1.0.jar}:\
${file.reference.jsr311-api-1.0.jar}:\
${file.reference.junit-3.8.2.jar}:\
${file.reference.libthrift-20080411p1.jar}:\
${file.reference.log4j-1.2.13.jar}:\
${file.reference.mina-core-2.0.0-M2-SNAPSHOT.jar}:\
${file.reference.mina-integration-scala-2.0.0-M2-SNAPSHOT.jar}:\
${file.reference.protobuf-java-2.0.3.jar}:\
${file.reference.rome-0.9.jar}:\
${file.reference.scala-library-2.7.3.jar}:\
${file.reference.scalatest-0.9.5.jar}:\
${file.reference.scalatest-0.9.5.zip}:\
${file.reference.servlet-api-2.5.jar}:\
${file.reference.slf4j-api-1.4.3.jar}:\
${file.reference.slf4j-log4j12-1.4.3.jar}:\
${file.reference.stax-api-1.0-2.jar}:\
${file.reference.velocity-1.5.jar}:\
${file.reference.voldemort-0.4a.jar}:\
${file.reference.voldemort-contrib-0.4a.jar}:\
${file.reference.xerces.jar}:\
${file.reference.zookeeper-3.1.0.jar}
# Space-separated list of extra javac options
javac.compilerargs=
javac.deprecation=false
javac.source=1.5
javac.target=1.5
javac.test.classpath=\
${javac.classpath}:\
${build.classes.dir}:\
${libs.junit.classpath}:\
${libs.junit_4.classpath}
javadoc.additionalparam=
javadoc.author=false
javadoc.encoding=${source.encoding}
javadoc.noindex=false
javadoc.nonavbar=false
javadoc.notree=false
javadoc.private=false
javadoc.splitindex=true
javadoc.use=true
javadoc.version=false
javadoc.windowtitle=
main.class=
manifest.file=manifest.mf
meta.inf.dir=${src.dir}/META-INF
platform.active=default_platform
project.akka-kernel=../kernel
project.akka-util-java=../util-java
reference.akka-kernel.jar=${project.akka-kernel}/dist/akka-kernel.jar
reference.akka-util-java.jar=${project.akka-util-java}/dist/akka-util-java.jar
run.classpath=\
${javac.classpath}:\
${build.classes.dir}
# Space-separated list of JVM arguments used when running the project
# (you may also define separate properties like run-sys-prop.name=value instead of -Dname=value
# or test-sys-prop.name=value to set system properties for unit tests):
run.jvmargs=
run.test.classpath=\
${javac.test.classpath}:\
${build.test.classes.dir}
source.encoding=UTF-8
src.dir=${file.reference.main-java}
test.src.dir=${file.reference.test-java}
application.title=api-java
application.vendor=jboner
build.classes.dir=${build.dir}/classes
build.classes.excludes=**/*.java,**/*.form
# This directory is removed when the project is cleaned:
build.dir=build
build.generated.dir=${build.dir}/generated
build.generated.sources.dir=${build.dir}/generated-sources
# Only compile against the classpath explicitly listed here:
build.sysclasspath=ignore
build.test.classes.dir=${build.dir}/test/classes
build.test.results.dir=${build.dir}/test/results
# Uncomment to specify the preferred debugger connection transport:
#debug.transport=dt_socket
debug.classpath=\
${run.classpath}
debug.test.classpath=\
${run.test.classpath}
# This directory is removed when the project is cleaned:
dist.dir=dist
dist.jar=${dist.dir}/api-java.jar
dist.javadoc.dir=${dist.dir}/javadoc
excludes=
file.reference.activation-1.1.jar=../lib/activation-1.1.jar
file.reference.akka-util-java.jar=../lib/akka-util-java.jar
file.reference.aopalliance-1.0.jar=../lib/aopalliance-1.0.jar
file.reference.asm-3.1.jar=../lib/asm-3.1.jar
file.reference.catalina-ant.jar=../lib/catalina-ant.jar
file.reference.cglib-2.2.jar=../lib/cglib-2.2.jar
file.reference.colt-1.2.0.jar=../lib/colt-1.2.0.jar
file.reference.commons-codec-1.3.jar=../lib/commons-codec-1.3.jar
file.reference.commons-collections-3.1.jar=../lib/commons-collections-3.1.jar
file.reference.commons-dbcp-1.2.2.jar=../lib/commons-dbcp-1.2.2.jar
file.reference.commons-httpclient-3.1.jar=../lib/commons-httpclient-3.1.jar
file.reference.commons-io-1.3.2.jar=../lib/commons-io-1.3.2.jar
file.reference.commons-lang-2.1.jar=../lib/commons-lang-2.1.jar
file.reference.commons-logging.jar=../lib/commons-logging.jar
file.reference.commons-pool-1.4.jar=../lib/commons-pool-1.4.jar
file.reference.configgy-1.2.jar=../lib/configgy-1.2.jar
file.reference.google-collect-snapshot-20090211.jar=../lib/google-collect-snapshot-20090211.jar
file.reference.grizzly-framework-1.8.6.3.jar=../lib/grizzly-framework-1.8.6.3.jar
file.reference.grizzly-http-1.8.6.3.jar=../lib/grizzly-http-1.8.6.3.jar
file.reference.grizzly-http-servlet-1.8.6.3.jar=../lib/grizzly-http-servlet-1.8.6.3.jar
file.reference.grizzly-http-utils-1.8.6.3.jar=../lib/grizzly-http-utils-1.8.6.3.jar
file.reference.grizzly-portunif-1.8.6.3.jar=../lib/grizzly-portunif-1.8.6.3.jar
file.reference.grizzly-rcm-1.8.6.3.jar=../lib/grizzly-rcm-1.8.6.3.jar
file.reference.grizzly-servlet-webserver-1.8.6.3.jar=../lib/grizzly-servlet-webserver-1.8.6.3.jar
file.reference.guice-core-2.0-SNAPSHOT.jar=../lib/guice-core-2.0-SNAPSHOT.jar
file.reference.guice-jsr250-2.0-SNAPSHOT.jar=../lib/guice-jsr250-2.0-SNAPSHOT.jar
file.reference.jaxb-api-2.1.jar=../lib/jaxb-api-2.1.jar
file.reference.jaxb-impl-2.1.jar=../lib/jaxb-impl-2.1.jar
file.reference.jdom-1.0.jar=../lib/jdom-1.0.jar
file.reference.je-3.3.62.jar=../lib/je-3.3.62.jar
file.reference.jersey-atom-1.0.1.jar=../lib/jersey-atom-1.0.1.jar
file.reference.jersey-core-1.0.1.jar=../lib/jersey-core-1.0.1.jar
file.reference.jersey-json-1.0.1.jar=../lib/jersey-json-1.0.1.jar
file.reference.jersey-server-1.0.1.jar=../lib/jersey-server-1.0.1.jar
file.reference.jettison-1.0.1.jar=../lib/jettison-1.0.1.jar
file.reference.jetty-6.1.6rc0.jar=../lib/jetty-6.1.6rc0.jar
file.reference.jetty-util-6.1.6rc0.jar=../lib/jetty-util-6.1.6rc0.jar
file.reference.jsr250-api-1.0.jar=../lib/jsr250-api-1.0.jar
file.reference.jsr311-api-1.0.jar=../lib/jsr311-api-1.0.jar
file.reference.junit-3.8.2.jar=../lib/junit-3.8.2.jar
file.reference.libthrift-20080411p1.jar=../lib/libthrift-20080411p1.jar
file.reference.log4j-1.2.13.jar=../lib/log4j-1.2.13.jar
file.reference.main-java=src/main/java
file.reference.mina-core-2.0.0-M2-SNAPSHOT.jar=../lib/mina-core-2.0.0-M2-SNAPSHOT.jar
file.reference.mina-integration-scala-2.0.0-M2-SNAPSHOT.jar=../lib/mina-integration-scala-2.0.0-M2-SNAPSHOT.jar
file.reference.protobuf-java-2.0.3.jar=../lib/protobuf-java-2.0.3.jar
file.reference.rome-0.9.jar=../lib/rome-0.9.jar
file.reference.scala-library-2.7.3.jar=../lib/scala-library-2.7.3.jar
file.reference.scalatest-0.9.5.jar=../lib/scalatest-0.9.5.jar
file.reference.scalatest-0.9.5.zip=../lib/scalatest-0.9.5.zip
file.reference.servlet-api-2.5.jar=../lib/servlet-api-2.5.jar
file.reference.slf4j-api-1.4.3.jar=../lib/slf4j-api-1.4.3.jar
file.reference.slf4j-log4j12-1.4.3.jar=../lib/slf4j-log4j12-1.4.3.jar
file.reference.stax-api-1.0-2.jar=../lib/stax-api-1.0-2.jar
file.reference.test-java=src/test/java
file.reference.velocity-1.5.jar=../lib/velocity-1.5.jar
file.reference.voldemort-0.4a.jar=../lib/voldemort-0.4a.jar
file.reference.voldemort-contrib-0.4a.jar=../lib/voldemort-contrib-0.4a.jar
file.reference.xerces.jar=../lib/xerces.jar
file.reference.zookeeper-3.1.0.jar=../lib/zookeeper-3.1.0.jar
includes=**
jar.compress=false
javac.classpath=\
${reference.akka-kernel.jar}:\
${file.reference.guice-core-2.0-SNAPSHOT.jar}:\
${file.reference.guice-jsr250-2.0-SNAPSHOT.jar}:\
${file.reference.activation-1.1.jar}:\
${file.reference.aopalliance-1.0.jar}:\
${file.reference.asm-3.1.jar}:\
${file.reference.catalina-ant.jar}:\
${file.reference.cglib-2.2.jar}:\
${file.reference.colt-1.2.0.jar}:\
${file.reference.akka-util-java.jar}:\
${file.reference.commons-codec-1.3.jar}:\
${file.reference.commons-collections-3.1.jar}:\
${file.reference.commons-dbcp-1.2.2.jar}:\
${file.reference.commons-httpclient-3.1.jar}:\
${file.reference.commons-io-1.3.2.jar}:\
${file.reference.commons-lang-2.1.jar}:\
${file.reference.commons-logging.jar}:\
${file.reference.commons-pool-1.4.jar}:\
${file.reference.configgy-1.2.jar}:\
${file.reference.google-collect-snapshot-20090211.jar}:\
${file.reference.grizzly-framework-1.8.6.3.jar}:\
${file.reference.grizzly-http-1.8.6.3.jar}:\
${file.reference.grizzly-http-servlet-1.8.6.3.jar}:\
${file.reference.grizzly-http-utils-1.8.6.3.jar}:\
${file.reference.grizzly-portunif-1.8.6.3.jar}:\
${file.reference.grizzly-rcm-1.8.6.3.jar}:\
${file.reference.grizzly-servlet-webserver-1.8.6.3.jar}:\
${file.reference.jaxb-api-2.1.jar}:\
${file.reference.jaxb-impl-2.1.jar}:\
${file.reference.jdom-1.0.jar}:\
${file.reference.je-3.3.62.jar}:\
${file.reference.jersey-atom-1.0.1.jar}:\
${file.reference.jersey-core-1.0.1.jar}:\
${file.reference.jersey-json-1.0.1.jar}:\
${file.reference.jersey-server-1.0.1.jar}:\
${file.reference.jettison-1.0.1.jar}:\
${file.reference.jetty-6.1.6rc0.jar}:\
${file.reference.jetty-util-6.1.6rc0.jar}:\
${file.reference.jsr250-api-1.0.jar}:\
${file.reference.jsr311-api-1.0.jar}:\
${file.reference.junit-3.8.2.jar}:\
${file.reference.libthrift-20080411p1.jar}:\
${file.reference.log4j-1.2.13.jar}:\
${file.reference.mina-core-2.0.0-M2-SNAPSHOT.jar}:\
${file.reference.mina-integration-scala-2.0.0-M2-SNAPSHOT.jar}:\
${file.reference.protobuf-java-2.0.3.jar}:\
${file.reference.rome-0.9.jar}:\
${file.reference.scala-library-2.7.3.jar}:\
${file.reference.scalatest-0.9.5.jar}:\
${file.reference.scalatest-0.9.5.zip}:\
${file.reference.servlet-api-2.5.jar}:\
${file.reference.slf4j-api-1.4.3.jar}:\
${file.reference.slf4j-log4j12-1.4.3.jar}:\
${file.reference.stax-api-1.0-2.jar}:\
${file.reference.velocity-1.5.jar}:\
${file.reference.voldemort-0.4a.jar}:\
${file.reference.voldemort-contrib-0.4a.jar}:\
${file.reference.xerces.jar}:\
${file.reference.zookeeper-3.1.0.jar}
# Space-separated list of extra javac options
javac.compilerargs=
javac.deprecation=false
javac.source=1.5
javac.target=1.5
javac.test.classpath=\
${javac.classpath}:\
${build.classes.dir}:\
${libs.junit.classpath}:\
${libs.junit_4.classpath}
javadoc.additionalparam=
javadoc.author=false
javadoc.encoding=${source.encoding}
javadoc.noindex=false
javadoc.nonavbar=false
javadoc.notree=false
javadoc.private=false
javadoc.splitindex=true
javadoc.use=true
javadoc.version=false
javadoc.windowtitle=
main.class=
manifest.file=manifest.mf
meta.inf.dir=${src.dir}/META-INF
platform.active=default_platform
project.akka-kernel=../kernel
reference.akka-kernel.jar=${project.akka-kernel}/dist/akka-kernel.jar
run.classpath=\
${javac.classpath}:\
${build.classes.dir}
# Space-separated list of JVM arguments used when running the project
# (you may also define separate properties like run-sys-prop.name=value instead of -Dname=value
# or test-sys-prop.name=value to set system properties for unit tests):
run.jvmargs=
run.test.classpath=\
${javac.test.classpath}:\
${build.test.classes.dir}
source.encoding=UTF-8
src.dir=${file.reference.main-java}
test.src.dir=${file.reference.test-java}

View file

@ -21,14 +21,6 @@
<clean-target>clean</clean-target>
<id>jar</id>
</reference>
<reference>
<foreign-project>akka-util-java</foreign-project>
<artifact-type>jar</artifact-type>
<script>build.xml</script>
<target>jar</target>
<clean-target>clean</clean-target>
<id>jar</id>
</reference>
</references>
</configuration>
</project>

View file

@ -25,10 +25,10 @@ import java.util.HashMap;
public class ActiveObjectGuiceConfigurator {
private List<Module> modules = new ArrayList<Module>();
private Injector injector;
private Supervisor supervisor;
private Supervisor supervisor; // TODO is supervisor needed
private RestartStrategy restartStrategy;
private Component[] components;
private Map<Class, Component> configRegistry = new HashMap<Class, Component>();
private Map<Class, Component> configRegistry = new HashMap<Class, Component>(); // TODO is configRegistry needed?
private Map<Class, ActiveObjectProxy> activeObjectRegistry = new HashMap<Class, ActiveObjectProxy>();
private ActiveObjectFactory activeObjectFactory = new ActiveObjectFactory();

View file

@ -25,27 +25,32 @@ public class ActiveObjectGuiceConfiguratorTest extends TestCase {
bind(Ext.class).to(ExtImpl.class).in(Scopes.SINGLETON);
}
}).configureActiveObjects(
new RestartStrategy(new AllForOne(), 3, 100), new Component[]{
new RestartStrategy(new AllForOne(), 3, 5000), new Component[]{
new Component(
Foo.class,
FooImpl.class,
new LifeCycle(new Permanent(), 100),
new LifeCycle(new Permanent(), 1000),
1000),
new Component(
Bar.class,
BarImpl.class,
new LifeCycle(new Permanent(), 100),
new LifeCycle(new Permanent(), 1000),
1000),
new Component(
Stateful.class,
StatefulImpl.class,
new LifeCycle(new Permanent(), 100),
1000),
new LifeCycle(new Permanent(), 1000),
10000000),
new Component(
Failer.class,
FailerImpl.class,
new LifeCycle(new Permanent(), 100),
1000)
new LifeCycle(new Permanent(), 1000),
1000),
new Component(
Clasher.class,
ClasherImpl.class,
new LifeCycle(new Permanent(), 1000),
100000)
}).inject().supervise();
}
@ -64,6 +69,15 @@ public class ActiveObjectGuiceConfiguratorTest extends TestCase {
assertTrue(bar.getExt().toString().equals(ext.toString()));
}
public void testLookupNonSupervisedInstance() {
try {
String str = conf.getActiveObject(String.class);
fail("exception should have been thrown");
} catch (Exception e) {
assertEquals("Class java.lang.String has not been put under supervision (by passing in the config to the supervise() method", e.getMessage());
}
}
public void testActiveObjectInvocation() throws InterruptedException {
messageLog = "";
Foo foo = conf.getActiveObject(Foo.class);
@ -85,6 +99,7 @@ public class ActiveObjectGuiceConfiguratorTest extends TestCase {
assertEquals("foo return_foo before_bar ", messageLog);
}
public void testForcedTimeout() {
messageLog = "";
Foo foo = conf.getActiveObject(Foo.class);
@ -104,18 +119,45 @@ public class ActiveObjectGuiceConfiguratorTest extends TestCase {
} catch (RuntimeException e) {
}
}
//
// public void testShouldNotRollbackStateForStatefulServerInCaseOfSuccess() {
// Stateful stateful = conf.getActiveObject(Stateful.class);
// stateful.setState("stateful", "init"); // set init state
// stateful.success("stateful", "new state"); // transactional
// assertEquals("new state", stateful.getState("stateful"));
// }
//
// public void testShouldRollbackStateForStatefulServerInCaseOfFailure() {
// Stateful stateful = conf.getActiveObject(Stateful.class);
// stateful.setState("stateful", "init"); // set init state
//
// Failer failer = conf.getActiveObject(Failer.class);
// try {
// stateful.failure("stateful", "new state", failer); // call failing transactional method
// fail("should have thrown an exception");
// } catch (RuntimeException e) { } // expected
// assertEquals("init", stateful.getState("stateful")); // check that state is == init state
// }
public void testShouldNotRollbackStateForStatefulServerInCaseOfSuccess() {
Stateful stateful = conf.getActiveObject(Stateful.class);
stateful.success("test", "new state");
assertEquals("new state", stateful.getState("test"));
}
public void testShouldRollbackStateForStatefulServerInCaseOfFailure() {
public void testShouldRollbackStateForStatefulServerInCaseOfMessageClash() {
Stateful stateful = conf.getActiveObject(Stateful.class);
Failer failer = conf.getActiveObject(Failer.class);
stateful.failure("test", "new state", failer);
assertEquals("nil", stateful.getState("test"));
stateful.setState("stateful", "init"); // set init state
Clasher clasher = conf.getActiveObject(Clasher.class);
clasher.setState("clasher", "init"); // set init state
// try {
// stateful.clashOk("stateful", "new state", clasher);
// } catch (RuntimeException e) { } // expected
// assertEquals("new state", stateful.getState("stateful")); // check that state is == init state
// assertEquals("was here", clasher.getState("clasher")); // check that state is == init state
try {
stateful.clashNotOk("stateful", "new state", clasher);
fail("should have thrown an exception");
} catch (RuntimeException e) { System.out.println(e); } // expected
assertEquals("init", stateful.getState("stateful")); // check that state is == init state
//assertEquals("init", clasher.getState("clasher")); // check that state is == init state
}
}
@ -123,60 +165,44 @@ public class ActiveObjectGuiceConfiguratorTest extends TestCase {
interface Foo {
public String foo(String msg);
@oneway
public void bar(String msg);
@oneway public void bar(String msg);
public void longRunning();
public void throwsException();
public Bar getBar();
}
class FooImpl implements Foo {
@Inject
private Bar bar;
@Inject private Bar bar;
public Bar getBar() {
return bar;
}
public String foo(String msg) {
return msg + "return_foo ";
}
public void bar(String msg) {
bar.bar(msg);
}
public void longRunning() {
try {
Thread.sleep(10000);
} catch (InterruptedException e) {
}
}
public void throwsException() {
throw new RuntimeException("expected");
}
}
interface Bar {
@oneway
void bar(String msg);
@oneway void bar(String msg);
Ext getExt();
}
class BarImpl implements Bar {
@Inject
private Ext ext;
@Inject private Ext ext;
public Ext getExt() {
return ext;
}
public void bar(String msg) {
}
}
@ -191,17 +217,25 @@ class ExtImpl implements Ext {
}
interface Stateful {
// transactional
@transactional public void success(String key, String msg);
@transactional public void failure(String key, String msg, Failer failer);
@transactional public void clashOk(String key, String msg, Clasher clasher);
@transactional public void clashNotOk(String key, String msg, Clasher clasher);
// non-transactional
public String getState(String key);
public void setState(String key, String value);
}
class StatefulImpl implements Stateful {
@state private TransientObjectState state = new TransientObjectState();
public String getState(String key) {
return (String)state.get(key);
}
public void setState(String key, String msg) {
state.put(key, msg);
}
public void success(String key, String msg) {
state.put(key, msg);
}
@ -209,6 +243,15 @@ class StatefulImpl implements Stateful {
state.put(key, msg);
failer.fail();
}
public void clashOk(String key, String msg, Clasher clasher) {
state.put(key, msg);
clasher.clash();
}
public void clashNotOk(String key, String msg, Clasher clasher) {
state.put(key, msg);
clasher.clash();
clasher.clash();
}
}
interface Failer {
@ -221,4 +264,36 @@ class FailerImpl implements Failer {
}
}
interface Clasher {
public void clash();
public String getState(String key);
public void setState(String key, String value);
}
class ClasherImpl implements Clasher {
@state private TransientObjectState state = new TransientObjectState();
public String getState(String key) {
return (String)state.get(key);
}
public void setState(String key, String msg) {
state.put(key, msg);
}
public void clash() {
state.put("clasher", "was here");
// spend some time here
for (long i = 0; i < 1000000000; i++) {
for (long j = 0; j < 10000000; j++) {
j += i;
}
}
// FIXME: this statement gives me this error:
// se.scalablesolutions.akka.kernel.ActiveObjectException:
// Unexpected message [!(scala.actors.Channel@c2b2f6,ErrRef[Right(null)])] to
// [GenericServer[se.scalablesolutions.akka.api.StatefulImpl]] from
// [GenericServer[se.scalablesolutions.akka.api.ClasherImpl]]]
//try { Thread.sleep(1000); } catch (InterruptedException e) {}
}
}