serviceLoader = ServiceLoader.load(IActorProvider.class);
+ for (IActorProvider service : serviceLoader) {
+ service.createActor(system);
+ }
+ }
+}
diff --git a/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/cluster/manager/ActorManagerActor.java b/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/cluster/manager/ActorManagerActor.java
index cc16d5a24183777e512a3b91b9672d96272b8c48..0047d9f844ee70ec17fa987c9e4a624a855dad5f 100644
--- a/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/cluster/manager/ActorManagerActor.java
+++ b/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/cluster/manager/ActorManagerActor.java
@@ -1,13 +1,14 @@
package com.a.eye.skywalking.collector.cluster.manager;
import akka.actor.Terminated;
-import akka.actor.UntypedActor;
+import com.a.eye.skywalking.collector.cluster.base.AbstractUntypedActor;
+import com.a.eye.skywalking.collector.cluster.base.IActorProvider;
import com.a.eye.skywalking.collector.cluster.message.ActorRegisterMessage;
/**
* Created by Administrator on 2017/2/21 0021.
*/
-public class ActorManagerActor extends UntypedActor {
+public class ActorManagerActor extends AbstractUntypedActor {
@Override
public void onReceive(Object message) throws Throwable {
diff --git a/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/cluster/manager/ActorManagerActorFactory.java b/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/cluster/manager/ActorManagerActorFactory.java
new file mode 100644
index 0000000000000000000000000000000000000000..a3d46e32bb171529daf1932d2b172989f79f447a
--- /dev/null
+++ b/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/cluster/manager/ActorManagerActorFactory.java
@@ -0,0 +1,29 @@
+package com.a.eye.skywalking.collector.cluster.manager;
+
+import akka.actor.ActorSystem;
+import akka.actor.Props;
+import com.a.eye.skywalking.collector.cluster.base.IActorProvider;
+import com.a.eye.skywalking.collector.cluster.config.CollectorConfig;
+
+/**
+ * @author pengys5
+ */
+public class ActorManagerActorFactory implements IActorProvider {
+
+ @Override
+ public String actorName() {
+ return "ActorManagerActor";
+ }
+
+ @Override
+ public void createActor(ActorSystem system) {
+ for (int i = 1; i <= CollectorConfig.Collector.Actor.ActorManagerActor_Num; i++) {
+ actorOf(system, actorName() + "_" + i);
+ }
+ }
+
+ @Override
+ public void actorOf(ActorSystem system, String actorInClusterName) {
+ system.actorOf(Props.create(ActorManagerActor.class), actorInClusterName);
+ }
+}
diff --git a/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/cluster/producer/TraceProducerApp.java b/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/cluster/producer/TraceProducerApp.java
index 86be204caf8e5ad410f9ade0dba81814cff97cd6..f996b43f36736108f7fcb6996f9312d8ad7510c7 100644
--- a/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/cluster/producer/TraceProducerApp.java
+++ b/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/cluster/producer/TraceProducerApp.java
@@ -22,7 +22,7 @@ import java.util.concurrent.atomic.AtomicInteger;
import static akka.pattern.Patterns.ask;
/**
- * {@link TraceProducerApp} is a producer for trace agent to send @link TraceSegment.
+ * {@link TraceProducerApp} is a producer for trace agent to send {@link TraceSegment}.
*
* Created by pengys5 on 2017/2/17.
*/
diff --git a/skywalking-collector/skywalking-collector-cluster/src/main/resources/META-INF/services/com.a.eye.skywalking.collector.cluster.base.IActorProvider b/skywalking-collector/skywalking-collector-cluster/src/main/resources/META-INF/services/com.a.eye.skywalking.collector.cluster.base.IActorProvider
new file mode 100644
index 0000000000000000000000000000000000000000..4a49d7b57999b3e1e4f3cb47543714dd3be1aa0c
--- /dev/null
+++ b/skywalking-collector/skywalking-collector-cluster/src/main/resources/META-INF/services/com.a.eye.skywalking.collector.cluster.base.IActorProvider
@@ -0,0 +1 @@
+com.a.eye.skywalking.collector.cluster.manager.ActorManagerActorFactory
\ No newline at end of file
diff --git a/skywalking-collector/skywalking-collector-cluster/src/test/java/com/a/eye/skywalking/collector/cluster/ActorCreatorTestCase.java b/skywalking-collector/skywalking-collector-cluster/src/test/java/com/a/eye/skywalking/collector/cluster/ActorCreatorTestCase.java
new file mode 100644
index 0000000000000000000000000000000000000000..aa2658c360403833fa33952c5b894acccb818bcb
--- /dev/null
+++ b/skywalking-collector/skywalking-collector-cluster/src/test/java/com/a/eye/skywalking/collector/cluster/ActorCreatorTestCase.java
@@ -0,0 +1,22 @@
+package com.a.eye.skywalking.collector.cluster;
+
+import akka.actor.ActorSystem;
+import akka.actor.Props;
+import com.a.eye.skywalking.collector.cluster.manager.ActorCreator;
+import com.a.eye.skywalking.collector.cluster.manager.ActorManagerActor;
+import org.junit.Test;
+
+import static org.mockito.Mockito.*;
+
+/**
+ * @author pengys5
+ */
+public class ActorCreatorTestCase {
+
+ @Test
+ public void testCreate() {
+ ActorSystem system = mock(ActorSystem.class);
+// ActorCreator.INSTANCE.create(system, ActorManagerActor.class, 1);
+// verify(system).actorOf(Props.create(ActorManagerActor.class), "ActorManagerActor");
+ }
+}
diff --git a/skywalking-collector/skywalking-collector-cluster/src/test/java/com/a/eye/skywalking/collector/cluster/ActorProviderTestCase.java b/skywalking-collector/skywalking-collector-cluster/src/test/java/com/a/eye/skywalking/collector/cluster/ActorProviderTestCase.java
new file mode 100644
index 0000000000000000000000000000000000000000..8516fce44546d361505de16027bb54b3385a04e8
--- /dev/null
+++ b/skywalking-collector/skywalking-collector-cluster/src/test/java/com/a/eye/skywalking/collector/cluster/ActorProviderTestCase.java
@@ -0,0 +1,27 @@
+package com.a.eye.skywalking.collector.cluster;
+
+import akka.actor.ActorSystem;
+import com.a.eye.skywalking.collector.cluster.manager.ActorManagerActorFactory;
+import org.junit.Assert;
+import org.junit.Test;
+import org.mockito.Mockito;
+
+/**
+ * @author pengys5
+ */
+public class ActorProviderTestCase {
+
+ @Test
+ public void testActorName() {
+ ActorManagerActorFactory factory = new ActorManagerActorFactory();
+ String actorName = factory.actorName();
+ Assert.assertEquals("ActorManagerActor", actorName);
+ }
+
+ @Test
+ public void testCreateActor() {
+ ActorSystem system = Mockito.mock(ActorSystem.class);
+ ActorManagerActorFactory factory = new ActorManagerActorFactory();
+ factory.createActor(system);
+ }
+}
diff --git a/skywalking-collector/skywalking-collector-cluster/src/test/java/com/a/eye/skywalking/collector/cluster/CollectorConfigTestCase.java b/skywalking-collector/skywalking-collector-cluster/src/test/java/com/a/eye/skywalking/collector/cluster/CollectorConfigTestCase.java
index dfd8be8f4ad159fce2d729709c0cf87cf989e331..560bb76f1376abc938ff6d413e367e638222e4a6 100644
--- a/skywalking-collector/skywalking-collector-cluster/src/test/java/com/a/eye/skywalking/collector/cluster/CollectorConfigTestCase.java
+++ b/skywalking-collector/skywalking-collector-cluster/src/test/java/com/a/eye/skywalking/collector/cluster/CollectorConfigTestCase.java
@@ -7,8 +7,6 @@ import com.typesafe.config.Config;
import org.junit.Assert;
import org.junit.Test;
-import java.util.ArrayList;
-
/**
* Created by pengys5 on 2017/2/22 0022.
*/
diff --git a/skywalking-collector/skywalking-collector-worker/pom.xml b/skywalking-collector/skywalking-collector-worker/pom.xml
index fff11e26261452dcb590a401c04dffa7bf99b5b4..0f03e8852ef222e2fe0620623934b95bc97bd250 100644
--- a/skywalking-collector/skywalking-collector-worker/pom.xml
+++ b/skywalking-collector/skywalking-collector-worker/pom.xml
@@ -11,5 +11,11 @@
skywalking-collector-worker
-
+
+
+ com.a.eye
+ skywalking-collector-cluster
+ ${project.version}
+
+
\ No newline at end of file
diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/CollectorBootStartUp.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/CollectorBootStartUp.java
new file mode 100644
index 0000000000000000000000000000000000000000..59920b3bcf67e3174acb18aa361f266e95bda5ff
--- /dev/null
+++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/CollectorBootStartUp.java
@@ -0,0 +1,17 @@
+package com.a.eye.skywalking.collector.worker;
+
+import akka.actor.ActorSystem;
+import akka.actor.Props;
+import com.a.eye.skywalking.collector.cluster.Const;
+import com.a.eye.skywalking.collector.cluster.consumer.TraceConsumerActor;
+
+/**
+ * @author pengys5
+ */
+public class CollectorBootStartUp {
+
+ public static void main(String[] args) {
+// ActorSystem system = ActorSystem.create("ClusterSystem", config);
+// system.actorOf(Props.create(TraceConsumerActor.class), Const.Trace_Consumer_Role);
+ }
+}
diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/indicator/ApplicationDiscoverActor.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/indicator/ApplicationDiscoverActor.java
new file mode 100644
index 0000000000000000000000000000000000000000..51eef9cef8e6a14a30d7b4903d8d2ad1db22723a
--- /dev/null
+++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/indicator/ApplicationDiscoverActor.java
@@ -0,0 +1,22 @@
+package com.a.eye.skywalking.collector.worker.indicator;
+
+import akka.actor.UntypedActor;
+import com.a.eye.skywalking.collector.cluster.base.AbstractUntypedActor;
+
+/**
+ * @author pengys5
+ */
+public class ApplicationDiscoverActor extends AbstractUntypedActor {
+
+ public static final String ActorName = "ApplicationDiscoverActor";
+
+ @Override
+ public String actorName() {
+ return ActorName;
+ }
+
+ @Override
+ public void onReceive(Object message) throws Throwable {
+
+ }
+}
diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/indicator/TraceSegmentRelationActor.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/indicator/TraceSegmentRelationActor.java
new file mode 100644
index 0000000000000000000000000000000000000000..dd93fe2223bec76bdfaf76dbdad53b9b2ef8868c
--- /dev/null
+++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/indicator/TraceSegmentRelationActor.java
@@ -0,0 +1,13 @@
+package com.a.eye.skywalking.collector.worker.indicator;
+
+import akka.actor.UntypedActor;
+
+/**
+ * @author pengys5
+ */
+public class TraceSegmentRelationActor extends UntypedActor{
+ @Override
+ public void onReceive(Object message) throws Throwable {
+
+ }
+}