rewrote the state management, tx system still to rewrite
This commit is contained in:
parent
3e703a53ab
commit
8586110449
17 changed files with 2511 additions and 2450 deletions
|
|
@ -153,9 +153,15 @@ is divided into following sections:
|
|||
<attribute default="${excludes}" name="excludes"/>
|
||||
<attribute default="${javac.debug}" name="debug"/>
|
||||
<attribute default="/does/not/exist" name="sourcepath"/>
|
||||
<attribute default="/does/not/exist" name="gensrcdir"/>
|
||||
<element name="customize" optional="true"/>
|
||||
<sequential>
|
||||
<javac debug="@{debug}" deprecation="${javac.deprecation}" destdir="@{destdir}" encoding="${source.encoding}" excludes="@{excludes}" includeantruntime="false" includes="@{includes}" source="${javac.source}" sourcepath="@{sourcepath}" srcdir="@{srcdir}" target="${javac.target}">
|
||||
<src>
|
||||
<dirset dir="@{gensrcdir}" erroronmissingdir="false">
|
||||
<include name="*"/>
|
||||
</dirset>
|
||||
</src>
|
||||
<classpath>
|
||||
<path path="@{classpath}"/>
|
||||
</classpath>
|
||||
|
|
@ -287,12 +293,13 @@ is divided into following sections:
|
|||
<target name="-init-macrodef-java">
|
||||
<macrodef name="java" uri="http://www.netbeans.org/ns/j2se-project/1">
|
||||
<attribute default="${main.class}" name="classname"/>
|
||||
<attribute default="${run.classpath}" name="classpath"/>
|
||||
<element name="customize" optional="true"/>
|
||||
<sequential>
|
||||
<java classname="@{classname}" dir="${work.dir}" fork="true">
|
||||
<jvmarg line="${run.jvmargs}"/>
|
||||
<classpath>
|
||||
<path path="${run.classpath}"/>
|
||||
<path path="@{classpath}"/>
|
||||
</classpath>
|
||||
<syspropertyset>
|
||||
<propertyref prefix="run-sys-prop."/>
|
||||
|
|
@ -335,10 +342,15 @@ is divided into following sections:
|
|||
<!-- You can override this target in the ../build.xml file. -->
|
||||
</target>
|
||||
<target if="do.depend.true" name="-compile-depend">
|
||||
<j2seproject3:depend/>
|
||||
<pathconvert property="build.generated.subdirs">
|
||||
<dirset dir="${build.generated.sources.dir}" erroronmissingdir="false">
|
||||
<include name="*"/>
|
||||
</dirset>
|
||||
</pathconvert>
|
||||
<j2seproject3:depend srcdir="${src.dir}:${build.generated.subdirs}"/>
|
||||
</target>
|
||||
<target depends="init,deps-jar,-pre-pre-compile,-pre-compile,-compile-depend" if="have.sources" name="-do-compile">
|
||||
<j2seproject3:javac/>
|
||||
<j2seproject3:javac gensrcdir="${build.generated.sources.dir}"/>
|
||||
<copy todir="${build.classes.dir}">
|
||||
<fileset dir="${src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
|
||||
</copy>
|
||||
|
|
@ -355,7 +367,7 @@ is divided into following sections:
|
|||
<target depends="init,deps-jar,-pre-pre-compile" name="-do-compile-single">
|
||||
<fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail>
|
||||
<j2seproject3:force-recompile/>
|
||||
<j2seproject3:javac excludes="" includes="${javac.includes}" sourcepath="${src.dir}"/>
|
||||
<j2seproject3:javac excludes="" gensrcdir="${build.generated.sources.dir}" includes="${javac.includes}" sourcepath="${src.dir}"/>
|
||||
</target>
|
||||
<target name="-post-compile-single">
|
||||
<!-- Empty placeholder for easier customization. -->
|
||||
|
|
@ -445,6 +457,10 @@ is divided into following sections:
|
|||
<fail unless="run.class">Must select one file in the IDE or set run.class</fail>
|
||||
<j2seproject1:java classname="${run.class}"/>
|
||||
</target>
|
||||
<target depends="init,-do-not-recompile,compile-test-single" name="run-test-with-main">
|
||||
<fail unless="run.class">Must select one file in the IDE or set run.class</fail>
|
||||
<j2seproject1:java classname="${run.class}" classpath="${run.test.classpath}"/>
|
||||
</target>
|
||||
<!--
|
||||
=================
|
||||
DEBUGGING SECTION
|
||||
|
|
@ -453,6 +469,9 @@ is divided into following sections:
|
|||
<target depends="init" if="netbeans.home" name="-debug-start-debugger">
|
||||
<j2seproject1:nbjpdastart name="${debug.class}"/>
|
||||
</target>
|
||||
<target depends="init" if="netbeans.home" name="-debug-start-debugger-main-test">
|
||||
<j2seproject1:nbjpdastart classpath="${debug.test.classpath}" name="${debug.class}"/>
|
||||
</target>
|
||||
<target depends="init,compile" name="-debug-start-debuggee">
|
||||
<j2seproject3:debug>
|
||||
<customize>
|
||||
|
|
@ -470,6 +489,11 @@ is divided into following sections:
|
|||
<j2seproject3:debug classname="${debug.class}"/>
|
||||
</target>
|
||||
<target depends="init,-do-not-recompile,compile-single,-debug-start-debugger,-debug-start-debuggee-single" if="netbeans.home" name="debug-single"/>
|
||||
<target depends="init,compile-test-single" if="netbeans.home" name="-debug-start-debuggee-main-test">
|
||||
<fail unless="debug.class">Must select one file in the IDE or set debug.class</fail>
|
||||
<j2seproject3:debug classname="${debug.class}" classpath="${debug.test.classpath}"/>
|
||||
</target>
|
||||
<target depends="init,-do-not-recompile,compile-test-single,-debug-start-debugger-main-test,-debug-start-debuggee-main-test" if="netbeans.home" name="debug-test-with-main"/>
|
||||
<target depends="init" name="-pre-debug-fix">
|
||||
<fail unless="fix.includes">Must set fix.includes</fail>
|
||||
<property name="javac.includes" value="${fix.includes}.java"/>
|
||||
|
|
@ -492,6 +516,9 @@ is divided into following sections:
|
|||
<fileset dir="${src.dir}" excludes="${excludes}" includes="${includes}">
|
||||
<filename name="**/*.java"/>
|
||||
</fileset>
|
||||
<fileset dir="${build.generated.sources.dir}" erroronmissingdir="false">
|
||||
<include name="**/*.java"/>
|
||||
</fileset>
|
||||
</javadoc>
|
||||
</target>
|
||||
<target depends="init,-javadoc-build" if="netbeans.home" name="-javadoc-browse" unless="no.javadoc.preview">
|
||||
|
|
@ -553,7 +580,7 @@ is divided into following sections:
|
|||
<j2seproject3:junit testincludes="**/*Test.java"/>
|
||||
</target>
|
||||
<target depends="init,compile-test,-pre-test-run,-do-test-run" if="have.tests" name="-post-test-run">
|
||||
<fail if="tests.failed">Some tests failed; see details above.</fail>
|
||||
<fail if="tests.failed" unless="ignore.failing.tests">Some tests failed; see details above.</fail>
|
||||
</target>
|
||||
<target depends="init" if="have.tests" name="test-report"/>
|
||||
<target depends="init" if="netbeans.home+have.tests" name="-test-browse"/>
|
||||
|
|
@ -566,7 +593,7 @@ is divided into following sections:
|
|||
<j2seproject3:junit excludes="" includes="${test.includes}"/>
|
||||
</target>
|
||||
<target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single" if="have.tests" name="-post-test-run-single">
|
||||
<fail if="tests.failed">Some tests failed; see details above.</fail>
|
||||
<fail if="tests.failed" unless="ignore.failing.tests">Some tests failed; see details above.</fail>
|
||||
</target>
|
||||
<target depends="init,-do-not-recompile,compile-test-single,-pre-test-run-single,-do-test-run-single,-post-test-run-single" description="Run single unit test." name="test-single"/>
|
||||
<!--
|
||||
|
|
|
|||
|
|
@ -4,5 +4,5 @@ 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=b8a9f6fa
|
||||
nbproject/build-impl.xml.stylesheet.CRC32=65b8de21
|
||||
nbproject/build-impl.xml.script.CRC32=3a7ee62c
|
||||
nbproject/build-impl.xml.stylesheet.CRC32=d5ddc080@1.24.0.45
|
||||
|
|
|
|||
|
|
@ -3,5 +3,5 @@ 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
|
||||
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
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ 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
|
||||
|
|
|
|||
|
|
@ -196,9 +196,9 @@ interface Stateful {
|
|||
public String getState(String key);
|
||||
}
|
||||
|
||||
@stateful // TODO: make it possible to add @stateful to interface not impl class
|
||||
class StatefulImpl implements Stateful {
|
||||
@Inject private TransientObjectState state;
|
||||
@state private TransientObjectState state = new TransientObjectState();
|
||||
|
||||
public String getState(String key) {
|
||||
return (String)state.get(key);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ AKKA_UTIL_JAVA = 'se.scalablesolutions.akka:akka-util-java:jar:0.1'
|
|||
AKKA_API_JAVA = 'se.scalablesolutions.akka:akka-api-java:jar:0.1'
|
||||
|
||||
SCALA = 'org.scala-lang:scala-library:jar:2.7.3'
|
||||
SCALATEST = 'org.scalatest:scalatest:jar:0.9.5'
|
||||
SCALATEST = 'org.scala-tools.testing:scalatest:jar:0.9.5'
|
||||
GUICEYFRUIT = ['org.guiceyfruit:guice-core:jar:2.0-SNAPSHOT',
|
||||
'org.guiceyfruit:guice-jsr250:jar:2.0-SNAPSHOT']
|
||||
JERSEY = ['com.sun.jersey:jersey-core:jar:1.0.1',
|
||||
|
|
@ -62,14 +62,14 @@ define 'akka' do
|
|||
|
||||
desc 'Akka Actor kernel core implementation'
|
||||
define 'kernel' do
|
||||
compile.with(AKKA_UTIL_JAVA, GUICEYFRUIT, MINA_CORE, MINA_SCALA, JERSEY, VOLDEMORT, ZOOKEEPER, SLF4J, GRIZZLY, CONFIGGY, JUNIT3, SCALATEST)
|
||||
compile.with(AKKA_UTIL_JAVA, GUICEYFRUIT, MINA_CORE, MINA_SCALA, JERSEY, VOLDEMORT, ZOOKEEPER, SLF4J, GRIZZLY, CONFIGGY, SCALATEST)
|
||||
test.using :scalatest
|
||||
package :jar
|
||||
end
|
||||
|
||||
#desc 'Akka DB'
|
||||
#define 'db' do
|
||||
# compile.with(AKKA_KERNEL, MINA_CORE, MINA_SCALA, ZOOKEEPER, CONFIGGY, SLF4J, JUNIT3)
|
||||
# compile.with(AKKA_KERNEL, MINA_CORE, MINA_SCALA, ZOOKEEPER, CONFIGGY, SLF4J)
|
||||
# test.using :scalatest
|
||||
# package :jar
|
||||
#end
|
||||
|
|
|
|||
|
|
@ -5,4 +5,4 @@ build.xml.stylesheet.CRC32=ca9d572e
|
|||
# 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=e25238a8
|
||||
nbproject/build-impl.xml.script.CRC32=749b9ab1
|
||||
nbproject/build-impl.xml.stylesheet.CRC32=371897b9
|
||||
nbproject/build-impl.xml.stylesheet.CRC32=371897b9@1.3.0
|
||||
|
|
|
|||
|
|
@ -2,5 +2,5 @@ do.depend=false
|
|||
do.jar=false
|
||||
javac.debug=true
|
||||
javadoc.preview=true
|
||||
jaxws.endorsed.dir=C:\\Program Files\\NetBeans 6.5.1\\java2\\modules\\ext\\jaxws21\\api
|
||||
user.properties.file=C:\\Documents and Settings\\jboner\\.netbeans\\6.5\\build.properties
|
||||
jaxws.endorsed.dir=/home/jboner/bin/netbeans-dev-200903220201/java2/modules/ext/jaxws21/api
|
||||
user.properties.file=/home/jboner/.netbeans/dev/build.properties
|
||||
|
|
|
|||
|
|
@ -18,64 +18,67 @@ dist.dir=dist
|
|||
dist.jar=${dist.dir}/akka-kernel.jar
|
||||
dist.javadoc.dir=${dist.dir}/javadoc
|
||||
excludes=
|
||||
file.reference.activation-1.1.jar=C:\\home\\jboner\\src\\scala\\akka\\lib\\activation-1.1.jar
|
||||
file.reference.aopalliance-1.0.jar=C:\\home\\jboner\\src\\scala\\akka\\lib\\aopalliance-1.0.jar
|
||||
file.reference.asm-3.1.jar=C:\\home\\jboner\\src\\scala\\akka\\lib\\asm-3.1.jar
|
||||
file.reference.catalina-ant.jar=C:\\home\\jboner\\src\\scala\\akka\\lib\\catalina-ant.jar
|
||||
file.reference.cglib-2.2.jar=C:\\home\\jboner\\src\\scala\\akka\\lib\\cglib-2.2.jar
|
||||
file.reference.colt-1.2.0.jar=C:\\home\\jboner\\src\\scala\\akka\\lib\\colt-1.2.0.jar
|
||||
file.reference.commons-codec-1.3.jar=C:\\home\\jboner\\src\\scala\\akka\\lib\\commons-codec-1.3.jar
|
||||
file.reference.commons-collections-3.1.jar=C:\\home\\jboner\\src\\scala\\akka\\lib\\commons-collections-3.1.jar
|
||||
file.reference.commons-dbcp-1.2.2.jar=C:\\home\\jboner\\src\\scala\\akka\\lib\\commons-dbcp-1.2.2.jar
|
||||
file.reference.commons-httpclient-3.1.jar=C:\\home\\jboner\\src\\scala\\akka\\lib\\commons-httpclient-3.1.jar
|
||||
file.reference.commons-io-1.3.2.jar=C:\\home\\jboner\\src\\scala\\akka\\lib\\commons-io-1.3.2.jar
|
||||
file.reference.commons-lang-2.1.jar=C:\\home\\jboner\\src\\scala\\akka\\lib\\commons-lang-2.1.jar
|
||||
file.reference.commons-logging.jar=C:\\home\\jboner\\src\\scala\\akka\\lib\\commons-logging.jar
|
||||
file.reference.commons-pool-1.4.jar=C:\\home\\jboner\\src\\scala\\akka\\lib\\commons-pool-1.4.jar
|
||||
file.reference.configgy-1.2.jar=C:\\home\\jboner\\src\\scala\\akka\\lib\\configgy-1.2.jar
|
||||
file.reference.google-collect-snapshot-20090211.jar=C:\\home\\jboner\\src\\scala\\akka\\lib\\google-collect-snapshot-20090211.jar
|
||||
file.reference.grizzly-framework-1.8.6.3.jar=C:\\home\\jboner\\src\\scala\\akka\\lib\\grizzly-framework-1.8.6.3.jar
|
||||
file.reference.grizzly-http-1.8.6.3.jar=C:\\home\\jboner\\src\\scala\\akka\\lib\\grizzly-http-1.8.6.3.jar
|
||||
file.reference.grizzly-http-servlet-1.8.6.3.jar=C:\\home\\jboner\\src\\scala\\akka\\lib\\grizzly-http-servlet-1.8.6.3.jar
|
||||
file.reference.grizzly-http-utils-1.8.6.3.jar=C:\\home\\jboner\\src\\scala\\akka\\lib\\grizzly-http-utils-1.8.6.3.jar
|
||||
file.reference.grizzly-portunif-1.8.6.3.jar=C:\\home\\jboner\\src\\scala\\akka\\lib\\grizzly-portunif-1.8.6.3.jar
|
||||
file.reference.grizzly-rcm-1.8.6.3.jar=C:\\home\\jboner\\src\\scala\\akka\\lib\\grizzly-rcm-1.8.6.3.jar
|
||||
file.reference.grizzly-servlet-webserver-1.8.6.3.jar=C:\\home\\jboner\\src\\scala\\akka\\lib\\grizzly-servlet-webserver-1.8.6.3.jar
|
||||
file.reference.guice-core-2.0-SNAPSHOT.jar=C:\\home\\jboner\\src\\scala\\akka\\lib\\guice-core-2.0-SNAPSHOT.jar
|
||||
file.reference.guice-jsr250-2.0-SNAPSHOT.jar=C:\\home\\jboner\\src\\scala\\akka\\lib\\guice-jsr250-2.0-SNAPSHOT.jar
|
||||
file.reference.jaxb-api-2.1.jar=C:\\home\\jboner\\src\\scala\\akka\\lib\\jaxb-api-2.1.jar
|
||||
file.reference.jaxb-impl-2.1.jar=C:\\home\\jboner\\src\\scala\\akka\\lib\\jaxb-impl-2.1.jar
|
||||
file.reference.jdom-1.0.jar=C:\\home\\jboner\\src\\scala\\akka\\lib\\jdom-1.0.jar
|
||||
file.reference.je-3.3.62.jar=C:\\home\\jboner\\src\\scala\\akka\\lib\\je-3.3.62.jar
|
||||
file.reference.jersey-atom-1.0.1.jar=C:\\home\\jboner\\src\\scala\\akka\\lib\\jersey-atom-1.0.1.jar
|
||||
file.reference.jersey-core-1.0.1.jar=C:\\home\\jboner\\src\\scala\\akka\\lib\\jersey-core-1.0.1.jar
|
||||
file.reference.jersey-json-1.0.1.jar=C:\\home\\jboner\\src\\scala\\akka\\lib\\jersey-json-1.0.1.jar
|
||||
file.reference.jersey-server-1.0.1.jar=C:\\home\\jboner\\src\\scala\\akka\\lib\\jersey-server-1.0.1.jar
|
||||
file.reference.jettison-1.0.1.jar=C:\\home\\jboner\\src\\scala\\akka\\lib\\jettison-1.0.1.jar
|
||||
file.reference.jetty-6.1.6rc0.jar=C:\\home\\jboner\\src\\scala\\akka\\lib\\jetty-6.1.6rc0.jar
|
||||
file.reference.jetty-util-6.1.6rc0.jar=C:\\home\\jboner\\src\\scala\\akka\\lib\\jetty-util-6.1.6rc0.jar
|
||||
file.reference.jsr250-api-1.0.jar=C:\\home\\jboner\\src\\scala\\akka\\lib\\jsr250-api-1.0.jar
|
||||
file.reference.jsr311-api-1.0.jar=C:\\home\\jboner\\src\\scala\\akka\\lib\\jsr311-api-1.0.jar
|
||||
file.reference.activation-1.1.jar=/home/jboner/src/scala/akka/lib/activation-1.1.jar
|
||||
file.reference.aopalliance-1.0.jar=/home/jboner/src/scala/akka/lib/aopalliance-1.0.jar
|
||||
file.reference.asm-3.1.jar=/home/jboner/src/scala/akka/lib/asm-3.1.jar
|
||||
file.reference.catalina-ant.jar=/home/jboner/src/scala/akka/lib/catalina-ant.jar
|
||||
file.reference.cglib-2.2.jar=/home/jboner/src/scala/akka/lib/cglib-2.2.jar
|
||||
file.reference.colt-1.2.0.jar=/home/jboner/src/scala/akka/lib/colt-1.2.0.jar
|
||||
file.reference.commons-codec-1.3.jar=/home/jboner/src/scala/akka/lib/commons-codec-1.3.jar
|
||||
file.reference.commons-collections-3.1.jar=/home/jboner/src/scala/akka/lib/commons-collections-3.1.jar
|
||||
file.reference.commons-dbcp-1.2.2.jar=/home/jboner/src/scala/akka/lib/commons-dbcp-1.2.2.jar
|
||||
file.reference.commons-httpclient-3.1.jar=/home/jboner/src/scala/akka/lib/commons-httpclient-3.1.jar
|
||||
file.reference.commons-io-1.3.2.jar=/home/jboner/src/scala/akka/lib/commons-io-1.3.2.jar
|
||||
file.reference.commons-lang-2.1.jar=/home/jboner/src/scala/akka/lib/commons-lang-2.1.jar
|
||||
file.reference.commons-logging.jar=/home/jboner/src/scala/akka/lib/commons-logging.jar
|
||||
file.reference.commons-pool-1.4.jar=/home/jboner/src/scala/akka/lib/commons-pool-1.4.jar
|
||||
file.reference.configgy-1.2.jar=/home/jboner/src/scala/akka/lib/configgy-1.2.jar
|
||||
file.reference.google-collect-snapshot-20090211.jar=/home/jboner/src/scala/akka/lib/google-collect-snapshot-20090211.jar
|
||||
file.reference.grizzly-framework-1.8.6.3.jar=/home/jboner/src/scala/akka/lib/grizzly-framework-1.8.6.3.jar
|
||||
file.reference.grizzly-http-1.8.6.3.jar=/home/jboner/src/scala/akka/lib/grizzly-http-1.8.6.3.jar
|
||||
file.reference.grizzly-http-servlet-1.8.6.3.jar=/home/jboner/src/scala/akka/lib/grizzly-http-servlet-1.8.6.3.jar
|
||||
file.reference.grizzly-http-utils-1.8.6.3.jar=/home/jboner/src/scala/akka/lib/grizzly-http-utils-1.8.6.3.jar
|
||||
file.reference.grizzly-portunif-1.8.6.3.jar=/home/jboner/src/scala/akka/lib/grizzly-portunif-1.8.6.3.jar
|
||||
file.reference.grizzly-rcm-1.8.6.3.jar=/home/jboner/src/scala/akka/lib/grizzly-rcm-1.8.6.3.jar
|
||||
file.reference.grizzly-servlet-webserver-1.8.6.3.jar=/home/jboner/src/scala/akka/lib/grizzly-servlet-webserver-1.8.6.3.jar
|
||||
file.reference.guice-core-2.0-SNAPSHOT.jar=/home/jboner/src/scala/akka/lib/guice-core-2.0-SNAPSHOT.jar
|
||||
file.reference.guice-jsr250-2.0-SNAPSHOT.jar=/home/jboner/src/scala/akka/lib/guice-jsr250-2.0-SNAPSHOT.jar
|
||||
file.reference.jaxb-api-2.1.jar=/home/jboner/src/scala/akka/lib/jaxb-api-2.1.jar
|
||||
file.reference.jaxb-impl-2.1.jar=/home/jboner/src/scala/akka/lib/jaxb-impl-2.1.jar
|
||||
file.reference.jdom-1.0.jar=/home/jboner/src/scala/akka/lib/jdom-1.0.jar
|
||||
file.reference.je-3.3.62.jar=/home/jboner/src/scala/akka/lib/je-3.3.62.jar
|
||||
file.reference.jersey-atom-1.0.1.jar=/home/jboner/src/scala/akka/lib/jersey-atom-1.0.1.jar
|
||||
file.reference.jersey-core-1.0.1.jar=/home/jboner/src/scala/akka/lib/jersey-core-1.0.1.jar
|
||||
file.reference.jersey-json-1.0.1.jar=/home/jboner/src/scala/akka/lib/jersey-json-1.0.1.jar
|
||||
file.reference.jersey-server-1.0.1.jar=/home/jboner/src/scala/akka/lib/jersey-server-1.0.1.jar
|
||||
file.reference.jettison-1.0.1.jar=/home/jboner/src/scala/akka/lib/jettison-1.0.1.jar
|
||||
file.reference.jetty-6.1.6rc0.jar=/home/jboner/src/scala/akka/lib/jetty-6.1.6rc0.jar
|
||||
file.reference.jetty-util-6.1.6rc0.jar=/home/jboner/src/scala/akka/lib/jetty-util-6.1.6rc0.jar
|
||||
file.reference.jsr250-api-1.0.jar=/home/jboner/src/scala/akka/lib/jsr250-api-1.0.jar
|
||||
file.reference.jsr311-api-1.0.jar=/home/jboner/src/scala/akka/lib/jsr311-api-1.0.jar
|
||||
file.reference.junit-3.8.2.jar=C:\\home\\jboner\\src\\scala\\akka\\lib\\junit-3.8.2.jar
|
||||
file.reference.libthrift-20080411p1.jar=C:\\home\\jboner\\src\\scala\\akka\\lib\\libthrift-20080411p1.jar
|
||||
file.reference.log4j-1.2.13.jar=C:\\home\\jboner\\src\\scala\\akka\\lib\\log4j-1.2.13.jar
|
||||
file.reference.junit-3.8.2.jar-1=/home/jboner/src/scala/akka/lib/junit-3.8.2.jar
|
||||
file.reference.libthrift-20080411p1.jar=/home/jboner/src/scala/akka/lib/libthrift-20080411p1.jar
|
||||
file.reference.log4j-1.2.13.jar=/home/jboner/src/scala/akka/lib/log4j-1.2.13.jar
|
||||
file.reference.main-scala=src/main/scala
|
||||
file.reference.mina-core-2.0.0-M2-SNAPSHOT.jar=C:\\home\\jboner\\src\\scala\\akka\\lib\\mina-core-2.0.0-M2-SNAPSHOT.jar
|
||||
file.reference.mina-integration-scala-2.0.0-M2-SNAPSHOT.jar=C:\\home\\jboner\\src\\scala\\akka\\lib\\mina-integration-scala-2.0.0-M2-SNAPSHOT.jar
|
||||
file.reference.protobuf-java-2.0.3.jar=C:\\home\\jboner\\src\\scala\\akka\\lib\\protobuf-java-2.0.3.jar
|
||||
file.reference.rome-0.9.jar=C:\\home\\jboner\\src\\scala\\akka\\lib\\rome-0.9.jar
|
||||
file.reference.scala-library-2.7.3.jar=C:\\home\\jboner\\src\\scala\\akka\\lib\\scala-library-2.7.3.jar
|
||||
file.reference.mina-core-2.0.0-M2-SNAPSHOT.jar=/home/jboner/src/scala/akka/lib/mina-core-2.0.0-M2-SNAPSHOT.jar
|
||||
file.reference.mina-integration-scala-2.0.0-M2-SNAPSHOT.jar=/home/jboner/src/scala/akka/lib/mina-integration-scala-2.0.0-M2-SNAPSHOT.jar
|
||||
file.reference.protobuf-java-2.0.3.jar=/home/jboner/src/scala/akka/lib/protobuf-java-2.0.3.jar
|
||||
file.reference.rome-0.9.jar=/home/jboner/src/scala/akka/lib/rome-0.9.jar
|
||||
file.reference.scala-library-2.7.3.jar=/home/jboner/src/scala/akka/lib/scala-library-2.7.3.jar
|
||||
file.reference.scalatest-0.9.5.jar=C:\\home\\jboner\\src\\scala\\akka\\lib\\scalatest-0.9.5.jar
|
||||
file.reference.servlet-api-2.5.jar=C:\\home\\jboner\\src\\scala\\akka\\lib\\servlet-api-2.5.jar
|
||||
file.reference.slf4j-api-1.4.3.jar=C:\\home\\jboner\\src\\scala\\akka\\lib\\slf4j-api-1.4.3.jar
|
||||
file.reference.slf4j-log4j12-1.4.3.jar=C:\\home\\jboner\\src\\scala\\akka\\lib\\slf4j-log4j12-1.4.3.jar
|
||||
file.reference.stax-api-1.0-2.jar=C:\\home\\jboner\\src\\scala\\akka\\lib\\stax-api-1.0-2.jar
|
||||
file.reference.scalatest-0.9.5.jar-1=/home/jboner/src/scala/akka/lib/scalatest-0.9.5.jar
|
||||
file.reference.scalatest-0.9.5.zip=/home/jboner/src/scala/akka/lib/scalatest-0.9.5.zip
|
||||
file.reference.servlet-api-2.5.jar=/home/jboner/src/scala/akka/lib/servlet-api-2.5.jar
|
||||
file.reference.slf4j-api-1.4.3.jar=/home/jboner/src/scala/akka/lib/slf4j-api-1.4.3.jar
|
||||
file.reference.slf4j-log4j12-1.4.3.jar=/home/jboner/src/scala/akka/lib/slf4j-log4j12-1.4.3.jar
|
||||
file.reference.stax-api-1.0-2.jar=/home/jboner/src/scala/akka/lib/stax-api-1.0-2.jar
|
||||
file.reference.test-scala=src/test/scala
|
||||
file.reference.velocity-1.5.jar=C:\\home\\jboner\\src\\scala\\akka\\lib\\velocity-1.5.jar
|
||||
file.reference.voldemort-0.4a.jar=C:\\home\\jboner\\src\\scala\\akka\\lib\\voldemort-0.4a.jar
|
||||
file.reference.voldemort-contrib-0.4a.jar=C:\\home\\jboner\\src\\scala\\akka\\lib\\voldemort-contrib-0.4a.jar
|
||||
file.reference.xerces.jar=C:\\home\\jboner\\src\\scala\\akka\\lib\\xerces.jar
|
||||
file.reference.zookeeper-3.1.0.jar=C:\\home\\jboner\\src\\scala\\akka\\lib\\zookeeper-3.1.0.jar
|
||||
file.reference.velocity-1.5.jar=/home/jboner/src/scala/akka/lib/velocity-1.5.jar
|
||||
file.reference.voldemort-0.4a.jar=/home/jboner/src/scala/akka/lib/voldemort-0.4a.jar
|
||||
file.reference.voldemort-contrib-0.4a.jar=/home/jboner/src/scala/akka/lib/voldemort-contrib-0.4a.jar
|
||||
file.reference.xerces.jar=/home/jboner/src/scala/akka/lib/xerces.jar
|
||||
file.reference.zookeeper-3.1.0.jar=/home/jboner/src/scala/akka/lib/zookeeper-3.1.0.jar
|
||||
includes=**
|
||||
jar.compress=false
|
||||
java.platform.active=java_default_platform
|
||||
|
|
@ -119,7 +122,7 @@ javac.classpath=\
|
|||
${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.junit-3.8.2.jar-1}:\
|
||||
${file.reference.libthrift-20080411p1.jar}:\
|
||||
${file.reference.log4j-1.2.13.jar}:\
|
||||
${file.reference.mina-core-2.0.0-M2-SNAPSHOT.jar}:\
|
||||
|
|
@ -127,7 +130,8 @@ javac.classpath=\
|
|||
${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.jar-1}:\
|
||||
${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}:\
|
||||
|
|
|
|||
|
|
@ -73,14 +73,17 @@ class ActiveObjectProxy(val intf: Class[_], val target: Class[_], val timeout: I
|
|||
val transactional = classOf[se.scalablesolutions.akka.annotation.transactional]
|
||||
val oneway = classOf[se.scalablesolutions.akka.annotation.oneway]
|
||||
val immutable = classOf[se.scalablesolutions.akka.annotation.immutable]
|
||||
val stateful= classOf[se.scalablesolutions.akka.annotation.stateful]
|
||||
val state= classOf[se.scalablesolutions.akka.annotation.state]
|
||||
|
||||
private[this] var activeTx: Option[Transaction] = None
|
||||
|
||||
private var targetInstance: AnyRef = _
|
||||
private[kernel] def setTargetInstance(instance: AnyRef) = {
|
||||
targetInstance = instance
|
||||
if (server.state.isDefined) injectState(server.state.get, targetInstance)
|
||||
getStateList(targetInstance) match {
|
||||
case Nil => {}
|
||||
case states => server.states = states
|
||||
}
|
||||
}
|
||||
|
||||
private[this] val dispatcher = new GenericServer {
|
||||
|
|
@ -104,9 +107,7 @@ class ActiveObjectProxy(val intf: Class[_], val target: Class[_], val timeout: I
|
|||
}
|
||||
}
|
||||
|
||||
private[kernel] val server =
|
||||
if (target.isAnnotationPresent(stateful)) new GenericServerContainer(target.getName, () => dispatcher, Some(new TransientObjectState))
|
||||
else new GenericServerContainer(target.getName, () => dispatcher, None)
|
||||
private[kernel] val server = new GenericServerContainer(target.getName, () => dispatcher)
|
||||
server.setTimeout(timeout)
|
||||
|
||||
def invoke(proxy: AnyRef, m: Method, args: Array[AnyRef]): AnyRef = {
|
||||
|
|
@ -164,19 +165,20 @@ class ActiveObjectProxy(val intf: Class[_], val target: Class[_], val timeout: I
|
|||
ActiveObject.threadBoundTx.set(Some(tx))
|
||||
}
|
||||
|
||||
private def injectState(state: TransientObjectState, targetInstance: AnyRef) = {
|
||||
require(state != null)
|
||||
private def getStateList(targetInstance: AnyRef): List[State[_,_]] = {
|
||||
require(targetInstance != null)
|
||||
import se.scalablesolutions.akka.kernel.configuration.ConfigurationException
|
||||
val fields = for {
|
||||
val states = for {
|
||||
field <- target.getDeclaredFields
|
||||
if field.getType == classOf[TransientObjectState]
|
||||
} yield field
|
||||
if (fields.size == 0) throw new ConfigurationException("Stateful active object needs to have a field '@Inject TransientObjectState state' defined")
|
||||
if (fields.size > 1) throw new ConfigurationException("Stateful active object can only have one single field '@Inject TransientObjectState state' defined")
|
||||
val field = fields(0)
|
||||
field.setAccessible(true)
|
||||
field.set(targetInstance, state)
|
||||
if field.isAnnotationPresent(state)
|
||||
state = field.get(targetInstance)
|
||||
if state != null
|
||||
} yield {
|
||||
if (!state.isInstanceOf[State[_, _]]) throw new ConfigurationException("Fields annotated with [@state] needs to to be a subtype of [se.scalablesolutions.akka.kernel.State[K, V]]")
|
||||
state
|
||||
}
|
||||
states
|
||||
// if (fields.size > 1) throw new ConfigurationException("Stateful active object can only have one single field '@Inject TransientObjectState state' defined")
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -83,16 +83,16 @@ trait GenericServer extends Actor {
|
|||
*/
|
||||
class GenericServerContainer(
|
||||
val id: String,
|
||||
var serverFactory: () => GenericServer,
|
||||
private[kernel] var state: Option[TransientObjectState]) extends Logging {
|
||||
private[kernel] var serverFactory: () => GenericServer) extends Logging {
|
||||
require(id != null && id != "")
|
||||
|
||||
// TODO: see if we can parameterize class and add type safe getActor method
|
||||
//class GenericServerContainer[T <: GenericServer](var factory: () => T) {
|
||||
//def getActor: T = server
|
||||
|
||||
var lifeCycle: Option[LifeCycle] = None
|
||||
val lock = new ReadWriteLock
|
||||
private[kernel] var lifeCycle: Option[LifeCycle] = None
|
||||
private[kernel] var states: List[State[_,_]] = Nil
|
||||
private[kernel] val lock = new ReadWriteLock
|
||||
|
||||
private var server: GenericServer = _
|
||||
private var currentConfig: Option[AnyRef] = None
|
||||
|
|
|
|||
|
|
@ -150,9 +150,15 @@ is divided into following sections:
|
|||
<attribute default="${excludes}" name="excludes"/>
|
||||
<attribute default="${javac.debug}" name="debug"/>
|
||||
<attribute default="/does/not/exist" name="sourcepath"/>
|
||||
<attribute default="/does/not/exist" name="gensrcdir"/>
|
||||
<element name="customize" optional="true"/>
|
||||
<sequential>
|
||||
<javac debug="@{debug}" deprecation="${javac.deprecation}" destdir="@{destdir}" encoding="${source.encoding}" excludes="@{excludes}" includeantruntime="false" includes="@{includes}" source="${javac.source}" sourcepath="@{sourcepath}" srcdir="@{srcdir}" target="${javac.target}">
|
||||
<src>
|
||||
<dirset dir="@{gensrcdir}" erroronmissingdir="false">
|
||||
<include name="*"/>
|
||||
</dirset>
|
||||
</src>
|
||||
<classpath>
|
||||
<path path="@{classpath}"/>
|
||||
</classpath>
|
||||
|
|
@ -280,12 +286,13 @@ is divided into following sections:
|
|||
<target name="-init-macrodef-java">
|
||||
<macrodef name="java" uri="http://www.netbeans.org/ns/j2se-project/1">
|
||||
<attribute default="${main.class}" name="classname"/>
|
||||
<attribute default="${run.classpath}" name="classpath"/>
|
||||
<element name="customize" optional="true"/>
|
||||
<sequential>
|
||||
<java classname="@{classname}" dir="${work.dir}" fork="true">
|
||||
<jvmarg line="${run.jvmargs}"/>
|
||||
<classpath>
|
||||
<path path="${run.classpath}"/>
|
||||
<path path="@{classpath}"/>
|
||||
</classpath>
|
||||
<syspropertyset>
|
||||
<propertyref prefix="run-sys-prop."/>
|
||||
|
|
@ -325,10 +332,15 @@ is divided into following sections:
|
|||
<!-- You can override this target in the ../build.xml file. -->
|
||||
</target>
|
||||
<target if="do.depend.true" name="-compile-depend">
|
||||
<j2seproject3:depend/>
|
||||
<pathconvert property="build.generated.subdirs">
|
||||
<dirset dir="${build.generated.sources.dir}" erroronmissingdir="false">
|
||||
<include name="*"/>
|
||||
</dirset>
|
||||
</pathconvert>
|
||||
<j2seproject3:depend srcdir="${src.dir}:${build.generated.subdirs}"/>
|
||||
</target>
|
||||
<target depends="init,deps-jar,-pre-pre-compile,-pre-compile,-compile-depend" if="have.sources" name="-do-compile">
|
||||
<j2seproject3:javac/>
|
||||
<j2seproject3:javac gensrcdir="${build.generated.sources.dir}"/>
|
||||
<copy todir="${build.classes.dir}">
|
||||
<fileset dir="${src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
|
||||
</copy>
|
||||
|
|
@ -345,7 +357,7 @@ is divided into following sections:
|
|||
<target depends="init,deps-jar,-pre-pre-compile" name="-do-compile-single">
|
||||
<fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail>
|
||||
<j2seproject3:force-recompile/>
|
||||
<j2seproject3:javac excludes="" includes="${javac.includes}" sourcepath="${src.dir}"/>
|
||||
<j2seproject3:javac excludes="" gensrcdir="${build.generated.sources.dir}" includes="${javac.includes}" sourcepath="${src.dir}"/>
|
||||
</target>
|
||||
<target name="-post-compile-single">
|
||||
<!-- Empty placeholder for easier customization. -->
|
||||
|
|
@ -435,6 +447,10 @@ is divided into following sections:
|
|||
<fail unless="run.class">Must select one file in the IDE or set run.class</fail>
|
||||
<j2seproject1:java classname="${run.class}"/>
|
||||
</target>
|
||||
<target depends="init,-do-not-recompile,compile-test-single" name="run-test-with-main">
|
||||
<fail unless="run.class">Must select one file in the IDE or set run.class</fail>
|
||||
<j2seproject1:java classname="${run.class}" classpath="${run.test.classpath}"/>
|
||||
</target>
|
||||
<!--
|
||||
=================
|
||||
DEBUGGING SECTION
|
||||
|
|
@ -443,6 +459,9 @@ is divided into following sections:
|
|||
<target depends="init" if="netbeans.home" name="-debug-start-debugger">
|
||||
<j2seproject1:nbjpdastart name="${debug.class}"/>
|
||||
</target>
|
||||
<target depends="init" if="netbeans.home" name="-debug-start-debugger-main-test">
|
||||
<j2seproject1:nbjpdastart classpath="${debug.test.classpath}" name="${debug.class}"/>
|
||||
</target>
|
||||
<target depends="init,compile" name="-debug-start-debuggee">
|
||||
<j2seproject3:debug>
|
||||
<customize>
|
||||
|
|
@ -460,6 +479,11 @@ is divided into following sections:
|
|||
<j2seproject3:debug classname="${debug.class}"/>
|
||||
</target>
|
||||
<target depends="init,-do-not-recompile,compile-single,-debug-start-debugger,-debug-start-debuggee-single" if="netbeans.home" name="debug-single"/>
|
||||
<target depends="init,compile-test-single" if="netbeans.home" name="-debug-start-debuggee-main-test">
|
||||
<fail unless="debug.class">Must select one file in the IDE or set debug.class</fail>
|
||||
<j2seproject3:debug classname="${debug.class}" classpath="${debug.test.classpath}"/>
|
||||
</target>
|
||||
<target depends="init,-do-not-recompile,compile-test-single,-debug-start-debugger-main-test,-debug-start-debuggee-main-test" if="netbeans.home" name="debug-test-with-main"/>
|
||||
<target depends="init" name="-pre-debug-fix">
|
||||
<fail unless="fix.includes">Must set fix.includes</fail>
|
||||
<property name="javac.includes" value="${fix.includes}.java"/>
|
||||
|
|
@ -482,6 +506,9 @@ is divided into following sections:
|
|||
<fileset dir="${src.dir}" excludes="${excludes}" includes="${includes}">
|
||||
<filename name="**/*.java"/>
|
||||
</fileset>
|
||||
<fileset dir="${build.generated.sources.dir}" erroronmissingdir="false">
|
||||
<include name="**/*.java"/>
|
||||
</fileset>
|
||||
</javadoc>
|
||||
</target>
|
||||
<target depends="init,-javadoc-build" if="netbeans.home" name="-javadoc-browse" unless="no.javadoc.preview">
|
||||
|
|
@ -539,7 +566,7 @@ is divided into following sections:
|
|||
<j2seproject3:junit testincludes="**/*Test.java"/>
|
||||
</target>
|
||||
<target depends="init,compile-test,-pre-test-run,-do-test-run" if="have.tests" name="-post-test-run">
|
||||
<fail if="tests.failed">Some tests failed; see details above.</fail>
|
||||
<fail if="tests.failed" unless="ignore.failing.tests">Some tests failed; see details above.</fail>
|
||||
</target>
|
||||
<target depends="init" if="have.tests" name="test-report"/>
|
||||
<target depends="init" if="netbeans.home+have.tests" name="-test-browse"/>
|
||||
|
|
@ -552,7 +579,7 @@ is divided into following sections:
|
|||
<j2seproject3:junit excludes="" includes="${test.includes}"/>
|
||||
</target>
|
||||
<target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single" if="have.tests" name="-post-test-run-single">
|
||||
<fail if="tests.failed">Some tests failed; see details above.</fail>
|
||||
<fail if="tests.failed" unless="ignore.failing.tests">Some tests failed; see details above.</fail>
|
||||
</target>
|
||||
<target depends="init,-do-not-recompile,compile-test-single,-pre-test-run-single,-do-test-run-single,-post-test-run-single" description="Run single unit test." name="test-single"/>
|
||||
<!--
|
||||
|
|
|
|||
|
|
@ -4,5 +4,5 @@ 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=30ca9bc2
|
||||
nbproject/build-impl.xml.script.CRC32=595e16a7
|
||||
nbproject/build-impl.xml.stylesheet.CRC32=65b8de21
|
||||
nbproject/build-impl.xml.script.CRC32=7c31e977
|
||||
nbproject/build-impl.xml.stylesheet.CRC32=d5ddc080@1.24.0.45
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
compile.on.save=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
|
||||
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
|
||||
|
|
|
|||
|
|
@ -7,5 +7,5 @@ package se.scalablesolutions.akka.annotation;
|
|||
import java.lang.annotation.*;
|
||||
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@Target(ElementType.TYPE)
|
||||
public @interface stateful {}
|
||||
@Target(ElementType.FIELD)
|
||||
public @interface state {}
|
||||
Loading…
Add table
Add a link
Reference in a new issue