added integration tests, spring 3.0.1 and sbt

This commit is contained in:
Michael Kober 2010-03-17 10:06:28 +01:00
parent 581b968d0f
commit fe8e445f9d
10 changed files with 546 additions and 144 deletions

View file

@ -0,0 +1,333 @@
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<name>Akka Spring Tests in Java</name>
<artifactId>akka-spring-test-java</artifactId>
<groupId>se.scalablesolutions.akka</groupId>
<version>0.7-SNAPSHOT</version>
<packaging>jar</packaging>
<properties>
<scala.version>2.7.7</scala.version>
<atmosphere.version>0.5.2</atmosphere.version>
<jersey.version>1.1.5</jersey.version>
<grizzly.version>1.9.18-i</grizzly.version>
</properties>
<repositories>
<repository>
<id>project.embedded.module</id>
<name>Project Embedded Repository</name>
<url>file://${env.AKKA_HOME}/embedded-repo</url>
</repository>
<repository>
<id>repo1.maven</id>
<name>Maven Main Repository</name>
<url>http://repo1.maven.org/maven2</url>
</repository>
<repository>
<id>scala-tools-snapshots</id>
<name>Scala-Tools Maven2 Snapshot Repository</name>
<url>http://scala-tools.org/repo-snapshots</url>
</repository>
<repository>
<id>scala-tools</id>
<name>Scala-Tools Maven2 Repository</name>
<url>http://scala-tools.org/repo-releases</url>
</repository>
<repository>
<id>lag</id>
<name>Configgy's' Repository</name>
<url>http://www.lag.net/repo</url>
</repository>
<repository>
<id>multiverse-releases</id>
<url>http://multiverse.googlecode.com/svn/maven-repository/releases</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>multiverse-snaphosts</id>
<url>http://multiverse.googlecode.com/svn/maven-repository/snapshots</url>
</repository>
<repository>
<id>maven2-repository.dev.java.net</id>
<name>Java.net Repository for Maven</name>
<url>http://download.java.net/maven/2</url>
</repository>
<repository>
<id>java.net</id>
<name>Java.net Legacy Repository for Maven</name>
<url>http://download.java.net/maven/1</url>
<layout>legacy</layout>
</repository>
<repository>
<id>guiceyfruit.release</id>
<name>GuiceyFruit Release Repository</name>
<url>http://guiceyfruit.googlecode.com/svn/repo/releases/</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</repository>
<repository>
<id>guiceyfruit.snapshot</id>
<name>GuiceyFruit Snapshot Repository</name>
<url>http://guiceyfruit.googlecode.com/svn/repo/snapshots/</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
<releases>
<enabled>false</enabled>
</releases>
</repository>
<repository>
<id>guice-maven</id>
<name>guice maven</name>
<url>http://guice-maven.googlecode.com/svn/trunk</url>
</repository>
<repository>
<id>google-maven-repository</id>
<name>Google Maven Repository</name>
<url>http://google-maven-repository.googlecode.com/svn/repository/</url>
</repository>
<repository>
<id>repository.codehaus.org</id>
<name>Codehaus Maven Repository</name>
<url>http://repository.codehaus.org</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
<repository>
<id>repository.jboss.org</id>
<name>JBoss Repository for Maven</name>
<url>http://repository.jboss.org/maven2</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>nexus.griddynamics.net</id>
<name>Grid Dynamics Maven Repository</name>
<url>https://nexus.griddynamics.net/nexus/content/groups/public</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>databinder.net/repo/</id>
<name>dbDispatch Repository for Maven</name>
<url>http://databinder.net/repo</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
<dependencies>
<!-- akka -->
<dependency>
<artifactId>akka-core</artifactId>
<groupId>se.scalablesolutions.akka</groupId>
<version>0.7-SNAPSHOT</version>
</dependency>
<dependency>
<artifactId>akka-util</artifactId>
<groupId>se.scalablesolutions.akka</groupId>
<version>0.7-SNAPSHOT</version>
</dependency>
<dependency>
<artifactId>akka-util-java</artifactId>
<groupId>se.scalablesolutions.akka</groupId>
<version>0.7-SNAPSHOT</version>
</dependency>
<dependency>
<artifactId>akka-spring</artifactId>
<groupId>se.scalablesolutions.akka</groupId>
<version>0.7-SNAPSHOT</version>
<exclusions>
<exclusion>
<artifactId>spring</artifactId>
<groupId>org.springframework</groupId>
</exclusion>
</exclusions>
</dependency>
<!-- spring -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>3.0.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>3.0.1.RELEASE</version>
</dependency>
<dependency>
<groupId>net.lag</groupId>
<artifactId>configgy</artifactId>
<version>1.4.7</version>
</dependency>
<dependency>
<groupId>org.codehaus.aspectwerkz</groupId>
<artifactId>aspectwerkz-nodeps-jdk5</artifactId>
<version>2.1</version>
</dependency>
<dependency>
<groupId>org.codehaus.aspectwerkz</groupId>
<artifactId>aspectwerkz-jdk5</artifactId>
<version>2.1</version>
</dependency>
<dependency>
<groupId>org.guiceyfruit</groupId>
<artifactId>guice-core</artifactId>
<version>2.0-beta-4</version>
</dependency>
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
<version>2.2.0</version>
</dependency>
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
<version>2.2.0</version>
</dependency>
<dependency>
<groupId>org.multiverse</groupId>
<artifactId>multiverse-alpha</artifactId>
<version>0.4-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>org.jboss.netty</groupId>
<artifactId>netty</artifactId>
<version>3.2.0.BETA1</version>
</dependency>
<dependency>
<groupId>net.databinder</groupId>
<artifactId>dispatch-json_2.7.7</artifactId>
<version>0.6.4</version>
</dependency>
<dependency>
<groupId>net.databinder</groupId>
<artifactId>dispatch-http_2.7.7</artifactId>
<version>0.6.4</version>
</dependency>
<dependency>
<groupId>sjson.json</groupId>
<artifactId>sjson</artifactId>
<version>0.4</version>
</dependency>
<dependency>
<groupId>sbinary</groupId>
<artifactId>sbinary</artifactId>
<version>0.3</version>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.2.1</version>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-core-asl</artifactId>
<version>1.2.1</version>
</dependency>
<dependency>
<groupId>voldemort.store.compress</groupId>
<artifactId>h2-lzf</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>org.scala-tools</groupId>
<artifactId>javautils</artifactId>
<version>2.7.4-0.1</version>
</dependency>
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
<version>2.7.7</version>
</dependency>
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
<version>2.7.7</version>
</dependency>
<!-- test -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.5</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<sourceDirectory>src/main/java</sourceDirectory>
<testSourceDirectory>src/test/java</testSourceDirectory>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.5</source>
<target>1.5</target>
<includes>
<include>**/*</include>
</includes>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<excludes>
<exclude>**/*Persistent*</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
<resources>
<resource>
<filtering>false</filtering>
<directory>src/test/resources</directory>
</resource>
<resource>
<filtering>false</filtering>
<directory>src/main/resources</directory>
</resource>
<resource>
<filtering>false</filtering>
<directory>src/test/java</directory>
<includes>
<include>**</include>
</includes>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</resource>
</resources>
</build>
<reporting>
<plugins></plugins>
</reporting>
</project>

View file

@ -0,0 +1,76 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:akka="http://www.akkasource.org/schema/akka"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.akkasource.org/schema/akka
file:////Users/michaelkober/akka/akka-spring/src/main/resources/se/scalablesolutions/akka/spring/akka.xsd">
<bean id="wrappedService"
class="se.scalablesolutions.akka.actor.ActiveObject"
factory-method="newInstance">
<constructor-arg index="0" type="java.lang.Class" value="se.scalablesolutions.akka.spring.foo.MyPojo"/>
<constructor-arg index="1" value="1000"/>
</bean>
<akka:active-object id="simple-active-object"
target="se.scalablesolutions.akka.spring.foo.MyPojo"
timeout="1000"/>
<akka:active-object id="simple-active-object-long-timeout"
target="se.scalablesolutions.akka.spring.foo.MyPojo"
timeout="10000"/>
<akka:active-object id="transactional-active-object"
target="se.scalablesolutions.akka.spring.foo.MyPojo"
timeout="2000"
transactional="true"/>
<akka:active-object id="active-object-callbacks"
target="se.scalablesolutions.akka.spring.foo.MyPojo"
timeout="2000"
transactional="true">
<akka:restart-callbacks pre="preRestart" post="postRestart"/>
</akka:active-object>
<akka:active-object id="remote-active-object"
target="se.scalablesolutions.akka.spring.foo.MyPojo"
timeout="2000"
transactional="true">
<akka:restart-callbacks pre="preRestart" post="postRestart"/>
<akka:remote host="localhost" port="9999" />
</akka:active-object>
<akka:active-object id="remote-service1" target="se.scalablesolutions.akka.spring.foo.MyPojo" timeout="1000">
<akka:remote host="localhost" port="9999" />
</akka:active-object>
<akka:supervision id="supervision1">
<akka:restart-strategy failover="AllForOne" retries="3" timerange="1000">
<akka:trap-exits>
<akka:trap-exit>java.io.IOException</akka:trap-exit>
<akka:trap-exit>java.lang.NullPointerException</akka:trap-exit>
</akka:trap-exits>
</akka:restart-strategy>
<akka:active-objects>
<akka:active-object target="se.scalablesolutions.akka.spring.foo.Foo" lifecycle="permanent" timeout="1000"/>
<akka:active-object interface="se.scalablesolutions.akka.spring.foo.IBar" target="se.scalablesolutions.akka.spring.foo.Bar" lifecycle="permanent" timeout="1000"/>
<akka:active-object target="se.scalablesolutions.akka.spring.foo.MyPojo" lifecycle="temporary" timeout="1000">
<akka:restart-callbacks pre="preRestart" post="postRestart"/>
</akka:active-object>
</akka:active-objects>
</akka:supervision>
<akka:supervision id="supervision2">
<akka:restart-strategy failover="AllForOne" retries="3" timerange="5000">
<akka:trap-exits>
<akka:trap-exit>java.lang.Exception</akka:trap-exit>
</akka:trap-exits>
</akka:restart-strategy>
<akka:active-objects>
<akka:active-object target="se.scalablesolutions.akka.spring.foo.StatefulPojo" lifecycle="permanent" timeout="10000" transactional="true"/>
</akka:active-objects>
</akka:supervision>
</beans>

View file

@ -0,0 +1,120 @@
package se.scalablesolutions.akka.spring;
import static org.junit.Assert.*;
import org.junit.Before;
import org.junit.Test;
import org.springframework.beans.factory.support.DefaultListableBeanFactory;
import org.springframework.beans.factory.xml.XmlBeanDefinitionReader;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
import se.scalablesolutions.akka.config.ActiveObjectConfigurator;
import se.scalablesolutions.akka.dispatch.FutureTimeoutException;
import se.scalablesolutions.akka.config.Config;
import se.scalablesolutions.akka.remote.RemoteNode;
import se.scalablesolutions.akka.spring.foo.Foo;
import se.scalablesolutions.akka.spring.foo.IBar;
import se.scalablesolutions.akka.spring.foo.MyPojo;
import se.scalablesolutions.akka.spring.foo.StatefulPojo;
/**
* Tests for spring configuration of active objects and supervisor configuration.
*/
public class SpringConfigurationTest {
private ApplicationContext context = null;
@Before
public void setUp() {
context = new ClassPathXmlApplicationContext("se/scalablesolutions/akka/spring/foo/test-config.xml");
}
/**
* Tests that the &lt;akka:active-object/&gt; and &lt;akka:supervision/&gt; element
* can be used as a top level element.
*/
@Test
public void testParse() throws Exception {
final Resource CONTEXT = new ClassPathResource("se/scalablesolutions/akka/spring/foo/test-config.xml");
DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory();
XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(beanFactory);
reader.loadBeanDefinitions(CONTEXT);
assertTrue(beanFactory.containsBeanDefinition("simple-active-object"));
assertTrue(beanFactory.containsBeanDefinition("remote-active-object"));
assertTrue(beanFactory.containsBeanDefinition("supervision1"));
}
@Test
public void testSimpleActiveObject() {
MyPojo myPojo = (MyPojo) context.getBean("simple-active-object");
String msg = myPojo.getFoo();
msg += myPojo.getBar();
assertEquals("wrong invocation order", "foobar", msg);
}
@Test(expected=FutureTimeoutException.class)
public void testSimpleActiveObject_Timeout() {
MyPojo myPojo = (MyPojo) context.getBean("simple-active-object");
myPojo.longRunning();
}
@Test
public void testSimpleActiveObject_NoTimeout() {
MyPojo myPojo = (MyPojo) context.getBean("simple-active-object-long-timeout");
String msg = myPojo.longRunning();
assertEquals("this took long", msg);
}
@Test
public void testTransactionalActiveObject() {
MyPojo myPojo = (MyPojo) context.getBean("transactional-active-object");
String msg = myPojo.getFoo();
msg += myPojo.getBar();
assertEquals("wrong invocation order", "foobar", msg);
}
@Test
public void testRemoteActiveObject() {
new Thread(new Runnable() {
public void run() {
RemoteNode.start();
}
}).start();
try { Thread.currentThread().sleep(1000); } catch (Exception e) {}
Config.config();
MyPojo myPojo = (MyPojo) context.getBean("remote-active-object");
assertEquals("foo", myPojo.getFoo());
}
@Test
public void testSupervision() {
// get ActiveObjectConfigurator bean from spring context
ActiveObjectConfigurator myConfigurator = (ActiveObjectConfigurator) context.getBean("supervision1");
// get ActiveObjects
Foo foo = myConfigurator.getInstance(Foo.class);
assertNotNull(foo);
IBar bar = myConfigurator.getInstance(IBar.class);
assertNotNull(bar);
MyPojo pojo = myConfigurator.getInstance(MyPojo.class);
assertNotNull(pojo);
}
@Test
public void testTransactionalState() {
ActiveObjectConfigurator conf = (ActiveObjectConfigurator) context.getBean("supervision2");
StatefulPojo stateful = conf.getInstance(StatefulPojo.class);
stateful.init();
stateful.setMapState("testTransactionalState", "some map state");
stateful.setVectorState("some vector state");
stateful.setRefState("some ref state");
assertEquals("some map state", stateful.getMapState("testTransactionalState"));
assertEquals("some vector state", stateful.getVectorState());
assertEquals("some ref state", stateful.getRefState());
}
}

Binary file not shown.

Binary file not shown.

View file

@ -1,76 +0,0 @@
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>akka-spring</artifactId>
<name>Akka Spring Integration</name>
<packaging>jar</packaging>
<parent>
<artifactId>akka</artifactId>
<groupId>se.scalablesolutions.akka</groupId>
<version>0.7-SNAPSHOT</version>
</parent>
<dependencies>
<!-- Core deps -->
<dependency>
<artifactId>akka-core</artifactId>
<groupId>${project.groupId}</groupId>
<version>${project.version}</version>
</dependency>
<dependency>
<artifactId>akka-util-java</artifactId>
<groupId>${project.groupId}</groupId>
<version>${project.version}</version>
</dependency>
<dependency>
<artifactId>akka-util</artifactId>
<groupId>${project.groupId}</groupId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring</artifactId>
<version>2.5.6</version>
</dependency>
<!--dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>3.0.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>3.0.1.RELEASE</version>
</dependency-->
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
<version>${scala.version}</version>
</dependency>
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-compiler</artifactId>
<version>${scala.version}</version>
</dependency>
<!-- For Testing -->
<dependency>
<groupId>org.scalatest</groupId>
<artifactId>scalatest</artifactId>
<version>1.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.5</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>

View file

@ -16,7 +16,7 @@ import se.scalablesolutions.akka.config.ScalaConfig.RestartCallbacks
* Factory bean for active objects.
* @author michaelkober
*/
class ActiveObjectFactoryBean extends AbstractFactoryBean {
class ActiveObjectFactoryBean extends AbstractFactoryBean[AnyRef] {
import StringReflect._
@BeanProperty var target: String = ""
@ -33,7 +33,7 @@ class ActiveObjectFactoryBean extends AbstractFactoryBean {
/*
* @see org.springframework.beans.factory.FactoryBean#getObjectType()
*/
def getObjectType = target.toClass
def getObjectType: Class[AnyRef] = target.toClass
/*

View file

@ -14,19 +14,19 @@ import reflect.BeanProperty
* Factory bean for supervisor configuration.
* @author michaelkober
*/
class SupervisionFactoryBean extends AbstractFactoryBean {
class SupervisionFactoryBean extends AbstractFactoryBean[ActiveObjectConfigurator] {
@BeanProperty var restartStrategy: RestartStrategy = _
@BeanProperty var supervised: List[ActiveObjectProperties] = _
/*
* @see org.springframework.beans.factory.FactoryBean#getObjectType()
*/
def getObjectType = classOf[ActiveObjectConfigurator]
def getObjectType: Class[ActiveObjectConfigurator] = classOf[ActiveObjectConfigurator]
/*
* @see org.springframework.beans.factory.config.AbstractFactoryBean#createInstance()
*/
def createInstance: AnyRef = {
def createInstance: ActiveObjectConfigurator = {
val configurator = new ActiveObjectConfigurator()
configurator.configure(

View file

@ -1,62 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:akka="http://www.akkasource.org/schema/akka"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.akkasource.org/schema/akka
file:////../../main/resources/se/scalablesolutions/akka/spring/akka.xsd">
<bean id="wrappedService"
class="se.scalablesolutions.akka.actor.ActiveObject"
factory-method="newInstance">
<constructor-arg index="0" type="java.lang.Class" value="foo.bar.MyPojo"/>
<constructor-arg index="1" value="1000"/>
</bean>
<akka:active-object id="active-object1"
target="foo.bar.MyPojo"
timeout="1000"/>
<akka:active-object id="service2"
target="foo.bar.MyPojo"
timeout="2000"
transactional="true"/>
<akka:active-object id="service3"
target="foo.bar.MyPojo"
timeout="2000"
transactional="true">
<akka:restart-callbacks pre="preRestart"/>
</akka:active-object>
<akka:active-object id="active-object2"
target="foo.bar.MyPojo"
timeout="2000"
transactional="true">
<akka:restart-callbacks pre="preRestartMethod" post="postRestartMethod"/>
<akka:remote host="localhost" port="9998" />
</akka:active-object>
<akka:active-object id="remote-service1" target="foo.bar.MyPojo" timeout="1000">
<akka:remote host="localhost" port="9998" />
</akka:active-object>
<akka:supervision id="supervision1">
<akka:restart-strategy failover="AllForOne" retries="3" timerange="1000">
<akka:trap-exits>
<akka:trap-exit>java.io.IOException</akka:trap-exit>
<akka:trap-exit>java.lang.NullPointerException</akka:trap-exit>
</akka:trap-exits>
</akka:restart-strategy>
<akka:active-objects>
<akka:active-object target="foo.bar.Foo" lifecycle="permanent" timeout="1000"/>
<akka:active-object interface="foo.bar.Bar" target="foo.bar.BarImpl" lifecycle="permanent" timeout="1000"/>
<akka:active-object target="foo.bar.SomeService" lifecycle="temporary" timeout="1000">
<akka:restart-callbacks pre="preRestartMethod" post="postRestartMethod"/>
</akka:active-object>
</akka:active-objects>
</akka:supervision>
</beans>

View file

@ -85,6 +85,7 @@ class AkkaParent(info: ProjectInfo) extends DefaultProject(info) {
lazy val akka_cluster = project("akka-cluster", "akka-cluster", new AkkaClusterParentProject(_))
lazy val akka_kernel = project("akka-kernel", "akka-kernel", new AkkaKernelProject(_),
akka_core, akka_rest, akka_persistence, akka_cluster, akka_amqp, akka_security, akka_comet, akka_patterns)
lazy val akka_spring = project("akka-spring", "akka-spring", new AkkaSpringProject(_), akka_core, akka_util, akka_java_util)
// functional tests in java
lazy val akka_fun_test = project("akka-fun-test-java", "akka-fun-test-java", new AkkaFunTestProject(_), akka_kernel)
@ -119,7 +120,8 @@ class AkkaParent(info: ProjectInfo) extends DefaultProject(info) {
" dist/akka-persistence-redis_%s-%s.jar".format(defScalaVersion.value, version) +
" dist/akka-persistence-mongo_%s-%s.jar".format(defScalaVersion.value, version) +
" dist/akka-persistence-cassandra_%s-%s.jar".format(defScalaVersion.value, version) +
" dist/akka-kernel_%s-%s.jar".format(defScalaVersion.value, version)
" dist/akka-kernel_%s-%s.jar".format(defScalaVersion.value, version) +
" dist/akka-spring_%s-%s.jar".format(defScalaVersion.value, version)
)
// ------------------------------------------------------------
@ -284,6 +286,15 @@ class AkkaParent(info: ProjectInfo) extends DefaultProject(info) {
lazy val dist = deployTask(info, distPath) dependsOn(`package`) describedAs("Deploying")
}
class AkkaSpringProject(info: ProjectInfo) extends DefaultProject(info) {
val spring_beans = "org.springframework" % "spring-beans" % "3.0.1.RELEASE"
val spring_context = "org.springframework" % "spring-context" % "3.0.1.RELEASE"
// testing
val scalatest = "org.scalatest" % "scalatest" % "1.0" % "test"
val junit = "junit" % "junit" % "4.5" % "test"
lazy val dist = deployTask(info, distPath) dependsOn(`package`) describedAs("Deploying")
}
// examples
class AkkaFunTestProject(info: ProjectInfo) extends DefaultProject(info) {
val protobuf = "com.google.protobuf" % "protobuf-java" % "2.2.0"