diff --git a/akka-core/src/main/scala/actor/Supervisor.scala b/akka-core/src/main/scala/actor/Supervisor.scala index 3028a87c60..5607c17e96 100644 --- a/akka-core/src/main/scala/actor/Supervisor.scala +++ b/akka-core/src/main/scala/actor/Supervisor.scala @@ -126,7 +126,7 @@ sealed class Supervisor private[akka] ( private val childActors = new ConcurrentHashMap[String, List[ActorRef]] private val childSupervisors = new CopyOnWriteArrayList[Supervisor] - private[akka] val supervisor = SupervisorActor(handler, trapExceptions) + private[akka] val supervisor = actorOf(new SupervisorActor(handler, trapExceptions)).start def uuid = supervisor.uuid diff --git a/akka-samples/akka-sample-rest-java/src/main/java/sample/rest/java/Boot.java b/akka-samples/akka-sample-rest-java/src/main/java/sample/rest/java/Boot.java index 2f97b4ce92..60eb4f11af 100644 --- a/akka-samples/akka-sample-rest-java/src/main/java/sample/rest/java/Boot.java +++ b/akka-samples/akka-sample-rest-java/src/main/java/sample/rest/java/Boot.java @@ -1,13 +1,16 @@ +/** + * Copyright (C) 2009-2010 Scalable Solutions AB + */ + package sample.rest.java; import se.scalablesolutions.akka.config.ActiveObjectConfigurator; import static se.scalablesolutions.akka.config.JavaConfig.*; public class Boot { - final private ActiveObjectConfigurator manager = new ActiveObjectConfigurator(); - - public Boot() throws Exception { - manager.configure( + public final static ActiveObjectConfigurator configurator = new ActiveObjectConfigurator(); + static { + configurator.configure( new RestartStrategy(new OneForOne(), 3, 5000, new Class[]{Exception.class}), new Component[] { new Component( @@ -19,5 +22,5 @@ public class Boot { new LifeCycle(new Permanent()), 1000) }).supervise(); - } + } } diff --git a/akka-samples/akka-sample-rest-java/src/main/java/sample/rest/java/PersistentSimpleService.java b/akka-samples/akka-sample-rest-java/src/main/java/sample/rest/java/PersistentSimpleService.java index 82d4bc5ea5..1108fcdb63 100644 --- a/akka-samples/akka-sample-rest-java/src/main/java/sample/rest/java/PersistentSimpleService.java +++ b/akka-samples/akka-sample-rest-java/src/main/java/sample/rest/java/PersistentSimpleService.java @@ -4,10 +4,6 @@ package sample.rest.java; -import javax.ws.rs.Path; -import javax.ws.rs.GET; -import javax.ws.rs.Produces; - import se.scalablesolutions.akka.actor.annotation.transactionrequired; import se.scalablesolutions.akka.actor.annotation.prerestart; import se.scalablesolutions.akka.actor.annotation.postrestart; @@ -16,14 +12,6 @@ import se.scalablesolutions.akka.persistence.cassandra.CassandraStorage; import java.nio.ByteBuffer; -/** - * Try service out by invoking (multiple times): - *
- * curl http://localhost:9998/persistentjavacount
- * 
- * Or browse to the URL from a web browser. - */ -@Path("/persistentjavacount") @transactionrequired public class PersistentSimpleService { private String KEY = "COUNTER"; @@ -31,8 +19,6 @@ public class PersistentSimpleService { private boolean hasStartedTicking = false; private PersistentMap storage; - @GET - @Produces({"application/html"}) public String count() { if (storage == null) storage = CassandraStorage.newMap(); if (!hasStartedTicking) { diff --git a/akka-samples/akka-sample-rest-java/src/main/java/sample/rest/java/PersistentSimpleServiceRest.java b/akka-samples/akka-sample-rest-java/src/main/java/sample/rest/java/PersistentSimpleServiceRest.java new file mode 100644 index 0000000000..dc2d2d5aee --- /dev/null +++ b/akka-samples/akka-sample-rest-java/src/main/java/sample/rest/java/PersistentSimpleServiceRest.java @@ -0,0 +1,27 @@ +/** + * Copyright (C) 2009-2010 Scalable Solutions AB + */ + +package sample.rest.java; + +import javax.ws.rs.Path; +import javax.ws.rs.GET; +import javax.ws.rs.Produces; + +/** + * Try service out by invoking (multiple times): + *
+ * curl http://localhost:9998/persistentjavacount
+ * 
+ * Or browse to the URL from a web browser. + */ +@Path("/persistentjavacount") +public class PersistentSimpleServiceRest { + private PersistentSimpleService service = (PersistentSimpleService) Boot.configurator.getInstance(PersistentSimpleService.class); + + @GET + @Produces({"application/json"}) + public String count() { + return service.count(); + } +} \ No newline at end of file diff --git a/akka-samples/akka-sample-rest-java/src/main/java/sample/rest/java/SimpleService.java b/akka-samples/akka-sample-rest-java/src/main/java/sample/rest/java/SimpleService.java index 260df02a3e..44d23e873c 100644 --- a/akka-samples/akka-sample-rest-java/src/main/java/sample/rest/java/SimpleService.java +++ b/akka-samples/akka-sample-rest-java/src/main/java/sample/rest/java/SimpleService.java @@ -4,10 +4,6 @@ package sample.rest.java; -import javax.ws.rs.Path; -import javax.ws.rs.GET; -import javax.ws.rs.Produces; - import se.scalablesolutions.akka.actor.ActiveObject; import se.scalablesolutions.akka.actor.ActiveObjectContext; import se.scalablesolutions.akka.actor.annotation.transactionrequired; @@ -16,14 +12,6 @@ import se.scalablesolutions.akka.actor.annotation.postrestart; import se.scalablesolutions.akka.stm.TransactionalState; import se.scalablesolutions.akka.stm.TransactionalMap; -/** - * Try service out by invoking (multiple times): - *
- * curl http://localhost:9998/javacount
- * 
- * Or browse to the URL from a web browser. - */ -@Path("/javacount") @transactionrequired public class SimpleService { private String KEY = "COUNTER"; @@ -32,8 +20,6 @@ public class SimpleService { private TransactionalMap storage; private Receiver receiver = ActiveObject.newInstance(Receiver.class); - @GET - @Produces({"application/json"}) public String count() { if (storage == null) storage = TransactionalState.newMap(); if (!hasStartedTicking) { diff --git a/akka-samples/akka-sample-rest-java/src/main/java/sample/rest/java/SimpleServiceRest.java b/akka-samples/akka-sample-rest-java/src/main/java/sample/rest/java/SimpleServiceRest.java new file mode 100644 index 0000000000..ed048f25dc --- /dev/null +++ b/akka-samples/akka-sample-rest-java/src/main/java/sample/rest/java/SimpleServiceRest.java @@ -0,0 +1,27 @@ +/** + * Copyright (C) 2009-2010 Scalable Solutions AB + */ + +package sample.rest.java; + +import javax.ws.rs.Path; +import javax.ws.rs.GET; +import javax.ws.rs.Produces; + +/** + * Try service out by invoking (multiple times): + *
+ * curl http://localhost:9998/javacount
+ * 
+ * Or browse to the URL from a web browser. + */ +@Path("/javacount") +public class SimpleServiceRest { + private SimpleService service = (SimpleService) Boot.configurator.getInstance(SimpleService.class); + + @GET + @Produces({"application/json"}) + public String count() { + return service.count(); + } +} \ No newline at end of file