diff --git a/akka-core/src/main/scala/actor/ActiveObject.scala b/akka-core/src/main/scala/actor/ActiveObject.scala
index 8933c8c91e..ae36bc4df2 100644
--- a/akka-core/src/main/scala/actor/ActiveObject.scala
+++ b/akka-core/src/main/scala/actor/ActiveObject.scala
@@ -353,15 +353,19 @@ private[akka] sealed class ActiveObjectAspect {
}
}
+object Dispatcher {
+ val ZERO_ITEM_CLASS_ARRAY = Array[Class[_]]()
+ val ZERO_ITEM_OBJECT_ARRAY = Array[Object[_]]()
+}
+
/**
* Generic Actor managing Invocation dispatch, transaction and error management.
*
* @author Jonas Bonér
*/
private[akka] class Dispatcher(transactionalRequired: Boolean, val callbacks: Option[RestartCallbacks]) extends Actor {
- private val ZERO_ITEM_CLASS_ARRAY = Array[Class[_]]()
- private val ZERO_ITEM_OBJECT_ARRAY = Array[Object[_]]()
-
+ import Dispatcher._
+
private[actor] var target: Option[AnyRef] = None
private var preRestart: Option[Method] = None
private var postRestart: Option[Method] = None
diff --git a/akka-spring/src/main/java/AkkaAppConfig.xml b/akka-spring/src/main/java/AkkaAppConfig.xml
deleted file mode 100644
index 2f298ea172..0000000000
--- a/akka-spring/src/main/java/AkkaAppConfig.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- interceptor
-
-
-
-
-
\ No newline at end of file
diff --git a/akka-spring/src/main/java/se/scalablesolutions/akka/interceptor/AkkaSpringInterceptor.java b/akka-spring/src/main/java/se/scalablesolutions/akka/interceptor/AkkaSpringInterceptor.java
deleted file mode 100644
index 8da81a2df8..0000000000
--- a/akka-spring/src/main/java/se/scalablesolutions/akka/interceptor/AkkaSpringInterceptor.java
+++ /dev/null
@@ -1,84 +0,0 @@
-package se.scalablesolutions.akka.interceptor;
-
-
-import org.aopalliance.intercept.MethodInterceptor;
-import org.aopalliance.intercept.MethodInvocation;
-import org.springframework.beans.BeansException;
-import org.springframework.beans.factory.config.BeanPostProcessor;
-import se.scalablesolutions.akka.actor.ActiveObjectAspect;
-import se.scalablesolutions.akka.actor.AspectInit;
-import se.scalablesolutions.akka.actor.AspectInitRegistry;
-import se.scalablesolutions.akka.actor.Dispatcher;
-import se.scalablesolutions.akka.util.AkkaSpringJoinPointWrapper;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.transaction.PlatformTransactionManager;
-
-
-public class AkkaSpringInterceptor extends ActiveObjectAspect implements MethodInterceptor,BeanPostProcessor{
-
- private final static String CLASSNAME = "org.springframework.transaction.support.TransactionSynchronizationManager";
-
-
- @Override
- public Object invoke(MethodInvocation methodInvocation) throws Throwable {
-
- //Determine transactional status
- boolean transactional = getTransactionStatus();
-
-
- Dispatcher dispatcher = new Dispatcher(transactional);
- dispatcher.start();
- AspectInitRegistry.register(methodInvocation.getThis(), new AspectInit(
- methodInvocation.getThis().getClass(),
- dispatcher,
- 1000));
-
- AkkaSpringJoinPointWrapper asjp = AkkaSpringJoinPointWrapper.createSpringAkkaAspectWerkzWrapper(methodInvocation);
- System.out.println("AkkaSpringInterceptor = " + Thread.currentThread());
-
- Object obj = this.invoke(asjp);
-
- dispatcher.stop();
-
- return obj;
-
-
-
- }
-
- @Override
- public Object postProcessAfterInitialization(Object bean, String arg1)
- throws BeansException {
-
- return bean;
- }
-
- @Override
- public Object postProcessBeforeInitialization(Object bean, String arg1)
- throws BeansException {
-
- return bean;
- }
-
- /*
- * Checks if intercepted Spring bean is in a transaction
- *
- */
-
- private boolean getTransactionStatus() {
- String status = null;
- Boolean hasTransaction = null;
- try {
- ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();
- if (contextClassLoader != null) {
- Class tsmClass = contextClassLoader.loadClass(CLASSNAME);
- hasTransaction = (Boolean) tsmClass.getMethod("isActualTransactionActive", null).invoke(null, null);
- } else {
- return false;
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- return hasTransaction;
- }
-}
diff --git a/akka-spring/src/main/java/se/scalablesolutions/akka/main/Main.java b/akka-spring/src/main/java/se/scalablesolutions/akka/main/Main.java
deleted file mode 100644
index 36533d6ff7..0000000000
--- a/akka-spring/src/main/java/se/scalablesolutions/akka/main/Main.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package se.scalablesolutions.akka.main;
-
-import org.springframework.context.ApplicationContext;
-import org.springframework.context.support.ClassPathXmlApplicationContext;
-import se.scalablesolutions.akka.service.MyService;
-
-public class Main {
- public static void main(String[] args) {
-
- ApplicationContext context = new ClassPathXmlApplicationContext("AkkaAppConfig.xml");
-
- MyService myService = (MyService)context.getBean("interceptedService");
-
- System.out.println(Thread.currentThread());
-
- myService.getNumbers(777,"vfsh");
-
- }
-}
diff --git a/akka-spring/src/main/java/se/scalablesolutions/akka/service/MyService.java b/akka-spring/src/main/java/se/scalablesolutions/akka/service/MyService.java
deleted file mode 100644
index 5834ec4de3..0000000000
--- a/akka-spring/src/main/java/se/scalablesolutions/akka/service/MyService.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package se.scalablesolutions.akka.service;
-
-import org.springframework.transaction.annotation.Transactional;
-
-
-//import se.scalablesolutions.akka.annotation.oneway;
-
-public class MyService {
-
- public Integer getNumbers(int aTestNumber, String aText) {
- System.out.println("MyService : " + Thread.currentThread());
- return new Integer(aTestNumber);
- }
-
- //@oneway
- public void calculate() {
- for (int i = 1; i < 10000; i++) {
- System.out.println("i=" + i);
- }
- }
-
-}
-
diff --git a/akka-spring/src/main/java/se/scalablesolutions/akka/spring/AkkaSpringInterceptor.java b/akka-spring/src/main/java/se/scalablesolutions/akka/spring/AkkaSpringInterceptor.java
new file mode 100644
index 0000000000..1d4bc1245d
--- /dev/null
+++ b/akka-spring/src/main/java/se/scalablesolutions/akka/spring/AkkaSpringInterceptor.java
@@ -0,0 +1,79 @@
+/**
+ * Copyright (C) 2009-2010 Scalable Solutions AB
+ */
+
+package se.scalablesolutions.akka.spring;
+
+import se.scalablesolutions.akka.actor.ActiveObjectAspect;
+import se.scalablesolutions.akka.actor.AspectInit;
+import se.scalablesolutions.akka.actor.AspectInitRegistry;
+import se.scalablesolutions.akka.actor.Dispatcher;
+
+import org.springframework.beans.factory.config.BeanPostProcessor;
+
+import org.aopalliance.intercept.MethodInterceptor;
+import org.aopalliance.intercept.MethodInvocation;
+import org.springframework.beans.BeansException;
+import org.springframework.beans.factory.config.BeanPostProcessor;
+
+import java.lang.reflect.Method;
+
+public class AkkaSpringInterceptor extends ActiveObjectAspect implements MethodInterceptor, BeanPostProcessor {
+
+ static final String TRANSACTION_MANAGER_CLASS_NAME = "org.springframework.transaction.support.TransactionSynchronizationManager";
+ static final String IS_TRANSACTION_ALIVE_METHOD_NAME = "isActualTransactionActive";
+
+ static private Method IS_TRANSACTION_ALIVE_METHOD = null;
+
+ static {
+ try {
+ ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();
+ Class clazz = null;
+ if (contextClassLoader != null) {
+ clazz = contextClassLoader.loadClass(TRANSACTION_MANAGER_CLASS_NAME);
+ } else {
+ ClassLoader springClassLoader = AkkaSpringInterceptor.class.getClassLoader();
+ clazz = springClassLoader.loadClass(TRANSACTION_MANAGER_CLASS_NAME);
+ }
+ if (clazz != null) IS_TRANSACTION_ALIVE_METHOD = clazz.getDeclaredMethod(IS_TRANSACTION_ALIVE_METHOD_NAME, null);
+ } catch (Exception e) {
+ }
+ }
+
+ // FIXME make configurable
+ static final int TIME_OUT = 1000;
+
+ @Override
+ public Object invoke(MethodInvocation methodInvocation) throws Throwable {
+ Dispatcher dispatcher = new Dispatcher(isTransactional());
+ dispatcher.start();
+ AspectInitRegistry.register(methodInvocation.getThis(), new AspectInit(
+ methodInvocation.getThis().getClass(),
+ dispatcher,
+ TIME_OUT));
+ Object result = this.invoke(AkkaSpringJoinPointWrapper.createSpringAkkaAspectWerkzWrapper(methodInvocation));
+ dispatcher.stop();
+ return result;
+ }
+
+ @Override
+ public Object postProcessAfterInitialization(Object bean, String arg) throws BeansException {
+ return bean;
+ }
+
+ @Override
+ public Object postProcessBeforeInitialization(Object bean, String arg) throws BeansException {
+ return bean;
+ }
+
+ /**
+ * Checks if intercepted Spring bean is in a transaction.
+ */
+ private boolean isTransactional() {
+ try {
+ return (Boolean) IS_TRANSACTION_ALIVE_METHOD.invoke(null, null);
+ } catch (Exception e) {
+ throw new RuntimeException("Could not check if the Spring bean is executing within a transaction", e);
+ }
+ }
+}
\ No newline at end of file
diff --git a/akka-spring/src/main/java/se/scalablesolutions/akka/spring/AkkaSpringJoinPointWrapper.java b/akka-spring/src/main/java/se/scalablesolutions/akka/spring/AkkaSpringJoinPointWrapper.java
new file mode 100644
index 0000000000..569bb4511d
--- /dev/null
+++ b/akka-spring/src/main/java/se/scalablesolutions/akka/spring/AkkaSpringJoinPointWrapper.java
@@ -0,0 +1,89 @@
+/**
+ * Copyright (C) 2009-2010 Scalable Solutions AB
+ */
+
+package se.scalablesolutions.akka.spring;
+
+import org.aopalliance.intercept.MethodInvocation;
+
+import org.codehaus.aspectwerkz.joinpoint.*;
+import org.codehaus.aspectwerkz.joinpoint.management.JoinPointType;
+
+public class AkkaSpringJoinPointWrapper implements JoinPoint {
+
+ private MethodInvocation methodInvocation = null;
+
+ public static AkkaSpringJoinPointWrapper createSpringAkkaAspectWerkzWrapper(MethodInvocation methodInvocation) {
+ AkkaSpringJoinPointWrapper joinPointWrapper = new AkkaSpringJoinPointWrapper();
+ joinPointWrapper.setMethodInvocation(methodInvocation);
+ return joinPointWrapper;
+ }
+
+ public MethodInvocation getMethodInvocation() {
+ return methodInvocation;
+ }
+
+ public void setMethodInvocation(MethodInvocation methodInvocation) {
+ this.methodInvocation = methodInvocation;
+ }
+
+ public Object proceed() throws Throwable {
+ return methodInvocation.proceed();
+ }
+
+ public Rtti getRtti() {
+ return new AkkaSpringRttiWrapper(methodInvocation);
+ }
+
+ public Object getTarget() {
+ return methodInvocation.getThis();
+ }
+
+ public Object getThis() {
+ return methodInvocation.getThis();
+ }
+
+ public Object getCallee() {
+ throw new UnsupportedOperationException();
+ }
+
+ public Object getCaller() {
+ throw new UnsupportedOperationException();
+ }
+
+ public void addMetaData(Object arg0, Object arg1) {
+ throw new UnsupportedOperationException();
+ }
+
+ public Class getCalleeClass() {
+ throw new UnsupportedOperationException();
+ }
+
+ public Class getCallerClass() {
+ throw new UnsupportedOperationException();
+ }
+
+ public EnclosingStaticJoinPoint getEnclosingStaticJoinPoint() {
+ throw new UnsupportedOperationException();
+ }
+
+ public Object getMetaData(Object arg0) {
+ throw new UnsupportedOperationException();
+ }
+
+ public Signature getSignature() {
+ throw new UnsupportedOperationException();
+ }
+
+ public Class getTargetClass() {
+ throw new UnsupportedOperationException();
+ }
+
+ public JoinPointType getType() {
+ throw new UnsupportedOperationException();
+ }
+
+ public StaticJoinPoint copy() {
+ throw new UnsupportedOperationException();
+ }
+}
diff --git a/akka-spring/src/main/java/se/scalablesolutions/akka/spring/AkkaSpringRttiWrapper.java b/akka-spring/src/main/java/se/scalablesolutions/akka/spring/AkkaSpringRttiWrapper.java
new file mode 100644
index 0000000000..35f07065b6
--- /dev/null
+++ b/akka-spring/src/main/java/se/scalablesolutions/akka/spring/AkkaSpringRttiWrapper.java
@@ -0,0 +1,73 @@
+/**
+ * Copyright (C) 2009-2010 Scalable Solutions AB
+ */
+
+package se.scalablesolutions.akka.spring;
+
+import org.aopalliance.intercept.MethodInvocation;
+
+import org.codehaus.aspectwerkz.joinpoint.MethodRtti;
+import org.codehaus.aspectwerkz.joinpoint.Rtti;
+
+import java.lang.reflect.Method;
+
+public class AkkaSpringRttiWrapper implements MethodRtti {
+
+ private MethodInvocation methodInvocation = null;
+
+ public AkkaSpringRttiWrapper(MethodInvocation methodInvocation) {
+ this.methodInvocation = methodInvocation;
+ }
+
+ public Method getMethod() {
+ return methodInvocation.getMethod();
+ }
+
+ public Class getReturnType() {
+ throw new UnsupportedOperationException();
+ }
+
+ public Object getReturnValue() {
+ throw new UnsupportedOperationException();
+ }
+
+ public Class[] getExceptionTypes() {
+ throw new UnsupportedOperationException();
+ }
+
+ public Class[] getParameterTypes() {
+ throw new UnsupportedOperationException();
+ }
+
+ public Object[] getParameterValues() {
+ throw new UnsupportedOperationException();
+ }
+
+ public void setParameterValues(Object[] arg0) {
+ throw new UnsupportedOperationException();
+ }
+
+ public Rtti cloneFor(Object arg0, Object arg1) {
+ throw new UnsupportedOperationException();
+ }
+
+ public Class getDeclaringType() {
+ throw new UnsupportedOperationException();
+ }
+
+ public int getModifiers() {
+ throw new UnsupportedOperationException();
+ }
+
+ public String getName() {
+ throw new UnsupportedOperationException();
+ }
+
+ public Object getTarget() {
+ throw new UnsupportedOperationException();
+ }
+
+ public Object getThis() {
+ throw new UnsupportedOperationException();
+ }
+}
diff --git a/akka-spring/src/main/java/se/scalablesolutions/akka/util/AkkaSpringJoinPointWrapper.java b/akka-spring/src/main/java/se/scalablesolutions/akka/util/AkkaSpringJoinPointWrapper.java
deleted file mode 100644
index d80126a76b..0000000000
--- a/akka-spring/src/main/java/se/scalablesolutions/akka/util/AkkaSpringJoinPointWrapper.java
+++ /dev/null
@@ -1,130 +0,0 @@
-package se.scalablesolutions.akka.util;
-
-
-import org.aopalliance.intercept.MethodInvocation;
-import org.codehaus.aspectwerkz.joinpoint.*;
-import org.codehaus.aspectwerkz.joinpoint.management.JoinPointType;
-
-
-public class AkkaSpringJoinPointWrapper implements JoinPoint{
-
- private MethodInvocation methodInvocation = null;
-
- public MethodInvocation getMethodInvocation() {
- return methodInvocation;
- }
-
- public void setMethodInvocation(MethodInvocation methodInvocation) {
- this.methodInvocation = methodInvocation;
- }
-
- public static AkkaSpringJoinPointWrapper createSpringAkkaAspectWerkzWrapper(MethodInvocation methodInvocation){
- AkkaSpringJoinPointWrapper asjp = new AkkaSpringJoinPointWrapper();
- asjp.setMethodInvocation(methodInvocation);
- return asjp;
- }
-
- @Override
- public Object getCallee() {
- System.out.println("public Object getCallee()");
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public Object getCaller() {
- System.out.println("public Object getCaller() ");
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public Rtti getRtti() {
- System.out.println("public Rtti getRtti()");
- AkkaSpringRttiWrapper asrw = new AkkaSpringRttiWrapper(methodInvocation);
- return asrw;
- }
-
- @Override
- public Object getTarget() {
- System.out.println("public Object getTarget() ");
- return methodInvocation.getThis();
- }
-
- @Override
- public Object getThis() {
- System.out.println("public Object getThis()");
- return methodInvocation.getThis();
- }
-
- @Override
- public void addMetaData(Object arg0, Object arg1) {
- System.out.println("public void addMetaData(Object arg0, Object arg1)");
- // TODO Auto-generated method stub
-
- }
-
- @Override
- public Class getCalleeClass() {
- System.out.println("public Class getCalleeClass()");
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public Class getCallerClass() {
- System.out.println("public Class getCallerClass() ");
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public EnclosingStaticJoinPoint getEnclosingStaticJoinPoint() {
- System.out.println("public EnclosingStaticJoinPoint getEnclosingStaticJoinPoint()");
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public Object getMetaData(Object arg0) {
- System.out.println("public Object getMetaData(Object arg0) ");
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public Signature getSignature() {
- System.out.println("public Signature getSignature() ");
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public Class getTargetClass() {
- System.out.println("public Class getTargetClass() ");
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public JoinPointType getType() {
- System.out.println("public JoinPointType getType()");
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public Object proceed() throws Throwable {
- System.out.println("public Object proceed()");
-
- return methodInvocation.proceed();
- }
-
-
- public StaticJoinPoint copy() {
- // TODO Auto-generated method stub
- return null;
- }
-
-
-}
diff --git a/akka-spring/src/main/java/se/scalablesolutions/akka/util/AkkaSpringRttiWrapper.java b/akka-spring/src/main/java/se/scalablesolutions/akka/util/AkkaSpringRttiWrapper.java
deleted file mode 100644
index 62c12ac4de..0000000000
--- a/akka-spring/src/main/java/se/scalablesolutions/akka/util/AkkaSpringRttiWrapper.java
+++ /dev/null
@@ -1,95 +0,0 @@
-package se.scalablesolutions.akka.util;
-
-
-import org.aopalliance.intercept.MethodInvocation;
-import org.codehaus.aspectwerkz.joinpoint.MethodRtti;
-import org.codehaus.aspectwerkz.joinpoint.Rtti;
-
-import java.lang.reflect.Method;
-
-public class AkkaSpringRttiWrapper implements MethodRtti {
-
- private MethodInvocation methodInvocation = null;
-
- public AkkaSpringRttiWrapper(MethodInvocation methodInvocation){
- this.methodInvocation = methodInvocation;
-
- }
-
- @Override
- public Method getMethod() {
- return methodInvocation.getMethod();
- }
-
- @Override
- public Class getReturnType() {
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public Object getReturnValue() {
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public Class[] getExceptionTypes() {
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public Class[] getParameterTypes() {
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public Object[] getParameterValues() {
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public void setParameterValues(Object[] arg0) {
- // TODO Auto-generated method stub
-
- }
-
- @Override
- public Rtti cloneFor(Object arg0, Object arg1) {
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public Class getDeclaringType() {
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public int getModifiers() {
- // TODO Auto-generated method stub
- return 0;
- }
-
- @Override
- public String getName() {
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public Object getTarget() {
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public Object getThis() {
- // TODO Auto-generated method stub
- return null;
- }
-}
diff --git a/akka-spring/src/main/java/spring-config.xml b/akka-spring/src/main/java/spring-config.xml
deleted file mode 100644
index 142def25af..0000000000
--- a/akka-spring/src/main/java/spring-config.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/akka-spring/src/test/java/se/scalablesolutions/akka/AppTest.java b/akka-spring/src/test/java/se/scalablesolutions/akka/AppTest.java
deleted file mode 100644
index fd7dabe952..0000000000
--- a/akka-spring/src/test/java/se/scalablesolutions/akka/AppTest.java
+++ /dev/null
@@ -1,49 +0,0 @@
-package se.scalablesolutions.akka;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-import org.springframework.context.ApplicationContext;
-import org.springframework.context.support.ClassPathXmlApplicationContext;
-import se.scalablesolutions.akka.service.MyService;
-
-/**
- * Unit test for simple App.
- */
-public class AppTest
- extends TestCase
-{
- /**
- * Create the test case
- *
- * @param testName name of the test case
- */
- public AppTest( String testName )
- {
- super( testName );
- }
-
- /**
- * @return the suite of tests being tested
- */
- public static Test suite()
- {
- return new TestSuite( AppTest.class );
- }
-
-
- public void testApp()
- {
-
- ApplicationContext context = new ClassPathXmlApplicationContext("spring-test-config.xml");
-
- MyService myService = (MyService)context.getBean("interceptedService");
-
- System.out.println(Thread.currentThread());
-
- Object obj = myService.getNumbers(12,"vfsh");
-
- assertEquals(new Integer(12), obj);
-
- }
-}
diff --git a/akka-spring/src/test/java/se/scalablesolutions/akka/spring/AkkaSpringInterceptorTest.java b/akka-spring/src/test/java/se/scalablesolutions/akka/spring/AkkaSpringInterceptorTest.java
new file mode 100644
index 0000000000..d73dcbd340
--- /dev/null
+++ b/akka-spring/src/test/java/se/scalablesolutions/akka/spring/AkkaSpringInterceptorTest.java
@@ -0,0 +1,26 @@
+package se.scalablesolutions.akka.spring;
+
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+
+public class AkkaSpringInterceptorTest extends TestCase {
+
+ public AkkaSpringInterceptorTest(String testName) {
+ super(testName);
+ }
+
+ public static Test suite() {
+ return new TestSuite(AkkaSpringInterceptorTest.class);
+ }
+
+ public void testInvokingAkkaEnabledSpringBean() {
+ ApplicationContext context = new ClassPathXmlApplicationContext("spring-test-config.xml");
+ MyService myService = (MyService) context.getBean("actorBeanService");
+ Object obj = myService.getNumbers(12, "vfsh");
+ assertEquals(new Integer(12), obj);
+ }
+}
diff --git a/akka-spring/src/test/java/se/scalablesolutions/akka/spring/MyService.java b/akka-spring/src/test/java/se/scalablesolutions/akka/spring/MyService.java
new file mode 100644
index 0000000000..716b5ad210
--- /dev/null
+++ b/akka-spring/src/test/java/se/scalablesolutions/akka/spring/MyService.java
@@ -0,0 +1,20 @@
+package se.scalablesolutions.akka.spring;
+
+import org.springframework.transaction.annotation.Transactional;
+
+//import se.scalablesolutions.akka.annotation.oneway;
+
+public class MyService {
+
+ public Integer getNumbers(int aTestNumber, String aText) {
+ return new Integer(aTestNumber);
+ }
+
+ //@oneway
+ public void calculate() {
+ for (int i = 1; i < 10000; i++) {
+ System.out.println("i=" + i);
+ }
+ }
+}
+
diff --git a/akka-spring/src/test/resources/spring-test-config.xml b/akka-spring/src/test/resources/spring-test-config.xml
index 2f298ea172..dadbcf56d1 100644
--- a/akka-spring/src/test/resources/spring-test-config.xml
+++ b/akka-spring/src/test/resources/spring-test-config.xml
@@ -1,22 +1,21 @@
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
-
-
+
-
+
-
+
-
+
- interceptor
+ akkaInterceptor