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/27 18:22:22 UTC
git commit: refinement of async and a test
Repository: curator
Updated Branches:
refs/heads/curator-rpc abf5fddae -> 18b3fc6bc
refinement of async and a test
Project: http://git-wip-us.apache.org/repos/asf/curator/repo
Commit: http://git-wip-us.apache.org/repos/asf/curator/commit/18b3fc6b
Tree: http://git-wip-us.apache.org/repos/asf/curator/tree/18b3fc6b
Diff: http://git-wip-us.apache.org/repos/asf/curator/diff/18b3fc6b
Branch: refs/heads/curator-rpc
Commit: 18b3fc6bcc13edce22882970a2efd42105d4a034
Parents: abf5fdd
Author: randgalt <ra...@apache.org>
Authored: Tue May 27 11:22:17 2014 -0500
Committer: randgalt <ra...@apache.org>
Committed: Tue May 27 11:22:17 2014 -0500
----------------------------------------------------------------------
.../x/rpc/idl/projection/CreateSpec.java | 28 ++++-
.../projection/CuratorProjectionService.java | 4 +-
curator-x-rpc/src/main/thrift/curator.thrift | 2 +-
.../apache/curator/generated/CreateSpec.java | 122 ++++++++++---------
.../org/apache/curator/x/rpc/TestClient.java | 9 +-
5 files changed, 100 insertions(+), 65 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/curator/blob/18b3fc6b/curator-x-rpc/src/main/java/org/apache/curator/x/rpc/idl/projection/CreateSpec.java
----------------------------------------------------------------------
diff --git a/curator-x-rpc/src/main/java/org/apache/curator/x/rpc/idl/projection/CreateSpec.java b/curator-x-rpc/src/main/java/org/apache/curator/x/rpc/idl/projection/CreateSpec.java
index d451b26..9dc99de 100644
--- a/curator-x-rpc/src/main/java/org/apache/curator/x/rpc/idl/projection/CreateSpec.java
+++ b/curator-x-rpc/src/main/java/org/apache/curator/x/rpc/idl/projection/CreateSpec.java
@@ -20,28 +20,50 @@ package org.apache.curator.x.rpc.idl.projection;
import com.facebook.swift.codec.ThriftField;
import com.facebook.swift.codec.ThriftStruct;
+import org.apache.curator.framework.api.CreateBuilder;
@ThriftStruct
public class CreateSpec
{
+ /**
+ * Path to create
+ */
@ThriftField(1)
public String path;
+ /**
+ * Data for the new node
+ */
@ThriftField(2)
public byte[] data;
+ /**
+ * Create mode. Default is {@link CreateMode#PERSISTENT}
+ */
@ThriftField(3)
public CreateMode mode;
+ /**
+ * If non-null, do the create asynchronously and use this value as the event context
+ */
@ThriftField(4)
- public boolean doAsync;
+ public String asyncContext;
+ /**
+ * If true, compress the data
+ */
@ThriftField(5)
public boolean compressed;
+ /**
+ * If true, create parents as in {@link CreateBuilder#creatingParentsIfNeeded()}
+ */
@ThriftField(6)
public boolean creatingParentsIfNeeded;
+ /**
+ * If true, use protection as in {@link CreateBuilder#withProtection()}
+ */
@ThriftField(7)
public boolean withProtection;
@@ -49,12 +71,12 @@ public class CreateSpec
{
}
- public CreateSpec(String path, byte[] data, CreateMode mode, boolean doAsync, boolean compressed, boolean creatingParentsIfNeeded, boolean withProtection)
+ public CreateSpec(String path, byte[] data, CreateMode mode, String asyncContext, boolean compressed, boolean creatingParentsIfNeeded, boolean withProtection)
{
this.path = path;
this.data = data;
this.mode = mode;
- this.doAsync = doAsync;
+ this.asyncContext = asyncContext;
this.compressed = compressed;
this.creatingParentsIfNeeded = creatingParentsIfNeeded;
this.withProtection = withProtection;
http://git-wip-us.apache.org/repos/asf/curator/blob/18b3fc6b/curator-x-rpc/src/main/java/org/apache/curator/x/rpc/idl/projection/CuratorProjectionService.java
----------------------------------------------------------------------
diff --git a/curator-x-rpc/src/main/java/org/apache/curator/x/rpc/idl/projection/CuratorProjectionService.java b/curator-x-rpc/src/main/java/org/apache/curator/x/rpc/idl/projection/CuratorProjectionService.java
index 81f8838..aa9f286 100644
--- a/curator-x-rpc/src/main/java/org/apache/curator/x/rpc/idl/projection/CuratorProjectionService.java
+++ b/curator-x-rpc/src/main/java/org/apache/curator/x/rpc/idl/projection/CuratorProjectionService.java
@@ -112,7 +112,7 @@ public class CuratorProjectionService
builder = castBuilder(builder, CreateModable.class).withMode(getRealMode(createSpec.mode));
}
- if ( createSpec.doAsync )
+ if ( createSpec.asyncContext != null )
{
BackgroundCallback backgroundCallback = new BackgroundCallback()
{
@@ -122,7 +122,7 @@ public class CuratorProjectionService
addEvent(projection, new RpcCuratorEvent(event));
}
};
- builder = castBuilder(builder, Backgroundable.class).inBackground(backgroundCallback);
+ builder = castBuilder(builder, Backgroundable.class).inBackground(backgroundCallback, createSpec.asyncContext);
}
return String.valueOf(castBuilder(builder, PathAndBytesable.class).forPath(createSpec.path, createSpec.data));
http://git-wip-us.apache.org/repos/asf/curator/blob/18b3fc6b/curator-x-rpc/src/main/thrift/curator.thrift
----------------------------------------------------------------------
diff --git a/curator-x-rpc/src/main/thrift/curator.thrift b/curator-x-rpc/src/main/thrift/curator.thrift
index eac5649..4b09efe 100644
--- a/curator-x-rpc/src/main/thrift/curator.thrift
+++ b/curator-x-rpc/src/main/thrift/curator.thrift
@@ -23,7 +23,7 @@ struct CreateSpec {
1: string path;
2: binary data;
3: CreateMode mode;
- 4: bool doAsync;
+ 4: string asyncContext;
5: bool compressed;
6: bool creatingParentsIfNeeded;
7: bool withProtection;
http://git-wip-us.apache.org/repos/asf/curator/blob/18b3fc6b/curator-x-rpc/src/test/java/org/apache/curator/generated/CreateSpec.java
----------------------------------------------------------------------
diff --git a/curator-x-rpc/src/test/java/org/apache/curator/generated/CreateSpec.java b/curator-x-rpc/src/test/java/org/apache/curator/generated/CreateSpec.java
index 4488285..bd5537d 100644
--- a/curator-x-rpc/src/test/java/org/apache/curator/generated/CreateSpec.java
+++ b/curator-x-rpc/src/test/java/org/apache/curator/generated/CreateSpec.java
@@ -38,7 +38,7 @@ public class CreateSpec implements org.apache.thrift.TBase<CreateSpec, CreateSpe
private static final org.apache.thrift.protocol.TField PATH_FIELD_DESC = new org.apache.thrift.protocol.TField("path", org.apache.thrift.protocol.TType.STRING, (short)1);
private static final org.apache.thrift.protocol.TField DATA_FIELD_DESC = new org.apache.thrift.protocol.TField("data", org.apache.thrift.protocol.TType.STRING, (short)2);
private static final org.apache.thrift.protocol.TField MODE_FIELD_DESC = new org.apache.thrift.protocol.TField("mode", org.apache.thrift.protocol.TType.I32, (short)3);
- private static final org.apache.thrift.protocol.TField DO_ASYNC_FIELD_DESC = new org.apache.thrift.protocol.TField("doAsync", org.apache.thrift.protocol.TType.BOOL, (short)4);
+ private static final org.apache.thrift.protocol.TField ASYNC_CONTEXT_FIELD_DESC = new org.apache.thrift.protocol.TField("asyncContext", org.apache.thrift.protocol.TType.STRING, (short)4);
private static final org.apache.thrift.protocol.TField COMPRESSED_FIELD_DESC = new org.apache.thrift.protocol.TField("compressed", org.apache.thrift.protocol.TType.BOOL, (short)5);
private static final org.apache.thrift.protocol.TField CREATING_PARENTS_IF_NEEDED_FIELD_DESC = new org.apache.thrift.protocol.TField("creatingParentsIfNeeded", org.apache.thrift.protocol.TType.BOOL, (short)6);
private static final org.apache.thrift.protocol.TField WITH_PROTECTION_FIELD_DESC = new org.apache.thrift.protocol.TField("withProtection", org.apache.thrift.protocol.TType.BOOL, (short)7);
@@ -56,7 +56,7 @@ public class CreateSpec implements org.apache.thrift.TBase<CreateSpec, CreateSpe
* @see CreateMode
*/
public CreateMode mode; // required
- public boolean doAsync; // required
+ public String asyncContext; // required
public boolean compressed; // required
public boolean creatingParentsIfNeeded; // required
public boolean withProtection; // required
@@ -70,7 +70,7 @@ public class CreateSpec implements org.apache.thrift.TBase<CreateSpec, CreateSpe
* @see CreateMode
*/
MODE((short)3, "mode"),
- DO_ASYNC((short)4, "doAsync"),
+ ASYNC_CONTEXT((short)4, "asyncContext"),
COMPRESSED((short)5, "compressed"),
CREATING_PARENTS_IF_NEEDED((short)6, "creatingParentsIfNeeded"),
WITH_PROTECTION((short)7, "withProtection");
@@ -94,8 +94,8 @@ public class CreateSpec implements org.apache.thrift.TBase<CreateSpec, CreateSpe
return DATA;
case 3: // MODE
return MODE;
- case 4: // DO_ASYNC
- return DO_ASYNC;
+ case 4: // ASYNC_CONTEXT
+ return ASYNC_CONTEXT;
case 5: // COMPRESSED
return COMPRESSED;
case 6: // CREATING_PARENTS_IF_NEEDED
@@ -142,10 +142,9 @@ public class CreateSpec implements org.apache.thrift.TBase<CreateSpec, CreateSpe
}
// isset id assignments
- private static final int __DOASYNC_ISSET_ID = 0;
- private static final int __COMPRESSED_ISSET_ID = 1;
- private static final int __CREATINGPARENTSIFNEEDED_ISSET_ID = 2;
- private static final int __WITHPROTECTION_ISSET_ID = 3;
+ private static final int __COMPRESSED_ISSET_ID = 0;
+ private static final int __CREATINGPARENTSIFNEEDED_ISSET_ID = 1;
+ private static final int __WITHPROTECTION_ISSET_ID = 2;
private byte __isset_bitfield = 0;
public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
static {
@@ -156,8 +155,8 @@ public class CreateSpec implements org.apache.thrift.TBase<CreateSpec, CreateSpe
new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING , true)));
tmpMap.put(_Fields.MODE, new org.apache.thrift.meta_data.FieldMetaData("mode", org.apache.thrift.TFieldRequirementType.DEFAULT,
new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, CreateMode.class)));
- tmpMap.put(_Fields.DO_ASYNC, new org.apache.thrift.meta_data.FieldMetaData("doAsync", org.apache.thrift.TFieldRequirementType.DEFAULT,
- new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
+ tmpMap.put(_Fields.ASYNC_CONTEXT, new org.apache.thrift.meta_data.FieldMetaData("asyncContext", org.apache.thrift.TFieldRequirementType.DEFAULT,
+ new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
tmpMap.put(_Fields.COMPRESSED, new org.apache.thrift.meta_data.FieldMetaData("compressed", org.apache.thrift.TFieldRequirementType.DEFAULT,
new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
tmpMap.put(_Fields.CREATING_PARENTS_IF_NEEDED, new org.apache.thrift.meta_data.FieldMetaData("creatingParentsIfNeeded", org.apache.thrift.TFieldRequirementType.DEFAULT,
@@ -175,7 +174,7 @@ public class CreateSpec implements org.apache.thrift.TBase<CreateSpec, CreateSpe
String path,
ByteBuffer data,
CreateMode mode,
- boolean doAsync,
+ String asyncContext,
boolean compressed,
boolean creatingParentsIfNeeded,
boolean withProtection)
@@ -184,8 +183,7 @@ public class CreateSpec implements org.apache.thrift.TBase<CreateSpec, CreateSpe
this.path = path;
this.data = data;
this.mode = mode;
- this.doAsync = doAsync;
- setDoAsyncIsSet(true);
+ this.asyncContext = asyncContext;
this.compressed = compressed;
setCompressedIsSet(true);
this.creatingParentsIfNeeded = creatingParentsIfNeeded;
@@ -209,7 +207,9 @@ public class CreateSpec implements org.apache.thrift.TBase<CreateSpec, CreateSpe
if (other.isSetMode()) {
this.mode = other.mode;
}
- this.doAsync = other.doAsync;
+ if (other.isSetAsyncContext()) {
+ this.asyncContext = other.asyncContext;
+ }
this.compressed = other.compressed;
this.creatingParentsIfNeeded = other.creatingParentsIfNeeded;
this.withProtection = other.withProtection;
@@ -224,8 +224,7 @@ public class CreateSpec implements org.apache.thrift.TBase<CreateSpec, CreateSpe
this.path = null;
this.data = null;
this.mode = null;
- setDoAsyncIsSet(false);
- this.doAsync = false;
+ this.asyncContext = null;
setCompressedIsSet(false);
this.compressed = false;
setCreatingParentsIfNeededIsSet(false);
@@ -324,27 +323,28 @@ public class CreateSpec implements org.apache.thrift.TBase<CreateSpec, CreateSpe
}
}
- public boolean isDoAsync() {
- return this.doAsync;
+ public String getAsyncContext() {
+ return this.asyncContext;
}
- public CreateSpec setDoAsync(boolean doAsync) {
- this.doAsync = doAsync;
- setDoAsyncIsSet(true);
+ public CreateSpec setAsyncContext(String asyncContext) {
+ this.asyncContext = asyncContext;
return this;
}
- public void unsetDoAsync() {
- __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __DOASYNC_ISSET_ID);
+ public void unsetAsyncContext() {
+ this.asyncContext = null;
}
- /** Returns true if field doAsync is set (has been assigned a value) and false otherwise */
- public boolean isSetDoAsync() {
- return EncodingUtils.testBit(__isset_bitfield, __DOASYNC_ISSET_ID);
+ /** Returns true if field asyncContext is set (has been assigned a value) and false otherwise */
+ public boolean isSetAsyncContext() {
+ return this.asyncContext != null;
}
- public void setDoAsyncIsSet(boolean value) {
- __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __DOASYNC_ISSET_ID, value);
+ public void setAsyncContextIsSet(boolean value) {
+ if (!value) {
+ this.asyncContext = null;
+ }
}
public boolean isCompressed() {
@@ -442,11 +442,11 @@ public class CreateSpec implements org.apache.thrift.TBase<CreateSpec, CreateSpe
}
break;
- case DO_ASYNC:
+ case ASYNC_CONTEXT:
if (value == null) {
- unsetDoAsync();
+ unsetAsyncContext();
} else {
- setDoAsync((Boolean)value);
+ setAsyncContext((String)value);
}
break;
@@ -488,8 +488,8 @@ public class CreateSpec implements org.apache.thrift.TBase<CreateSpec, CreateSpe
case MODE:
return getMode();
- case DO_ASYNC:
- return Boolean.valueOf(isDoAsync());
+ case ASYNC_CONTEXT:
+ return getAsyncContext();
case COMPRESSED:
return Boolean.valueOf(isCompressed());
@@ -517,8 +517,8 @@ public class CreateSpec implements org.apache.thrift.TBase<CreateSpec, CreateSpe
return isSetData();
case MODE:
return isSetMode();
- case DO_ASYNC:
- return isSetDoAsync();
+ case ASYNC_CONTEXT:
+ return isSetAsyncContext();
case COMPRESSED:
return isSetCompressed();
case CREATING_PARENTS_IF_NEEDED:
@@ -569,12 +569,12 @@ public class CreateSpec implements org.apache.thrift.TBase<CreateSpec, CreateSpe
return false;
}
- boolean this_present_doAsync = true;
- boolean that_present_doAsync = true;
- if (this_present_doAsync || that_present_doAsync) {
- if (!(this_present_doAsync && that_present_doAsync))
+ boolean this_present_asyncContext = true && this.isSetAsyncContext();
+ boolean that_present_asyncContext = true && that.isSetAsyncContext();
+ if (this_present_asyncContext || that_present_asyncContext) {
+ if (!(this_present_asyncContext && that_present_asyncContext))
return false;
- if (this.doAsync != that.doAsync)
+ if (!this.asyncContext.equals(that.asyncContext))
return false;
}
@@ -651,12 +651,12 @@ public class CreateSpec implements org.apache.thrift.TBase<CreateSpec, CreateSpe
return lastComparison;
}
}
- lastComparison = Boolean.valueOf(isSetDoAsync()).compareTo(other.isSetDoAsync());
+ lastComparison = Boolean.valueOf(isSetAsyncContext()).compareTo(other.isSetAsyncContext());
if (lastComparison != 0) {
return lastComparison;
}
- if (isSetDoAsync()) {
- lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.doAsync, other.doAsync);
+ if (isSetAsyncContext()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.asyncContext, other.asyncContext);
if (lastComparison != 0) {
return lastComparison;
}
@@ -735,8 +735,12 @@ public class CreateSpec implements org.apache.thrift.TBase<CreateSpec, CreateSpe
}
first = false;
if (!first) sb.append(", ");
- sb.append("doAsync:");
- sb.append(this.doAsync);
+ sb.append("asyncContext:");
+ if (this.asyncContext == null) {
+ sb.append("null");
+ } else {
+ sb.append(this.asyncContext);
+ }
first = false;
if (!first) sb.append(", ");
sb.append("compressed:");
@@ -819,10 +823,10 @@ public class CreateSpec implements org.apache.thrift.TBase<CreateSpec, CreateSpe
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
}
break;
- case 4: // DO_ASYNC
- if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
- struct.doAsync = iprot.readBool();
- struct.setDoAsyncIsSet(true);
+ case 4: // ASYNC_CONTEXT
+ if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+ struct.asyncContext = iprot.readString();
+ struct.setAsyncContextIsSet(true);
} else {
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
}
@@ -881,9 +885,11 @@ public class CreateSpec implements org.apache.thrift.TBase<CreateSpec, CreateSpe
oprot.writeI32(struct.mode.getValue());
oprot.writeFieldEnd();
}
- oprot.writeFieldBegin(DO_ASYNC_FIELD_DESC);
- oprot.writeBool(struct.doAsync);
- oprot.writeFieldEnd();
+ if (struct.asyncContext != null) {
+ oprot.writeFieldBegin(ASYNC_CONTEXT_FIELD_DESC);
+ oprot.writeString(struct.asyncContext);
+ oprot.writeFieldEnd();
+ }
oprot.writeFieldBegin(COMPRESSED_FIELD_DESC);
oprot.writeBool(struct.compressed);
oprot.writeFieldEnd();
@@ -920,7 +926,7 @@ public class CreateSpec implements org.apache.thrift.TBase<CreateSpec, CreateSpe
if (struct.isSetMode()) {
optionals.set(2);
}
- if (struct.isSetDoAsync()) {
+ if (struct.isSetAsyncContext()) {
optionals.set(3);
}
if (struct.isSetCompressed()) {
@@ -942,8 +948,8 @@ public class CreateSpec implements org.apache.thrift.TBase<CreateSpec, CreateSpe
if (struct.isSetMode()) {
oprot.writeI32(struct.mode.getValue());
}
- if (struct.isSetDoAsync()) {
- oprot.writeBool(struct.doAsync);
+ if (struct.isSetAsyncContext()) {
+ oprot.writeString(struct.asyncContext);
}
if (struct.isSetCompressed()) {
oprot.writeBool(struct.compressed);
@@ -973,8 +979,8 @@ public class CreateSpec implements org.apache.thrift.TBase<CreateSpec, CreateSpe
struct.setModeIsSet(true);
}
if (incoming.get(3)) {
- struct.doAsync = iprot.readBool();
- struct.setDoAsyncIsSet(true);
+ struct.asyncContext = iprot.readString();
+ struct.setAsyncContextIsSet(true);
}
if (incoming.get(4)) {
struct.compressed = iprot.readBool();
http://git-wip-us.apache.org/repos/asf/curator/blob/18b3fc6b/curator-x-rpc/src/test/java/org/apache/curator/x/rpc/TestClient.java
----------------------------------------------------------------------
diff --git a/curator-x-rpc/src/test/java/org/apache/curator/x/rpc/TestClient.java b/curator-x-rpc/src/test/java/org/apache/curator/x/rpc/TestClient.java
index dd1561a..e453343 100644
--- a/curator-x-rpc/src/test/java/org/apache/curator/x/rpc/TestClient.java
+++ b/curator-x-rpc/src/test/java/org/apache/curator/x/rpc/TestClient.java
@@ -20,6 +20,7 @@ package org.apache.curator.x.rpc;
import org.apache.curator.generated.CreateSpec;
import org.apache.curator.generated.CuratorEvent;
+import org.apache.curator.generated.CuratorEventType;
import org.apache.curator.generated.CuratorProjection;
import org.apache.curator.generated.CuratorProjectionSpec;
import org.apache.curator.generated.CuratorService;
@@ -63,6 +64,11 @@ public class TestClient
{
CuratorEvent nextEvent = serviceClient.getNextEvent(curatorProjection);
System.out.println(nextEvent.type);
+ if ( nextEvent.type == CuratorEventType.CREATE )
+ {
+ System.out.println("Async context: " + nextEvent.context);
+ System.out.println("Async path: " + nextEvent.path);
+ }
}
}
catch ( TException e )
@@ -76,7 +82,8 @@ public class TestClient
CreateSpec createSpec = new CreateSpec();
createSpec.path = "/a/b/c";
createSpec.creatingParentsIfNeeded = true;
+ createSpec.asyncContext = "foo";
String path = client.create(curatorProjection, createSpec);
- System.out.println(path);
+ System.out.println("Path: " + path);
}
}