Skip to content

Commit

Permalink
basePackages config option is now a collection
Browse files Browse the repository at this point in the history
  • Loading branch information
JoeHegarty committed May 16, 2017
1 parent 7f278b3 commit 198cd23
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 25 deletions.
49 changes: 26 additions & 23 deletions actors/runtime/src/main/java/cloud/orbit/actors/Stage.java
Expand Up @@ -28,7 +28,15 @@


package cloud.orbit.actors; package cloud.orbit.actors;


import com.ea.async.Async;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import cloud.orbit.actors.annotation.StatelessWorker; import cloud.orbit.actors.annotation.StatelessWorker;
import cloud.orbit.actors.annotation.StorageExtension;
import cloud.orbit.actors.cloner.ExecutionObjectCloner;
import cloud.orbit.actors.cloner.KryoCloner;
import cloud.orbit.actors.cluster.ClusterPeer; import cloud.orbit.actors.cluster.ClusterPeer;
import cloud.orbit.actors.cluster.JGroupsClusterPeer; import cloud.orbit.actors.cluster.JGroupsClusterPeer;
import cloud.orbit.actors.cluster.NodeAddress; import cloud.orbit.actors.cluster.NodeAddress;
Expand All @@ -48,19 +56,19 @@
import cloud.orbit.actors.net.Pipeline; import cloud.orbit.actors.net.Pipeline;
import cloud.orbit.actors.runtime.AbstractActor; import cloud.orbit.actors.runtime.AbstractActor;
import cloud.orbit.actors.runtime.ActorBaseEntry; import cloud.orbit.actors.runtime.ActorBaseEntry;
import cloud.orbit.actors.runtime.DefaultLocalObjectsCleaner;
import cloud.orbit.actors.runtime.ActorEntry; import cloud.orbit.actors.runtime.ActorEntry;
import cloud.orbit.actors.runtime.ActorRuntime; import cloud.orbit.actors.runtime.ActorRuntime;
import cloud.orbit.actors.runtime.ActorTaskContext; import cloud.orbit.actors.runtime.ActorTaskContext;
import cloud.orbit.actors.runtime.AsyncStreamReference; import cloud.orbit.actors.runtime.AsyncStreamReference;
import cloud.orbit.actors.runtime.BasicRuntime; import cloud.orbit.actors.runtime.BasicRuntime;
import cloud.orbit.actors.runtime.ClusterHandler; import cloud.orbit.actors.runtime.ClusterHandler;
import cloud.orbit.actors.runtime.DefaultInvocationHandler;
import cloud.orbit.actors.runtime.FastActorClassFinder;
import cloud.orbit.actors.runtime.DefaultLifetimeExtension;
import cloud.orbit.actors.runtime.DefaultDescriptorFactory; import cloud.orbit.actors.runtime.DefaultDescriptorFactory;
import cloud.orbit.actors.runtime.DefaultHandlers; import cloud.orbit.actors.runtime.DefaultHandlers;
import cloud.orbit.actors.runtime.DefaultInvocationHandler;
import cloud.orbit.actors.runtime.DefaultLifetimeExtension;
import cloud.orbit.actors.runtime.DefaultLocalObjectsCleaner;
import cloud.orbit.actors.runtime.Execution; import cloud.orbit.actors.runtime.Execution;
import cloud.orbit.actors.runtime.FastActorClassFinder;
import cloud.orbit.actors.runtime.Hosting; import cloud.orbit.actors.runtime.Hosting;
import cloud.orbit.actors.runtime.InternalUtils; import cloud.orbit.actors.runtime.InternalUtils;
import cloud.orbit.actors.runtime.Invocation; import cloud.orbit.actors.runtime.Invocation;
Expand All @@ -80,8 +88,6 @@
import cloud.orbit.actors.runtime.ResponseCaching; import cloud.orbit.actors.runtime.ResponseCaching;
import cloud.orbit.actors.runtime.SerializationHandler; import cloud.orbit.actors.runtime.SerializationHandler;
import cloud.orbit.actors.runtime.StatelessActorEntry; import cloud.orbit.actors.runtime.StatelessActorEntry;
import cloud.orbit.actors.cloner.ExecutionObjectCloner;
import cloud.orbit.actors.cloner.KryoCloner;
import cloud.orbit.actors.streams.AsyncObserver; import cloud.orbit.actors.streams.AsyncObserver;
import cloud.orbit.actors.streams.AsyncStream; import cloud.orbit.actors.streams.AsyncStream;
import cloud.orbit.actors.streams.StreamSequenceToken; import cloud.orbit.actors.streams.StreamSequenceToken;
Expand All @@ -91,25 +97,17 @@
import cloud.orbit.annotation.Config; import cloud.orbit.annotation.Config;
import cloud.orbit.concurrent.ExecutorUtils; import cloud.orbit.concurrent.ExecutorUtils;
import cloud.orbit.concurrent.Task; import cloud.orbit.concurrent.Task;
import cloud.orbit.lifecycle.Startable;
import cloud.orbit.exception.UncheckedException; import cloud.orbit.exception.UncheckedException;
import cloud.orbit.lifecycle.Startable;
import cloud.orbit.util.StringUtils; import cloud.orbit.util.StringUtils;


import com.ea.async.Async;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import cloud.orbit.actors.annotation.StorageExtension;

import javax.inject.Singleton; import javax.inject.Singleton;


import java.lang.annotation.Annotation; import java.lang.annotation.Annotation;
import java.lang.ref.WeakReference; import java.lang.ref.WeakReference;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.time.Clock; import java.time.Clock;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection; import java.util.Collection;
import java.util.Collections; import java.util.Collections;
import java.util.Date; import java.util.Date;
Expand All @@ -127,7 +125,6 @@
import java.util.concurrent.Executors; import java.util.concurrent.Executors;
import java.util.concurrent.ForkJoinTask; import java.util.concurrent.ForkJoinTask;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import java.util.regex.Pattern;


import static com.ea.async.Async.await; import static com.ea.async.Async.await;


Expand Down Expand Up @@ -159,7 +156,7 @@ protected <T> LocalObjectEntry createLocalObjectEntry(final RemoteReference<T> r
}); });


@Config("orbit.actors.basePackages") @Config("orbit.actors.basePackages")
private String basePackages; private List<String> basePackages;


@Config("orbit.actors.clusterName") @Config("orbit.actors.clusterName")
private String clusterName; private String clusterName;
Expand Down Expand Up @@ -242,7 +239,7 @@ public static class Builder
private Execution execution; private Execution execution;
private LocalObjectsCleaner localObjectsCleaner; private LocalObjectsCleaner localObjectsCleaner;


private String basePackages; private List<String> basePackages = new ArrayList<>();
private String clusterName; private String clusterName;
private String nodeName; private String nodeName;
private StageMode mode = StageMode.HOST; private StageMode mode = StageMode.HOST;
Expand Down Expand Up @@ -323,9 +320,15 @@ public Builder clusterName(String clusterName)
return this; return this;
} }


public Builder basePackages(String basePackages) public Builder basePackages(String... basePackages)
{
Collections.addAll(this.basePackages, basePackages);
return this;
}

public Builder basePackages(Collection<String> basePackages)
{ {
this.basePackages = basePackages; this.basePackages.addAll(basePackages);
return this; return this;
} }


Expand Down Expand Up @@ -490,9 +493,9 @@ public long getLocalObjectCount() {
return objects.getLocalObjectCount(); return objects.getLocalObjectCount();
} }


public void setBasePackages(final String basePackages) public void setBasePackages(final List<String> basePackages)
{ {
this.basePackages = basePackages; this.basePackages = Collections.unmodifiableList(basePackages);
} }


public String getClusterName() public String getClusterName()
Expand Down Expand Up @@ -641,7 +644,7 @@ public Task<?> start()
finder = getFirstExtension(ActorClassFinder.class); finder = getFirstExtension(ActorClassFinder.class);
if (finder == null) if (finder == null)
{ {
finder = StringUtils.isNotEmpty(basePackages) ? new FastActorClassFinder(basePackages.split(Pattern.quote(","))) : new LazyActorClassFinder(); finder = !basePackages.isEmpty() ? new FastActorClassFinder((String[]) basePackages.toArray()) : new LazyActorClassFinder();
} }
await(finder.start()); await(finder.start());


Expand Down
2 changes: 0 additions & 2 deletions commons/src/main/java/cloud/orbit/concurrent/Task.java
Expand Up @@ -132,7 +132,6 @@ protected boolean internalCompleteExceptionally(Throwable ex)
* This completableFuture derived method is not available for Tasks. * This completableFuture derived method is not available for Tasks.
*/ */
@Override @Override
@Deprecated
public boolean complete(T value) public boolean complete(T value)
{ {
// TODO: throw an exception // TODO: throw an exception
Expand All @@ -143,7 +142,6 @@ public boolean complete(T value)
* This completableFuture derived method is not available for Tasks. * This completableFuture derived method is not available for Tasks.
*/ */
@Override @Override
@Deprecated
public boolean completeExceptionally(Throwable ex) public boolean completeExceptionally(Throwable ex)
{ {
// TODO: throw an exception // TODO: throw an exception
Expand Down

0 comments on commit 198cd23

Please sign in to comment.