You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@curator.apache.org by ra...@apache.org on 2014/05/28 00:40:58 UTC
git commit: more work on CLI
Repository: curator
Updated Branches:
refs/heads/curator-rpc 7f90dc40f -> f261b0cfd
more work on CLI
Project: http://git-wip-us.apache.org/repos/asf/curator/repo
Commit: http://git-wip-us.apache.org/repos/asf/curator/commit/f261b0cf
Tree: http://git-wip-us.apache.org/repos/asf/curator/tree/f261b0cf
Diff: http://git-wip-us.apache.org/repos/asf/curator/diff/f261b0cf
Branch: refs/heads/curator-rpc
Commit: f261b0cfd6c548f3c8768243b1feda53b484d5cd
Parents: 7f90dc4
Author: randgalt <ra...@apache.org>
Authored: Tue May 27 17:40:51 2014 -0500
Committer: randgalt <ra...@apache.org>
Committed: Tue May 27 17:40:51 2014 -0500
----------------------------------------------------------------------
.../org/apache/curator/x/rpc/Configuration.java | 30 ++++++++++++
.../org/apache/curator/x/rpc/CuratorEntry.java | 2 +-
.../curator/x/rpc/CuratorProjectionServer.java | 49 +++++++++-----------
.../curator/x/rpc/idl/event/EventService.java | 4 +-
4 files changed, 55 insertions(+), 30 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/curator/blob/f261b0cf/curator-x-rpc/src/main/java/org/apache/curator/x/rpc/Configuration.java
----------------------------------------------------------------------
diff --git a/curator-x-rpc/src/main/java/org/apache/curator/x/rpc/Configuration.java b/curator-x-rpc/src/main/java/org/apache/curator/x/rpc/Configuration.java
index 9c9eb77..ea361b3 100644
--- a/curator-x-rpc/src/main/java/org/apache/curator/x/rpc/Configuration.java
+++ b/curator-x-rpc/src/main/java/org/apache/curator/x/rpc/Configuration.java
@@ -1,7 +1,37 @@
package org.apache.curator.x.rpc;
import com.facebook.swift.service.ThriftServerConfig;
+import io.airlift.configuration.Config;
+import io.airlift.configuration.ConfigDescription;
+import io.airlift.units.Duration;
+import java.util.concurrent.TimeUnit;
public class Configuration extends ThriftServerConfig
{
+ private Duration projectionExpiration = new Duration(3, TimeUnit.MINUTES);
+ private Duration pingTime = new Duration(5, TimeUnit.SECONDS);
+
+ public Duration getProjectionExpiration()
+ {
+ return projectionExpiration;
+ }
+
+ @Config("curator.projection-expiration")
+ @ConfigDescription("Curator projection instances will be expired after this amount of inactivity - default is 3 minutes")
+ public void setProjectionExpiration(Duration projectionExpiration)
+ {
+ this.projectionExpiration = projectionExpiration;
+ }
+
+ public Duration getPingTime()
+ {
+ return pingTime;
+ }
+
+ @Config("curator.ping-time")
+ @ConfigDescription("Calls to getNextEvent() will return PING after this duration - default is 5 seconds")
+ public void setPingTime(Duration pingTime)
+ {
+ this.pingTime = pingTime;
+ }
}
http://git-wip-us.apache.org/repos/asf/curator/blob/f261b0cf/curator-x-rpc/src/main/java/org/apache/curator/x/rpc/CuratorEntry.java
----------------------------------------------------------------------
diff --git a/curator-x-rpc/src/main/java/org/apache/curator/x/rpc/CuratorEntry.java b/curator-x-rpc/src/main/java/org/apache/curator/x/rpc/CuratorEntry.java
index c0e3524..52f025d 100644
--- a/curator-x-rpc/src/main/java/org/apache/curator/x/rpc/CuratorEntry.java
+++ b/curator-x-rpc/src/main/java/org/apache/curator/x/rpc/CuratorEntry.java
@@ -66,7 +66,7 @@ public class CuratorEntry implements Closeable
}
}
- public RpcCuratorEvent pollForEvent(int maxWaitMs) throws InterruptedException
+ public RpcCuratorEvent pollForEvent(long maxWaitMs) throws InterruptedException
{
if ( state.get() == State.OPEN )
{
http://git-wip-us.apache.org/repos/asf/curator/blob/f261b0cf/curator-x-rpc/src/main/java/org/apache/curator/x/rpc/CuratorProjectionServer.java
----------------------------------------------------------------------
diff --git a/curator-x-rpc/src/main/java/org/apache/curator/x/rpc/CuratorProjectionServer.java b/curator-x-rpc/src/main/java/org/apache/curator/x/rpc/CuratorProjectionServer.java
index 987071a..f5e49f4 100644
--- a/curator-x-rpc/src/main/java/org/apache/curator/x/rpc/CuratorProjectionServer.java
+++ b/curator-x-rpc/src/main/java/org/apache/curator/x/rpc/CuratorProjectionServer.java
@@ -34,7 +34,6 @@ import org.apache.curator.x.rpc.idl.event.EventService;
import org.apache.curator.x.rpc.idl.projection.CuratorProjectionService;
import java.io.File;
import java.io.IOException;
-import java.lang.reflect.Method;
import java.util.Map;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicReference;
@@ -90,13 +89,13 @@ public class CuratorProjectionServer
Runtime.getRuntime().addShutdownHook(hook);
}
- public CuratorProjectionServer(Configuration thriftServerConfig)
+ public CuratorProjectionServer(Configuration configuration)
{
- rpcManager = new RpcManager(TimeUnit.SECONDS.toMillis(10));
- EventService eventService = new EventService(rpcManager, 5000); // TODO
+ rpcManager = new RpcManager(configuration.getProjectionExpiration().toMillis());
+ EventService eventService = new EventService(rpcManager, configuration.getPingTime().toMillis());
CuratorProjectionService projectionService = new CuratorProjectionService(rpcManager);
ThriftServiceProcessor processor = new ThriftServiceProcessor(new ThriftCodecManager(), Lists.<ThriftEventHandler>newArrayList(), projectionService, eventService);
- server = new ThriftServer(processor, thriftServerConfig);
+ server = new ThriftServer(processor, configuration);
}
public void start()
@@ -121,37 +120,33 @@ public class CuratorProjectionServer
System.out.println();
System.out.println("Arguments:");
System.out.println("\t<none> show this help");
- System.out.println("\t<path> path to a JSON configuration file");
+ System.out.println("\t<path> path to a properties configuration file");
System.out.println("\t<field value> ... list of values that would be in the JSON configuration file");
System.out.println();
- System.out.println("Values:");
+ System.out.println("Values:");
ConfigurationMetadata<Configuration> metadata = ConfigurationMetadata.getConfigurationMetadata(Configuration.class);
for ( ConfigurationMetadata.AttributeMetadata attributeMetadata : metadata.getAttributes().values() )
{
ConfigurationMetadata.InjectionPointMetaData injectionPoint = attributeMetadata.getInjectionPoint();
- System.out.println("\t" + injectionPoint.getProperty() + ": " + getType(attributeMetadata.getGetter()));
- }
- }
-
- private static String getType(Method method)
- {
- Class<?> type = method.getReturnType();
- String result = type.getSimpleName();
- if ( type.equals(Duration.class) )
- {
- result += example(new Duration(10, TimeUnit.MINUTES));
- }
- else if ( type.equals(DataSize.class) )
- {
- result += example(new DataSize(1.5, DataSize.Unit.GIGABYTE));
+ System.out.println("\t" + injectionPoint.getProperty() + ": " + attributeMetadata.getGetter().getReturnType().getSimpleName());
+ if ( attributeMetadata.getDescription() != null )
+ {
+ System.out.println("\t\t" + attributeMetadata.getDescription());
+ }
+ System.out.println();
}
- return result;
- }
- private static String example(Object s)
- {
- return " (e.g. \"" + s + "\")";
+ System.out.println("Special Types Examples:");
+ System.out.println("\t" + Duration.class.getSimpleName());
+ System.out.println("\t\t" + new Duration(10, TimeUnit.MINUTES));
+ System.out.println("\t\t" + new Duration(5, TimeUnit.MILLISECONDS));
+ System.out.println("\t\t" + new Duration(1.5, TimeUnit.HOURS));
+ System.out.println("\t" + DataSize.class.getSimpleName());
+ System.out.println("\t\t" + new DataSize(1.5, DataSize.Unit.GIGABYTE));
+ System.out.println("\t\t" + new DataSize(10, DataSize.Unit.BYTE));
+ System.out.println("\t\t" + new DataSize(.4, DataSize.Unit.MEGABYTE));
+ System.out.println();
}
private static Map<String, String> buildOptions(String[] args) throws IOException
http://git-wip-us.apache.org/repos/asf/curator/blob/f261b0cf/curator-x-rpc/src/main/java/org/apache/curator/x/rpc/idl/event/EventService.java
----------------------------------------------------------------------
diff --git a/curator-x-rpc/src/main/java/org/apache/curator/x/rpc/idl/event/EventService.java b/curator-x-rpc/src/main/java/org/apache/curator/x/rpc/idl/event/EventService.java
index 939eaeb..13598c8 100644
--- a/curator-x-rpc/src/main/java/org/apache/curator/x/rpc/idl/event/EventService.java
+++ b/curator-x-rpc/src/main/java/org/apache/curator/x/rpc/idl/event/EventService.java
@@ -10,9 +10,9 @@ import org.apache.curator.x.rpc.idl.projection.CuratorProjection;
public class EventService
{
private final RpcManager rpcManager;
- private final int pingTimeMs;
+ private final long pingTimeMs;
- public EventService(RpcManager rpcManager, int pingTimeMs)
+ public EventService(RpcManager rpcManager, long pingTimeMs)
{
this.rpcManager = rpcManager;
this.pingTimeMs = pingTimeMs;