tuscany-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From jsdelf...@apache.org
Subject svn commit: r950360 [3/3] - in /tuscany/sca-java-2.x/trunk/samples/logging-scribe: ./ src/ src/main/ src/main/java/ src/main/java/generated/ src/main/java/generated/com/ src/main/java/generated/com/facebook/ src/main/java/generated/com/facebook/fb303/ ...
Date Wed, 02 Jun 2010 04:02:53 GMT
Added: tuscany/sca-java-2.x/trunk/samples/logging-scribe/src/main/java/generated/com/facebook/fb303/fb_status.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/samples/logging-scribe/src/main/java/generated/com/facebook/fb303/fb_status.java?rev=950360&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/samples/logging-scribe/src/main/java/generated/com/facebook/fb303/fb_status.java (added)
+++ tuscany/sca-java-2.x/trunk/samples/logging-scribe/src/main/java/generated/com/facebook/fb303/fb_status.java Wed Jun  2 04:02:52 2010
@@ -0,0 +1,68 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.    
+ */
+
+/**
+ * Autogenerated by Thrift
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ */
+package generated.com.facebook.fb303;
+
+
+import java.util.Map;
+import java.util.HashMap;
+import org.apache.thrift.TEnum;
+/**
+ * Common status reporting mechanism across all services
+ */
+public enum fb_status implements TEnum{
+    DEAD(0),
+    STARTING(1),
+    ALIVE(2),
+    STOPPING(3),
+    STOPPED(4),
+    WARNING(5);
+
+  private static final Map<Integer, fb_status> BY_VALUE = new HashMap<Integer,fb_status>() {{
+    for(fb_status val : fb_status.values()) {
+      put(val.getValue(), val);
+    }
+  }};
+
+  private final int value;
+
+  private fb_status(int value) {
+    this.value = value;
+  }
+
+  /**
+   * Get the integer value of this enum value, as defined in the Thrift IDL.
+   */
+  public int getValue() {
+    return value;
+  }
+
+  /**
+   * Find a the enum type by its integer value, as defined in the Thrift IDL.
+   * @return null if the value is not found.
+   */
+  public static fb_status findByValue(int value) { 
+    return BY_VALUE.get(value);
+  }
+}

Added: tuscany/sca-java-2.x/trunk/samples/logging-scribe/src/main/java/generated/scribe/thrift/LogEntry.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/samples/logging-scribe/src/main/java/generated/scribe/thrift/LogEntry.java?rev=950360&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/samples/logging-scribe/src/main/java/generated/scribe/thrift/LogEntry.java (added)
+++ tuscany/sca-java-2.x/trunk/samples/logging-scribe/src/main/java/generated/scribe/thrift/LogEntry.java Wed Jun  2 04:02:52 2010
@@ -0,0 +1,411 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.    
+ */
+
+/**
+ * Autogenerated by Thrift
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ */
+package generated.scribe.thrift;
+
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.util.Arrays;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.apache.thrift.*;
+import org.apache.thrift.meta_data.*;
+import org.apache.thrift.protocol.*;
+
+public class LogEntry implements TBase<LogEntry._Fields>, java.io.Serializable, Cloneable, Comparable<LogEntry> {
+  private static final TStruct STRUCT_DESC = new TStruct("LogEntry");
+
+  private static final TField CATEGORY_FIELD_DESC = new TField("category", TType.STRING, (short)1);
+  private static final TField MESSAGE_FIELD_DESC = new TField("message", TType.STRING, (short)2);
+
+  public String category;
+  public String message;
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements TFieldIdEnum {
+    CATEGORY((short)1, "category"),
+    MESSAGE((short)2, "message");
+
+    private static final Map<Integer, _Fields> byId = new HashMap<Integer, _Fields>();
+    private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
+
+    static {
+      for (_Fields field : EnumSet.allOf(_Fields.class)) {
+        byId.put((int)field._thriftId, field);
+        byName.put(field.getFieldName(), field);
+      }
+    }
+
+    /**
+     * Find the _Fields constant that matches fieldId, or null if its not found.
+     */
+    public static _Fields findByThriftId(int fieldId) {
+      return byId.get(fieldId);
+    }
+
+    /**
+     * Find the _Fields constant that matches fieldId, throwing an exception
+     * if it is not found.
+     */
+    public static _Fields findByThriftIdOrThrow(int fieldId) {
+      _Fields fields = findByThriftId(fieldId);
+      if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+      return fields;
+    }
+
+    /**
+     * Find the _Fields constant that matches name, or null if its not found.
+     */
+    public static _Fields findByName(String name) {
+      return byName.get(name);
+    }
+
+    private final short _thriftId;
+    private final String _fieldName;
+
+    _Fields(short thriftId, String fieldName) {
+      _thriftId = thriftId;
+      _fieldName = fieldName;
+    }
+
+    public short getThriftFieldId() {
+      return _thriftId;
+    }
+
+    public String getFieldName() {
+      return _fieldName;
+    }
+  }
+
+  // isset id assignments
+
+  public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{
+    put(_Fields.CATEGORY, new FieldMetaData("category", TFieldRequirementType.DEFAULT, 
+        new FieldValueMetaData(TType.STRING)));
+    put(_Fields.MESSAGE, new FieldMetaData("message", TFieldRequirementType.DEFAULT, 
+        new FieldValueMetaData(TType.STRING)));
+  }});
+
+  static {
+    FieldMetaData.addStructMetaDataMap(LogEntry.class, metaDataMap);
+  }
+
+  public LogEntry() {
+  }
+
+  public LogEntry(
+    String category,
+    String message)
+  {
+    this();
+    this.category = category;
+    this.message = message;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public LogEntry(LogEntry other) {
+    if (other.isSetCategory()) {
+      this.category = other.category;
+    }
+    if (other.isSetMessage()) {
+      this.message = other.message;
+    }
+  }
+
+  public LogEntry deepCopy() {
+    return new LogEntry(this);
+  }
+
+  @Deprecated
+  public LogEntry clone() {
+    return new LogEntry(this);
+  }
+
+  public String getCategory() {
+    return this.category;
+  }
+
+  public LogEntry setCategory(String category) {
+    this.category = category;
+    return this;
+  }
+
+  public void unsetCategory() {
+    this.category = null;
+  }
+
+  /** Returns true if field category is set (has been asigned a value) and false otherwise */
+  public boolean isSetCategory() {
+    return this.category != null;
+  }
+
+  public void setCategoryIsSet(boolean value) {
+    if (!value) {
+      this.category = null;
+    }
+  }
+
+  public String getMessage() {
+    return this.message;
+  }
+
+  public LogEntry setMessage(String message) {
+    this.message = message;
+    return this;
+  }
+
+  public void unsetMessage() {
+    this.message = null;
+  }
+
+  /** Returns true if field message is set (has been asigned a value) and false otherwise */
+  public boolean isSetMessage() {
+    return this.message != null;
+  }
+
+  public void setMessageIsSet(boolean value) {
+    if (!value) {
+      this.message = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case CATEGORY:
+      if (value == null) {
+        unsetCategory();
+      } else {
+        setCategory((String)value);
+      }
+      break;
+
+    case MESSAGE:
+      if (value == null) {
+        unsetMessage();
+      } else {
+        setMessage((String)value);
+      }
+      break;
+
+    }
+  }
+
+  public void setFieldValue(int fieldID, Object value) {
+    setFieldValue(_Fields.findByThriftIdOrThrow(fieldID), value);
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case CATEGORY:
+      return getCategory();
+
+    case MESSAGE:
+      return getMessage();
+
+    }
+    throw new IllegalStateException();
+  }
+
+  public Object getFieldValue(int fieldId) {
+    return getFieldValue(_Fields.findByThriftIdOrThrow(fieldId));
+  }
+
+  /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */
+  public boolean isSet(_Fields field) {
+    switch (field) {
+    case CATEGORY:
+      return isSetCategory();
+    case MESSAGE:
+      return isSetMessage();
+    }
+    throw new IllegalStateException();
+  }
+
+  public boolean isSet(int fieldID) {
+    return isSet(_Fields.findByThriftIdOrThrow(fieldID));
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof LogEntry)
+      return this.equals((LogEntry)that);
+    return false;
+  }
+
+  public boolean equals(LogEntry that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_category = true && this.isSetCategory();
+    boolean that_present_category = true && that.isSetCategory();
+    if (this_present_category || that_present_category) {
+      if (!(this_present_category && that_present_category))
+        return false;
+      if (!this.category.equals(that.category))
+        return false;
+    }
+
+    boolean this_present_message = true && this.isSetMessage();
+    boolean that_present_message = true && that.isSetMessage();
+    if (this_present_message || that_present_message) {
+      if (!(this_present_message && that_present_message))
+        return false;
+      if (!this.message.equals(that.message))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    return 0;
+  }
+
+  public int compareTo(LogEntry other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+    LogEntry typedOther = (LogEntry)other;
+
+    lastComparison = Boolean.valueOf(isSetCategory()).compareTo(isSetCategory());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    lastComparison = TBaseHelper.compareTo(category, typedOther.category);
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    lastComparison = Boolean.valueOf(isSetMessage()).compareTo(isSetMessage());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    lastComparison = TBaseHelper.compareTo(message, typedOther.message);
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    return 0;
+  }
+
+  public void read(TProtocol iprot) throws TException {
+    TField field;
+    iprot.readStructBegin();
+    while (true)
+    {
+      field = iprot.readFieldBegin();
+      if (field.type == TType.STOP) { 
+        break;
+      }
+      _Fields fieldId = _Fields.findByThriftId(field.id);
+      if (fieldId == null) {
+        TProtocolUtil.skip(iprot, field.type);
+      } else {
+        switch (fieldId) {
+          case CATEGORY:
+            if (field.type == TType.STRING) {
+              this.category = iprot.readString();
+            } else { 
+              TProtocolUtil.skip(iprot, field.type);
+            }
+            break;
+          case MESSAGE:
+            if (field.type == TType.STRING) {
+              this.message = iprot.readString();
+            } else { 
+              TProtocolUtil.skip(iprot, field.type);
+            }
+            break;
+        }
+        iprot.readFieldEnd();
+      }
+    }
+    iprot.readStructEnd();
+
+    // check for required fields of primitive type, which can't be checked in the validate method
+    validate();
+  }
+
+  public void write(TProtocol oprot) throws TException {
+    validate();
+
+    oprot.writeStructBegin(STRUCT_DESC);
+    if (this.category != null) {
+      oprot.writeFieldBegin(CATEGORY_FIELD_DESC);
+      oprot.writeString(this.category);
+      oprot.writeFieldEnd();
+    }
+    if (this.message != null) {
+      oprot.writeFieldBegin(MESSAGE_FIELD_DESC);
+      oprot.writeString(this.message);
+      oprot.writeFieldEnd();
+    }
+    oprot.writeFieldStop();
+    oprot.writeStructEnd();
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder("LogEntry(");
+    boolean first = true;
+
+    sb.append("category:");
+    if (this.category == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.category);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("message:");
+    if (this.message == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.message);
+    }
+    first = false;
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws TException {
+    // check for required fields
+  }
+
+}
+

Added: tuscany/sca-java-2.x/trunk/samples/logging-scribe/src/main/java/generated/scribe/thrift/ResultCode.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/samples/logging-scribe/src/main/java/generated/scribe/thrift/ResultCode.java?rev=950360&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/samples/logging-scribe/src/main/java/generated/scribe/thrift/ResultCode.java (added)
+++ tuscany/sca-java-2.x/trunk/samples/logging-scribe/src/main/java/generated/scribe/thrift/ResultCode.java Wed Jun  2 04:02:52 2010
@@ -0,0 +1,61 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.    
+ */
+
+/**
+ * Autogenerated by Thrift
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ */
+package generated.scribe.thrift;
+
+
+import java.util.Map;
+import java.util.HashMap;
+import org.apache.thrift.TEnum;
+public enum ResultCode implements TEnum{
+    OK(0),
+    TRY_LATER(1);
+
+  private static final Map<Integer, ResultCode> BY_VALUE = new HashMap<Integer,ResultCode>() {{
+    for(ResultCode val : ResultCode.values()) {
+      put(val.getValue(), val);
+    }
+  }};
+
+  private final int value;
+
+  private ResultCode(int value) {
+    this.value = value;
+  }
+
+  /**
+   * Get the integer value of this enum value, as defined in the Thrift IDL.
+   */
+  public int getValue() {
+    return value;
+  }
+
+  /**
+   * Find a the enum type by its integer value, as defined in the Thrift IDL.
+   * @return null if the value is not found.
+   */
+  public static ResultCode findByValue(int value) { 
+    return BY_VALUE.get(value);
+  }
+}

Added: tuscany/sca-java-2.x/trunk/samples/logging-scribe/src/main/java/generated/scribe/thrift/scribe.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/samples/logging-scribe/src/main/java/generated/scribe/thrift/scribe.java?rev=950360&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/samples/logging-scribe/src/main/java/generated/scribe/thrift/scribe.java (added)
+++ tuscany/sca-java-2.x/trunk/samples/logging-scribe/src/main/java/generated/scribe/thrift/scribe.java Wed Jun  2 04:02:52 2010
@@ -0,0 +1,772 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.    
+ */
+
+/**
+ * Autogenerated by Thrift
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ */
+package generated.scribe.thrift;
+
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.util.Arrays;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.apache.thrift.*;
+import org.apache.thrift.meta_data.*;
+import org.apache.thrift.protocol.*;
+
+public class scribe {
+
+  public interface Iface extends generated.com.facebook.fb303.FacebookService.Iface {
+
+    public ResultCode Log(List<LogEntry> messages) throws TException;
+
+  }
+
+  public static class Client extends generated.com.facebook.fb303.FacebookService.Client implements Iface {
+    public Client(TProtocol prot)
+    {
+      this(prot, prot);
+    }
+
+    public Client(TProtocol iprot, TProtocol oprot)
+    {
+      super(iprot, oprot);
+    }
+
+    public ResultCode Log(List<LogEntry> messages) throws TException
+    {
+      send_Log(messages);
+      return recv_Log();
+    }
+
+    public void send_Log(List<LogEntry> messages) throws TException
+    {
+      oprot_.writeMessageBegin(new TMessage("Log", TMessageType.CALL, seqid_));
+      Log_args args = new Log_args();
+      args.messages = messages;
+      args.write(oprot_);
+      oprot_.writeMessageEnd();
+      oprot_.getTransport().flush();
+    }
+
+    public ResultCode recv_Log() throws TException
+    {
+      TMessage msg = iprot_.readMessageBegin();
+      if (msg.type == TMessageType.EXCEPTION) {
+        TApplicationException x = TApplicationException.read(iprot_);
+        iprot_.readMessageEnd();
+        throw x;
+      }
+      Log_result result = new Log_result();
+      result.read(iprot_);
+      iprot_.readMessageEnd();
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
+      throw new TApplicationException(TApplicationException.MISSING_RESULT, "Log failed: unknown result");
+    }
+
+  }
+  public static class Processor extends generated.com.facebook.fb303.FacebookService.Processor implements TProcessor {
+    private static final Logger LOGGER = LoggerFactory.getLogger(Processor.class.getName());
+    public Processor(Iface iface)
+    {
+      super(iface);
+      iface_ = iface;
+      processMap_.put("Log", new Log());
+    }
+
+    private Iface iface_;
+
+    public boolean process(TProtocol iprot, TProtocol oprot) throws TException
+    {
+      TMessage msg = iprot.readMessageBegin();
+      ProcessFunction fn = processMap_.get(msg.name);
+      if (fn == null) {
+        TProtocolUtil.skip(iprot, TType.STRUCT);
+        iprot.readMessageEnd();
+        TApplicationException x = new TApplicationException(TApplicationException.UNKNOWN_METHOD, "Invalid method name: '"+msg.name+"'");
+        oprot.writeMessageBegin(new TMessage(msg.name, TMessageType.EXCEPTION, msg.seqid));
+        x.write(oprot);
+        oprot.writeMessageEnd();
+        oprot.getTransport().flush();
+        return true;
+      }
+      fn.process(msg.seqid, iprot, oprot);
+      return true;
+    }
+
+    private class Log implements ProcessFunction {
+      public void process(int seqid, TProtocol iprot, TProtocol oprot) throws TException
+      {
+        Log_args args = new Log_args();
+        args.read(iprot);
+        iprot.readMessageEnd();
+        Log_result result = new Log_result();
+        result.success = iface_.Log(args.messages);
+        oprot.writeMessageBegin(new TMessage("Log", TMessageType.REPLY, seqid));
+        result.write(oprot);
+        oprot.writeMessageEnd();
+        oprot.getTransport().flush();
+      }
+
+    }
+
+  }
+
+  public static class Log_args implements TBase<Log_args._Fields>, java.io.Serializable, Cloneable, Comparable<Log_args>   {
+    private static final TStruct STRUCT_DESC = new TStruct("Log_args");
+
+    private static final TField MESSAGES_FIELD_DESC = new TField("messages", TType.LIST, (short)1);
+
+    public List<LogEntry> messages;
+
+    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+    public enum _Fields implements TFieldIdEnum {
+      MESSAGES((short)1, "messages");
+
+      private static final Map<Integer, _Fields> byId = new HashMap<Integer, _Fields>();
+      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
+
+      static {
+        for (_Fields field : EnumSet.allOf(_Fields.class)) {
+          byId.put((int)field._thriftId, field);
+          byName.put(field.getFieldName(), field);
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, or null if its not found.
+       */
+      public static _Fields findByThriftId(int fieldId) {
+        return byId.get(fieldId);
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, throwing an exception
+       * if it is not found.
+       */
+      public static _Fields findByThriftIdOrThrow(int fieldId) {
+        _Fields fields = findByThriftId(fieldId);
+        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+        return fields;
+      }
+
+      /**
+       * Find the _Fields constant that matches name, or null if its not found.
+       */
+      public static _Fields findByName(String name) {
+        return byName.get(name);
+      }
+
+      private final short _thriftId;
+      private final String _fieldName;
+
+      _Fields(short thriftId, String fieldName) {
+        _thriftId = thriftId;
+        _fieldName = fieldName;
+      }
+
+      public short getThriftFieldId() {
+        return _thriftId;
+      }
+
+      public String getFieldName() {
+        return _fieldName;
+      }
+    }
+
+    // isset id assignments
+
+    public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{
+      put(_Fields.MESSAGES, new FieldMetaData("messages", TFieldRequirementType.DEFAULT, 
+          new ListMetaData(TType.LIST, 
+              new StructMetaData(TType.STRUCT, LogEntry.class))));
+    }});
+
+    static {
+      FieldMetaData.addStructMetaDataMap(Log_args.class, metaDataMap);
+    }
+
+    public Log_args() {
+    }
+
+    public Log_args(
+      List<LogEntry> messages)
+    {
+      this();
+      this.messages = messages;
+    }
+
+    /**
+     * Performs a deep copy on <i>other</i>.
+     */
+    public Log_args(Log_args other) {
+      if (other.isSetMessages()) {
+        List<LogEntry> __this__messages = new ArrayList<LogEntry>();
+        for (LogEntry other_element : other.messages) {
+          __this__messages.add(new LogEntry(other_element));
+        }
+        this.messages = __this__messages;
+      }
+    }
+
+    public Log_args deepCopy() {
+      return new Log_args(this);
+    }
+
+    @Deprecated
+    public Log_args clone() {
+      return new Log_args(this);
+    }
+
+    public int getMessagesSize() {
+      return (this.messages == null) ? 0 : this.messages.size();
+    }
+
+    public java.util.Iterator<LogEntry> getMessagesIterator() {
+      return (this.messages == null) ? null : this.messages.iterator();
+    }
+
+    public void addToMessages(LogEntry elem) {
+      if (this.messages == null) {
+        this.messages = new ArrayList<LogEntry>();
+      }
+      this.messages.add(elem);
+    }
+
+    public List<LogEntry> getMessages() {
+      return this.messages;
+    }
+
+    public Log_args setMessages(List<LogEntry> messages) {
+      this.messages = messages;
+      return this;
+    }
+
+    public void unsetMessages() {
+      this.messages = null;
+    }
+
+    /** Returns true if field messages is set (has been asigned a value) and false otherwise */
+    public boolean isSetMessages() {
+      return this.messages != null;
+    }
+
+    public void setMessagesIsSet(boolean value) {
+      if (!value) {
+        this.messages = null;
+      }
+    }
+
+    public void setFieldValue(_Fields field, Object value) {
+      switch (field) {
+      case MESSAGES:
+        if (value == null) {
+          unsetMessages();
+        } else {
+          setMessages((List<LogEntry>)value);
+        }
+        break;
+
+      }
+    }
+
+    public void setFieldValue(int fieldID, Object value) {
+      setFieldValue(_Fields.findByThriftIdOrThrow(fieldID), value);
+    }
+
+    public Object getFieldValue(_Fields field) {
+      switch (field) {
+      case MESSAGES:
+        return getMessages();
+
+      }
+      throw new IllegalStateException();
+    }
+
+    public Object getFieldValue(int fieldId) {
+      return getFieldValue(_Fields.findByThriftIdOrThrow(fieldId));
+    }
+
+    /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */
+    public boolean isSet(_Fields field) {
+      switch (field) {
+      case MESSAGES:
+        return isSetMessages();
+      }
+      throw new IllegalStateException();
+    }
+
+    public boolean isSet(int fieldID) {
+      return isSet(_Fields.findByThriftIdOrThrow(fieldID));
+    }
+
+    @Override
+    public boolean equals(Object that) {
+      if (that == null)
+        return false;
+      if (that instanceof Log_args)
+        return this.equals((Log_args)that);
+      return false;
+    }
+
+    public boolean equals(Log_args that) {
+      if (that == null)
+        return false;
+
+      boolean this_present_messages = true && this.isSetMessages();
+      boolean that_present_messages = true && that.isSetMessages();
+      if (this_present_messages || that_present_messages) {
+        if (!(this_present_messages && that_present_messages))
+          return false;
+        if (!this.messages.equals(that.messages))
+          return false;
+      }
+
+      return true;
+    }
+
+    @Override
+    public int hashCode() {
+      return 0;
+    }
+
+    public int compareTo(Log_args other) {
+      if (!getClass().equals(other.getClass())) {
+        return getClass().getName().compareTo(other.getClass().getName());
+      }
+
+      int lastComparison = 0;
+      Log_args typedOther = (Log_args)other;
+
+      lastComparison = Boolean.valueOf(isSetMessages()).compareTo(isSetMessages());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      lastComparison = TBaseHelper.compareTo(messages, typedOther.messages);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      return 0;
+    }
+
+    public void read(TProtocol iprot) throws TException {
+      TField field;
+      iprot.readStructBegin();
+      while (true)
+      {
+        field = iprot.readFieldBegin();
+        if (field.type == TType.STOP) { 
+          break;
+        }
+        _Fields fieldId = _Fields.findByThriftId(field.id);
+        if (fieldId == null) {
+          TProtocolUtil.skip(iprot, field.type);
+        } else {
+          switch (fieldId) {
+            case MESSAGES:
+              if (field.type == TType.LIST) {
+                {
+                  TList _list0 = iprot.readListBegin();
+                  this.messages = new ArrayList<LogEntry>(_list0.size);
+                  for (int _i1 = 0; _i1 < _list0.size; ++_i1)
+                  {
+                    LogEntry _elem2;
+                    _elem2 = new LogEntry();
+                    _elem2.read(iprot);
+                    this.messages.add(_elem2);
+                  }
+                  iprot.readListEnd();
+                }
+              } else { 
+                TProtocolUtil.skip(iprot, field.type);
+              }
+              break;
+          }
+          iprot.readFieldEnd();
+        }
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      validate();
+    }
+
+    public void write(TProtocol oprot) throws TException {
+      validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (this.messages != null) {
+        oprot.writeFieldBegin(MESSAGES_FIELD_DESC);
+        {
+          oprot.writeListBegin(new TList(TType.STRUCT, this.messages.size()));
+          for (LogEntry _iter3 : this.messages)
+          {
+            _iter3.write(oprot);
+          }
+          oprot.writeListEnd();
+        }
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+    @Override
+    public String toString() {
+      StringBuilder sb = new StringBuilder("Log_args(");
+      boolean first = true;
+
+      sb.append("messages:");
+      if (this.messages == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.messages);
+      }
+      first = false;
+      sb.append(")");
+      return sb.toString();
+    }
+
+    public void validate() throws TException {
+      // check for required fields
+    }
+
+  }
+
+  public static class Log_result implements TBase<Log_result._Fields>, java.io.Serializable, Cloneable, Comparable<Log_result>   {
+    private static final TStruct STRUCT_DESC = new TStruct("Log_result");
+
+    private static final TField SUCCESS_FIELD_DESC = new TField("success", TType.I32, (short)0);
+
+    /**
+     * 
+     * @see ResultCode
+     */
+    public ResultCode success;
+
+    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+    public enum _Fields implements TFieldIdEnum {
+      /**
+       * 
+       * @see ResultCode
+       */
+      SUCCESS((short)0, "success");
+
+      private static final Map<Integer, _Fields> byId = new HashMap<Integer, _Fields>();
+      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
+
+      static {
+        for (_Fields field : EnumSet.allOf(_Fields.class)) {
+          byId.put((int)field._thriftId, field);
+          byName.put(field.getFieldName(), field);
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, or null if its not found.
+       */
+      public static _Fields findByThriftId(int fieldId) {
+        return byId.get(fieldId);
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, throwing an exception
+       * if it is not found.
+       */
+      public static _Fields findByThriftIdOrThrow(int fieldId) {
+        _Fields fields = findByThriftId(fieldId);
+        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+        return fields;
+      }
+
+      /**
+       * Find the _Fields constant that matches name, or null if its not found.
+       */
+      public static _Fields findByName(String name) {
+        return byName.get(name);
+      }
+
+      private final short _thriftId;
+      private final String _fieldName;
+
+      _Fields(short thriftId, String fieldName) {
+        _thriftId = thriftId;
+        _fieldName = fieldName;
+      }
+
+      public short getThriftFieldId() {
+        return _thriftId;
+      }
+
+      public String getFieldName() {
+        return _fieldName;
+      }
+    }
+
+    // isset id assignments
+
+    public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{
+      put(_Fields.SUCCESS, new FieldMetaData("success", TFieldRequirementType.DEFAULT, 
+          new EnumMetaData(TType.ENUM, ResultCode.class)));
+    }});
+
+    static {
+      FieldMetaData.addStructMetaDataMap(Log_result.class, metaDataMap);
+    }
+
+    public Log_result() {
+    }
+
+    public Log_result(
+      ResultCode success)
+    {
+      this();
+      this.success = success;
+    }
+
+    /**
+     * Performs a deep copy on <i>other</i>.
+     */
+    public Log_result(Log_result other) {
+      if (other.isSetSuccess()) {
+        this.success = other.success;
+      }
+    }
+
+    public Log_result deepCopy() {
+      return new Log_result(this);
+    }
+
+    @Deprecated
+    public Log_result clone() {
+      return new Log_result(this);
+    }
+
+    /**
+     * 
+     * @see ResultCode
+     */
+    public ResultCode getSuccess() {
+      return this.success;
+    }
+
+    /**
+     * 
+     * @see ResultCode
+     */
+    public Log_result setSuccess(ResultCode success) {
+      this.success = success;
+      return this;
+    }
+
+    public void unsetSuccess() {
+      this.success = null;
+    }
+
+    /** Returns true if field success is set (has been asigned a value) and false otherwise */
+    public boolean isSetSuccess() {
+      return this.success != null;
+    }
+
+    public void setSuccessIsSet(boolean value) {
+      if (!value) {
+        this.success = null;
+      }
+    }
+
+    public void setFieldValue(_Fields field, Object value) {
+      switch (field) {
+      case SUCCESS:
+        if (value == null) {
+          unsetSuccess();
+        } else {
+          setSuccess((ResultCode)value);
+        }
+        break;
+
+      }
+    }
+
+    public void setFieldValue(int fieldID, Object value) {
+      setFieldValue(_Fields.findByThriftIdOrThrow(fieldID), value);
+    }
+
+    public Object getFieldValue(_Fields field) {
+      switch (field) {
+      case SUCCESS:
+        return getSuccess();
+
+      }
+      throw new IllegalStateException();
+    }
+
+    public Object getFieldValue(int fieldId) {
+      return getFieldValue(_Fields.findByThriftIdOrThrow(fieldId));
+    }
+
+    /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */
+    public boolean isSet(_Fields field) {
+      switch (field) {
+      case SUCCESS:
+        return isSetSuccess();
+      }
+      throw new IllegalStateException();
+    }
+
+    public boolean isSet(int fieldID) {
+      return isSet(_Fields.findByThriftIdOrThrow(fieldID));
+    }
+
+    @Override
+    public boolean equals(Object that) {
+      if (that == null)
+        return false;
+      if (that instanceof Log_result)
+        return this.equals((Log_result)that);
+      return false;
+    }
+
+    public boolean equals(Log_result that) {
+      if (that == null)
+        return false;
+
+      boolean this_present_success = true && this.isSetSuccess();
+      boolean that_present_success = true && that.isSetSuccess();
+      if (this_present_success || that_present_success) {
+        if (!(this_present_success && that_present_success))
+          return false;
+        if (!this.success.equals(that.success))
+          return false;
+      }
+
+      return true;
+    }
+
+    @Override
+    public int hashCode() {
+      return 0;
+    }
+
+    public int compareTo(Log_result other) {
+      if (!getClass().equals(other.getClass())) {
+        return getClass().getName().compareTo(other.getClass().getName());
+      }
+
+      int lastComparison = 0;
+      Log_result typedOther = (Log_result)other;
+
+      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(isSetSuccess());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      lastComparison = TBaseHelper.compareTo(success, typedOther.success);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      return 0;
+    }
+
+    public void read(TProtocol iprot) throws TException {
+      TField field;
+      iprot.readStructBegin();
+      while (true)
+      {
+        field = iprot.readFieldBegin();
+        if (field.type == TType.STOP) { 
+          break;
+        }
+        _Fields fieldId = _Fields.findByThriftId(field.id);
+        if (fieldId == null) {
+          TProtocolUtil.skip(iprot, field.type);
+        } else {
+          switch (fieldId) {
+            case SUCCESS:
+              if (field.type == TType.I32) {
+                this.success = ResultCode.findByValue(iprot.readI32());
+              } else { 
+                TProtocolUtil.skip(iprot, field.type);
+              }
+              break;
+          }
+          iprot.readFieldEnd();
+        }
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      validate();
+    }
+
+    public void write(TProtocol oprot) throws TException {
+      oprot.writeStructBegin(STRUCT_DESC);
+
+      if (this.isSetSuccess()) {
+        oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
+        oprot.writeI32(this.success.getValue());
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+    @Override
+    public String toString() {
+      StringBuilder sb = new StringBuilder("Log_result(");
+      boolean first = true;
+
+      sb.append("success:");
+      if (this.success == null) {
+        sb.append("null");
+      } else {
+        String success_name = success.name();
+        if (success_name != null) {
+          sb.append(success_name);
+          sb.append(" (");
+        }
+        sb.append(this.success);
+        if (success_name != null) {
+          sb.append(")");
+        }
+      }
+      first = false;
+      sb.append(")");
+      return sb.toString();
+    }
+
+    public void validate() throws TException {
+      // check for required fields
+    }
+
+  }
+
+}

Added: tuscany/sca-java-2.x/trunk/samples/logging-scribe/src/main/java/sample/HelloWorld.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/samples/logging-scribe/src/main/java/sample/HelloWorld.java?rev=950360&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/samples/logging-scribe/src/main/java/sample/HelloWorld.java (added)
+++ tuscany/sca-java-2.x/trunk/samples/logging-scribe/src/main/java/sample/HelloWorld.java Wed Jun  2 04:02:52 2010
@@ -0,0 +1,28 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.    
+ */
+package sample;
+
+import org.oasisopen.sca.annotation.Remotable;
+
+@Remotable
+public interface HelloWorld {
+
+    String sayHello(String name);
+
+}

Added: tuscany/sca-java-2.x/trunk/samples/logging-scribe/src/main/java/sample/HelloWorldImpl.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/samples/logging-scribe/src/main/java/sample/HelloWorldImpl.java?rev=950360&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/samples/logging-scribe/src/main/java/sample/HelloWorldImpl.java (added)
+++ tuscany/sca-java-2.x/trunk/samples/logging-scribe/src/main/java/sample/HelloWorldImpl.java Wed Jun  2 04:02:52 2010
@@ -0,0 +1,33 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.    
+ */
+package sample;
+
+import org.oasisopen.sca.annotation.Reference;
+
+public class HelloWorldImpl implements HelloWorld {
+
+    @Reference
+    public Logger logger;
+
+    public String sayHello(String name) {
+        logger.log("sample", "HelloWorldImpl.sayHello " + name);
+        return "Hello " + name;
+    }
+
+}

Added: tuscany/sca-java-2.x/trunk/samples/logging-scribe/src/main/java/sample/Logger.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/samples/logging-scribe/src/main/java/sample/Logger.java?rev=950360&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/samples/logging-scribe/src/main/java/sample/Logger.java (added)
+++ tuscany/sca-java-2.x/trunk/samples/logging-scribe/src/main/java/sample/Logger.java Wed Jun  2 04:02:52 2010
@@ -0,0 +1,28 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.    
+ */
+package sample;
+
+import org.oasisopen.sca.annotation.Remotable;
+
+@Remotable
+public interface Logger {
+
+    int log(String category, String message);
+
+}

Added: tuscany/sca-java-2.x/trunk/samples/logging-scribe/src/main/java/sample/ScribeLoggerImpl.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/samples/logging-scribe/src/main/java/sample/ScribeLoggerImpl.java?rev=950360&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/samples/logging-scribe/src/main/java/sample/ScribeLoggerImpl.java (added)
+++ tuscany/sca-java-2.x/trunk/samples/logging-scribe/src/main/java/sample/ScribeLoggerImpl.java Wed Jun  2 04:02:52 2010
@@ -0,0 +1,76 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.    
+ */
+package sample;
+
+import generated.scribe.thrift.scribe;
+import generated.scribe.thrift.LogEntry;
+import java.util.Collections;
+import org.apache.thrift.TException;
+import org.apache.thrift.transport.TSocket;
+import org.apache.thrift.transport.TTransport;
+import org.apache.thrift.transport.TFramedTransport;
+import org.apache.thrift.protocol.TProtocol;
+import org.apache.thrift.protocol.TBinaryProtocol;
+import org.oasisopen.sca.annotation.Scope;
+import org.oasisopen.sca.annotation.Property;
+import org.oasisopen.sca.annotation.Init;
+import org.oasisopen.sca.annotation.Destroy;
+
+@Scope("COMPOSITE")
+public class ScribeLoggerImpl implements Logger {
+
+    @Property
+    public String host;
+
+    @Property
+    public int port;
+
+    scribe.Client scribe;
+    TTransport transport;
+
+    @Init
+    public void init() {
+        try {
+            final TSocket socket = new TSocket(host, port);
+            socket.setTimeout(1000);
+            transport = new TFramedTransport(socket);
+            final TProtocol protocol = new TBinaryProtocol(transport);
+            scribe = new scribe.Client(protocol);
+            transport.open();
+        } catch (TException e) {
+            e.printStackTrace();
+        }
+    }
+
+    @Destroy
+    public void destroy() {
+        transport.close();
+    }
+
+    public int log(String category, String message) {
+        try {
+            scribe.Log(Collections.singletonList(new LogEntry(category, message)));
+            return 1;
+        } catch (TException e) {
+            e.printStackTrace();
+            return 0;
+        }
+    }
+
+}

Added: tuscany/sca-java-2.x/trunk/samples/logging-scribe/src/main/resources/META-INF/sca-contribution.xml
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/samples/logging-scribe/src/main/resources/META-INF/sca-contribution.xml?rev=950360&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/samples/logging-scribe/src/main/resources/META-INF/sca-contribution.xml (added)
+++ tuscany/sca-java-2.x/trunk/samples/logging-scribe/src/main/resources/META-INF/sca-contribution.xml Wed Jun  2 04:02:52 2010
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.    
+-->
+<contribution xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912"
+              xmlns:sample="http://sample">
+   <deployable composite="sample:scribe"/>
+</contribution>

Added: tuscany/sca-java-2.x/trunk/samples/logging-scribe/src/main/resources/fb303.thrift
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/samples/logging-scribe/src/main/resources/fb303.thrift?rev=950360&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/samples/logging-scribe/src/main/resources/fb303.thrift (added)
+++ tuscany/sca-java-2.x/trunk/samples/logging-scribe/src/main/resources/fb303.thrift Wed Jun  2 04:02:52 2010
@@ -0,0 +1,112 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+/**
+ * fb303.thrift
+ */
+
+namespace java generated.com.facebook.fb303
+namespace cpp facebook.fb303
+namespace perl Facebook.FB303
+
+/**
+ * Common status reporting mechanism across all services
+ */
+enum fb_status {
+  DEAD = 0,
+  STARTING = 1,
+  ALIVE = 2,
+  STOPPING = 3,
+  STOPPED = 4,
+  WARNING = 5,
+}
+
+/**
+ * Standard base service
+ */
+service FacebookService {
+
+  /**
+   * Returns a descriptive name of the service
+   */
+  string getName(),
+
+  /**
+   * Returns the version of the service
+   */
+  string getVersion(),
+
+  /**
+   * Gets the status of this service
+   */
+  fb_status getStatus(),
+
+  /**
+   * User friendly description of status, such as why the service is in
+   * the dead or warning state, or what is being started or stopped.
+   */
+  string getStatusDetails(),
+
+  /**
+   * Gets the counters for this service
+   */
+  map<string, i64> getCounters(),
+
+  /**
+   * Gets the value of a single counter
+   */
+  i64 getCounter(1: string key),
+
+  /**
+   * Sets an option
+   */
+  void setOption(1: string key, 2: string value),
+
+  /**
+   * Gets an option
+   */
+  string getOption(1: string key),
+
+  /**
+   * Gets all options
+   */
+  map<string, string> getOptions(),
+
+  /**
+   * Returns a CPU profile over the given time interval (client and server
+   * must agree on the profile format).
+   */
+  string getCpuProfile(1: i32 profileDurationInSec),
+
+  /**
+   * Returns the unix time that the server has been running since
+   */
+  i64 aliveSince(),
+
+  /**
+   * Tell the server to reload its configuration, reopen log files, etc
+   */
+  oneway void reinitialize(),
+
+  /**
+   * Suggest a shutdown to the server
+   */
+  oneway void shutdown(),
+
+}

Added: tuscany/sca-java-2.x/trunk/samples/logging-scribe/src/main/resources/scribe.composite
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/samples/logging-scribe/src/main/resources/scribe.composite?rev=950360&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/samples/logging-scribe/src/main/resources/scribe.composite (added)
+++ tuscany/sca-java-2.x/trunk/samples/logging-scribe/src/main/resources/scribe.composite Wed Jun  2 04:02:52 2010
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.    
+-->
+<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912"
+           xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.1"
+           targetNamespace="http://sample"
+           name="scribe">
+
+    <component name="HelloWorld">
+        <implementation.java class="sample.HelloWorldImpl"/>
+        <reference name="logger" target="ScribeLogger"/>
+    </component>
+
+    <component name="ScribeLogger">
+        <implementation.java class="sample.ScribeLoggerImpl"/>
+        <property name="host">localhost</property>
+        <property name="port">1463</property>
+    </component>
+
+</composite>

Added: tuscany/sca-java-2.x/trunk/samples/logging-scribe/src/main/resources/scribe.thrift
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/samples/logging-scribe/src/main/resources/scribe.thrift?rev=950360&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/samples/logging-scribe/src/main/resources/scribe.thrift (added)
+++ tuscany/sca-java-2.x/trunk/samples/logging-scribe/src/main/resources/scribe.thrift Wed Jun  2 04:02:52 2010
@@ -0,0 +1,38 @@
+##  Copyright (c) 2007-2008 Facebook
+##
+##  Licensed under the Apache License, Version 2.0 (the "License");
+##  you may not use this file except in compliance with the License.
+##  You may obtain a copy of the License at
+##
+##      http://www.apache.org/licenses/LICENSE-2.0
+##
+##  Unless required by applicable law or agreed to in writing, software
+##  distributed under the License is distributed on an "AS IS" BASIS,
+##  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+##  See the License for the specific language governing permissions and
+##  limitations under the License.
+##
+## See accompanying file LICENSE or visit the Scribe site at:
+## http://developers.facebook.com/scribe/
+
+include "fb303.thrift"
+
+namespace cpp scribe.thrift
+namespace java generated.scribe.thrift
+
+enum ResultCode
+{
+  OK,
+  TRY_LATER
+}
+
+struct LogEntry
+{
+  1:  string category,
+  2:  string message
+}
+
+service scribe extends fb303.FacebookService
+{
+  ResultCode Log(1: list<LogEntry> messages);
+}

Added: tuscany/sca-java-2.x/trunk/samples/logging-scribe/src/test/java/sample/LoggingTest.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/samples/logging-scribe/src/test/java/sample/LoggingTest.java?rev=950360&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/samples/logging-scribe/src/test/java/sample/LoggingTest.java (added)
+++ tuscany/sca-java-2.x/trunk/samples/logging-scribe/src/test/java/sample/LoggingTest.java Wed Jun  2 04:02:52 2010
@@ -0,0 +1,39 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.    
+ */
+package sample;
+
+import org.apache.tuscany.sca.node.Node;
+import org.apache.tuscany.sca.node.NodeFactory;
+import sample.HelloWorld;
+import static org.junit.Assert.assertEquals;
+
+import org.junit.Test;
+
+public class LoggingTest {
+
+    @Test
+    public void testSayHello() {
+        NodeFactory nf = NodeFactory.newInstance();
+        Node node = nf.createNode((String)null, new String[] {"target/classes"}).start();
+        HelloWorld hw = node.getService(HelloWorld.class, "HelloWorld");
+        assertEquals("Hello There", hw.sayHello("There"));
+    	node.stop();
+    }
+
+}



Mime
View raw message