You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rocketmq.apache.org by vi...@apache.org on 2016/12/25 04:06:32 UTC

incubator-rocketmq git commit: Add a vendor-neutral open standard for distributed messaging

Repository: incubator-rocketmq
Updated Branches:
  refs/heads/spec [created] 591dea838


Add a vendor-neutral open standard for distributed messaging


Project: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/commit/591dea83
Tree: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/tree/591dea83
Diff: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/diff/591dea83

Branch: refs/heads/spec
Commit: 591dea83802fc9b946092161b691efb35e584b13
Parents: 774101d
Author: vintagewang <vi...@apache.org>
Authored: Sun Dec 25 12:05:22 2016 +0800
Committer: vintagewang <vi...@apache.org>
Committed: Sun Dec 25 12:05:22 2016 +0800

----------------------------------------------------------------------
 spec/README.md                                  |   1 +
 spec/code/messaging-user-level-api/java/pom.xml |  22 ++++
 .../java/org/apache/openmessaging/Message.java  |  28 +++++
 .../apache/openmessaging/MessagingFactory.java  |  25 +++++
 .../java/org/apache/openmessaging/Producer.java |  31 ++++++
 .../org/apache/openmessaging/PullConsumer.java  |  25 +++++
 .../org/apache/openmessaging/PushConsumer.java  |  25 +++++
 spec/code/messaging-wire-level-api/pom.xml      |  21 ++++
 .../wireapi/broker/BrokerAdminWireAPI.java      |  25 +++++
 .../wireapi/broker/BrokerConsumeWireAPI.java    |  36 +++++++
 .../wireapi/broker/BrokerProduceWireAPI.java    |  45 ++++++++
 .../wireapi/broker/ConnectRequest.java          |  30 ++++++
 .../openmessaging/wireapi/broker/Message.java   |  31 ++++++
 .../wireapi/broker/SendBatchRequest.java        |  26 +++++
 .../wireapi/broker/SendBatchResponse.java       |  25 +++++
 .../wireapi/broker/SendOneRequest.java          |  27 +++++
 .../wireapi/broker/SendOneResponse.java         |  25 +++++
 .../wireapi/broker/SendOrderRequest.java        |  26 +++++
 .../wireapi/broker/SendOrderResponse.java       |  25 +++++
 .../openmessaging/wireapi/broker/Session.java   |  26 +++++
 .../wireapi/broker/Subscription.java            |  25 +++++
 .../wireapi/client/ClientCallbackWireAPI.java   |  34 ++++++
 .../consumer/ConsumerCallbackWireAPI.java       |  24 +++++
 .../wireapi/consumer/ConsumerSelfWireAPI.java   |  22 ++++
 .../wireapi/naming/MetaServiceWireAPI.java      |  25 +++++
 .../wireapi/naming/NameClientReadWireAPI.java   |  21 ++++
 .../wireapi/naming/NameClientWriteWireAPI.java  |  21 ++++
 .../producer/ProducerCallbackWireAPI.java       |  24 +++++
 spec/code/pom.xml                               | 104 +++++++++++++++++++
 29 files changed, 825 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/591dea83/spec/README.md
----------------------------------------------------------------------
diff --git a/spec/README.md b/spec/README.md
new file mode 100644
index 0000000..b828211
--- /dev/null
+++ b/spec/README.md
@@ -0,0 +1 @@
+## A vendor-neutral open standard for distributed messaging
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/591dea83/spec/code/messaging-user-level-api/java/pom.xml
----------------------------------------------------------------------
diff --git a/spec/code/messaging-user-level-api/java/pom.xml b/spec/code/messaging-user-level-api/java/pom.xml
new file mode 100644
index 0000000..225a79f
--- /dev/null
+++ b/spec/code/messaging-user-level-api/java/pom.xml
@@ -0,0 +1,22 @@
+<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <groupId>org.apache</groupId>
+        <artifactId>open-standard-all</artifactId>
+        <version>1.0.0-SNAPSHOT</version>
+        <relativePath>../../pom.xml</relativePath>
+    </parent>
+
+    <modelVersion>4.0.0</modelVersion>
+    <packaging>jar</packaging>
+    <artifactId>messaging-user-level-api</artifactId>
+    <name>messaging-user-level-api ${project.version}</name>
+
+    <dependencies>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+</project>

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/591dea83/spec/code/messaging-user-level-api/java/src/main/java/org/apache/openmessaging/Message.java
----------------------------------------------------------------------
diff --git a/spec/code/messaging-user-level-api/java/src/main/java/org/apache/openmessaging/Message.java b/spec/code/messaging-user-level-api/java/src/main/java/org/apache/openmessaging/Message.java
new file mode 100644
index 0000000..e4061f1
--- /dev/null
+++ b/spec/code/messaging-user-level-api/java/src/main/java/org/apache/openmessaging/Message.java
@@ -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 org.apache.openmessaging;
+
+
+/**
+ * @author vintagewang@apache.org
+ * @since 2016-12-25
+ */
+public interface Message {
+    void start();
+
+    void shutdown();
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/591dea83/spec/code/messaging-user-level-api/java/src/main/java/org/apache/openmessaging/MessagingFactory.java
----------------------------------------------------------------------
diff --git a/spec/code/messaging-user-level-api/java/src/main/java/org/apache/openmessaging/MessagingFactory.java b/spec/code/messaging-user-level-api/java/src/main/java/org/apache/openmessaging/MessagingFactory.java
new file mode 100644
index 0000000..3720a01
--- /dev/null
+++ b/spec/code/messaging-user-level-api/java/src/main/java/org/apache/openmessaging/MessagingFactory.java
@@ -0,0 +1,25 @@
+/**
+ * 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 org.apache.openmessaging;
+
+/**
+ * @author vintagewang@apache.org
+ * @since 2016-12-25
+ */
+public class MessagingFactory {
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/591dea83/spec/code/messaging-user-level-api/java/src/main/java/org/apache/openmessaging/Producer.java
----------------------------------------------------------------------
diff --git a/spec/code/messaging-user-level-api/java/src/main/java/org/apache/openmessaging/Producer.java b/spec/code/messaging-user-level-api/java/src/main/java/org/apache/openmessaging/Producer.java
new file mode 100644
index 0000000..4eb34a8
--- /dev/null
+++ b/spec/code/messaging-user-level-api/java/src/main/java/org/apache/openmessaging/Producer.java
@@ -0,0 +1,31 @@
+/**
+ * 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 org.apache.openmessaging;
+
+/**
+ * @author vintagewang@apache.org
+ * @since 2016-12-25
+ */
+public interface Producer {
+    void start();
+
+    void shutdown();
+
+    void send(final Message message);
+
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/591dea83/spec/code/messaging-user-level-api/java/src/main/java/org/apache/openmessaging/PullConsumer.java
----------------------------------------------------------------------
diff --git a/spec/code/messaging-user-level-api/java/src/main/java/org/apache/openmessaging/PullConsumer.java b/spec/code/messaging-user-level-api/java/src/main/java/org/apache/openmessaging/PullConsumer.java
new file mode 100644
index 0000000..fe2d819
--- /dev/null
+++ b/spec/code/messaging-user-level-api/java/src/main/java/org/apache/openmessaging/PullConsumer.java
@@ -0,0 +1,25 @@
+/**
+ * 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 org.apache.openmessaging;
+
+/**
+ * @author vintagewang@apache.org
+ * @since 2016-12-25
+ */
+public interface PullConsumer {
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/591dea83/spec/code/messaging-user-level-api/java/src/main/java/org/apache/openmessaging/PushConsumer.java
----------------------------------------------------------------------
diff --git a/spec/code/messaging-user-level-api/java/src/main/java/org/apache/openmessaging/PushConsumer.java b/spec/code/messaging-user-level-api/java/src/main/java/org/apache/openmessaging/PushConsumer.java
new file mode 100644
index 0000000..e233b1a
--- /dev/null
+++ b/spec/code/messaging-user-level-api/java/src/main/java/org/apache/openmessaging/PushConsumer.java
@@ -0,0 +1,25 @@
+/**
+ * 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 org.apache.openmessaging;
+
+/**
+ * @author vintagewang@apache.org
+ * @since 2016-12-25
+ */
+public interface PushConsumer {
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/591dea83/spec/code/messaging-wire-level-api/pom.xml
----------------------------------------------------------------------
diff --git a/spec/code/messaging-wire-level-api/pom.xml b/spec/code/messaging-wire-level-api/pom.xml
new file mode 100644
index 0000000..af6e6ab
--- /dev/null
+++ b/spec/code/messaging-wire-level-api/pom.xml
@@ -0,0 +1,21 @@
+<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <groupId>org.apache</groupId>
+        <artifactId>open-standard-all</artifactId>
+        <version>1.0.0-SNAPSHOT</version>
+    </parent>
+
+    <modelVersion>4.0.0</modelVersion>
+    <packaging>jar</packaging>
+    <artifactId>messaging-wire-level-api</artifactId>
+    <name>messaging-wire-level-api ${project.version}</name>
+
+    <dependencies>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+</project>

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/591dea83/spec/code/messaging-wire-level-api/src/main/java/org/apache/openmessaging/wireapi/broker/BrokerAdminWireAPI.java
----------------------------------------------------------------------
diff --git a/spec/code/messaging-wire-level-api/src/main/java/org/apache/openmessaging/wireapi/broker/BrokerAdminWireAPI.java b/spec/code/messaging-wire-level-api/src/main/java/org/apache/openmessaging/wireapi/broker/BrokerAdminWireAPI.java
new file mode 100644
index 0000000..7af470f
--- /dev/null
+++ b/spec/code/messaging-wire-level-api/src/main/java/org/apache/openmessaging/wireapi/broker/BrokerAdminWireAPI.java
@@ -0,0 +1,25 @@
+/**
+ * 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 org.apache.openmessaging.wireapi.broker;
+
+/**
+ * @author vintagewang@apache.org
+ * @since 2016-12-25
+ */
+public interface BrokerAdminWireAPI {
+}

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/591dea83/spec/code/messaging-wire-level-api/src/main/java/org/apache/openmessaging/wireapi/broker/BrokerConsumeWireAPI.java
----------------------------------------------------------------------
diff --git a/spec/code/messaging-wire-level-api/src/main/java/org/apache/openmessaging/wireapi/broker/BrokerConsumeWireAPI.java b/spec/code/messaging-wire-level-api/src/main/java/org/apache/openmessaging/wireapi/broker/BrokerConsumeWireAPI.java
new file mode 100644
index 0000000..0473ea7
--- /dev/null
+++ b/spec/code/messaging-wire-level-api/src/main/java/org/apache/openmessaging/wireapi/broker/BrokerConsumeWireAPI.java
@@ -0,0 +1,36 @@
+/**
+ * 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 org.apache.openmessaging.wireapi.broker;
+
+/**
+ * @author vintagewang@apache.org
+ * @since 2016-12-25
+ */
+public interface BrokerConsumeWireAPI {
+    Session connect(ConnectRequest request);
+
+    void disconnect(Session session);
+
+    void pull();
+
+    void ack();
+
+    void attachQueue(final Subscription subscription);
+
+    void detachQueue();
+}

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/591dea83/spec/code/messaging-wire-level-api/src/main/java/org/apache/openmessaging/wireapi/broker/BrokerProduceWireAPI.java
----------------------------------------------------------------------
diff --git a/spec/code/messaging-wire-level-api/src/main/java/org/apache/openmessaging/wireapi/broker/BrokerProduceWireAPI.java b/spec/code/messaging-wire-level-api/src/main/java/org/apache/openmessaging/wireapi/broker/BrokerProduceWireAPI.java
new file mode 100644
index 0000000..d0259e0
--- /dev/null
+++ b/spec/code/messaging-wire-level-api/src/main/java/org/apache/openmessaging/wireapi/broker/BrokerProduceWireAPI.java
@@ -0,0 +1,45 @@
+/**
+ * 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 org.apache.openmessaging.wireapi.broker;
+
+/**
+ * @author vintagewang@apache.org
+ * @since 2016-12-25
+ */
+public interface BrokerProduceWireAPI {
+    Session connect(ConnectRequest request);
+
+    void disconnect(Session session);
+
+    /**
+     * support big message
+     */
+    SendOneResponse sendOne(final SendOneRequest request);
+
+    SendBatchResponse sendBatch(final SendBatchRequest request);
+
+    SendOrderResponse sendOrder(final SendOrderRequest request);
+
+    void beginTransaction();
+
+    void sendInTransaction();
+
+    void commitTransaction();
+
+    void rollbackTransaction();
+}

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/591dea83/spec/code/messaging-wire-level-api/src/main/java/org/apache/openmessaging/wireapi/broker/ConnectRequest.java
----------------------------------------------------------------------
diff --git a/spec/code/messaging-wire-level-api/src/main/java/org/apache/openmessaging/wireapi/broker/ConnectRequest.java b/spec/code/messaging-wire-level-api/src/main/java/org/apache/openmessaging/wireapi/broker/ConnectRequest.java
new file mode 100644
index 0000000..c3ac40b
--- /dev/null
+++ b/spec/code/messaging-wire-level-api/src/main/java/org/apache/openmessaging/wireapi/broker/ConnectRequest.java
@@ -0,0 +1,30 @@
+/**
+ * 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 org.apache.openmessaging.wireapi.broker;
+
+/**
+ * @author vintagewang@apache.org
+ * @since 2016-12-25
+ */
+public class ConnectRequest {
+    private String localHostIP;
+    private String authKey;
+    private String appId;
+    private byte language;
+    private byte version;
+}

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/591dea83/spec/code/messaging-wire-level-api/src/main/java/org/apache/openmessaging/wireapi/broker/Message.java
----------------------------------------------------------------------
diff --git a/spec/code/messaging-wire-level-api/src/main/java/org/apache/openmessaging/wireapi/broker/Message.java b/spec/code/messaging-wire-level-api/src/main/java/org/apache/openmessaging/wireapi/broker/Message.java
new file mode 100644
index 0000000..008d4ba
--- /dev/null
+++ b/spec/code/messaging-wire-level-api/src/main/java/org/apache/openmessaging/wireapi/broker/Message.java
@@ -0,0 +1,31 @@
+/**
+ * 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 org.apache.openmessaging.wireapi.broker;
+
+
+import java.util.Map;
+
+/**
+ * @author vintagewang@apache.org
+ * @since 2016-12-25
+ */
+public class Message {
+    private Map<String, String> systemHeader;
+    private Map<String, String> userHeader;
+    private byte[] body;
+}

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/591dea83/spec/code/messaging-wire-level-api/src/main/java/org/apache/openmessaging/wireapi/broker/SendBatchRequest.java
----------------------------------------------------------------------
diff --git a/spec/code/messaging-wire-level-api/src/main/java/org/apache/openmessaging/wireapi/broker/SendBatchRequest.java b/spec/code/messaging-wire-level-api/src/main/java/org/apache/openmessaging/wireapi/broker/SendBatchRequest.java
new file mode 100644
index 0000000..4e0db2e
--- /dev/null
+++ b/spec/code/messaging-wire-level-api/src/main/java/org/apache/openmessaging/wireapi/broker/SendBatchRequest.java
@@ -0,0 +1,26 @@
+/**
+ * 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 org.apache.openmessaging.wireapi.broker;
+
+/**
+ * @author vintagewang@apache.org
+ * @since 2016-12-25
+ */
+public class SendBatchRequest {
+    private Message message;
+}

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/591dea83/spec/code/messaging-wire-level-api/src/main/java/org/apache/openmessaging/wireapi/broker/SendBatchResponse.java
----------------------------------------------------------------------
diff --git a/spec/code/messaging-wire-level-api/src/main/java/org/apache/openmessaging/wireapi/broker/SendBatchResponse.java b/spec/code/messaging-wire-level-api/src/main/java/org/apache/openmessaging/wireapi/broker/SendBatchResponse.java
new file mode 100644
index 0000000..ef83cbb
--- /dev/null
+++ b/spec/code/messaging-wire-level-api/src/main/java/org/apache/openmessaging/wireapi/broker/SendBatchResponse.java
@@ -0,0 +1,25 @@
+/**
+ * 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 org.apache.openmessaging.wireapi.broker;
+
+/**
+ * @author vintagewang@apache.org
+ * @since 2016-12-25
+ */
+public class SendBatchResponse {
+}

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/591dea83/spec/code/messaging-wire-level-api/src/main/java/org/apache/openmessaging/wireapi/broker/SendOneRequest.java
----------------------------------------------------------------------
diff --git a/spec/code/messaging-wire-level-api/src/main/java/org/apache/openmessaging/wireapi/broker/SendOneRequest.java b/spec/code/messaging-wire-level-api/src/main/java/org/apache/openmessaging/wireapi/broker/SendOneRequest.java
new file mode 100644
index 0000000..c9f7073
--- /dev/null
+++ b/spec/code/messaging-wire-level-api/src/main/java/org/apache/openmessaging/wireapi/broker/SendOneRequest.java
@@ -0,0 +1,27 @@
+/**
+ * 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 org.apache.openmessaging.wireapi.broker;
+
+/**
+ * @author vintagewang@apache.org
+ * @since 2016-12-25
+ */
+public class SendOneRequest {
+    private Session session;
+    private Message message;
+}

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/591dea83/spec/code/messaging-wire-level-api/src/main/java/org/apache/openmessaging/wireapi/broker/SendOneResponse.java
----------------------------------------------------------------------
diff --git a/spec/code/messaging-wire-level-api/src/main/java/org/apache/openmessaging/wireapi/broker/SendOneResponse.java b/spec/code/messaging-wire-level-api/src/main/java/org/apache/openmessaging/wireapi/broker/SendOneResponse.java
new file mode 100644
index 0000000..e421337
--- /dev/null
+++ b/spec/code/messaging-wire-level-api/src/main/java/org/apache/openmessaging/wireapi/broker/SendOneResponse.java
@@ -0,0 +1,25 @@
+/**
+ * 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 org.apache.openmessaging.wireapi.broker;
+
+/**
+ * @author vintagewang@apache.org
+ * @since 2016-12-25
+ */
+public class SendOneResponse {
+}

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/591dea83/spec/code/messaging-wire-level-api/src/main/java/org/apache/openmessaging/wireapi/broker/SendOrderRequest.java
----------------------------------------------------------------------
diff --git a/spec/code/messaging-wire-level-api/src/main/java/org/apache/openmessaging/wireapi/broker/SendOrderRequest.java b/spec/code/messaging-wire-level-api/src/main/java/org/apache/openmessaging/wireapi/broker/SendOrderRequest.java
new file mode 100644
index 0000000..3ad6ec8
--- /dev/null
+++ b/spec/code/messaging-wire-level-api/src/main/java/org/apache/openmessaging/wireapi/broker/SendOrderRequest.java
@@ -0,0 +1,26 @@
+/**
+ * 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 org.apache.openmessaging.wireapi.broker;
+
+/**
+ * @author vintagewang@apache.org
+ * @since 2016-12-25
+ */
+public class SendOrderRequest {
+    private Message message;
+}

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/591dea83/spec/code/messaging-wire-level-api/src/main/java/org/apache/openmessaging/wireapi/broker/SendOrderResponse.java
----------------------------------------------------------------------
diff --git a/spec/code/messaging-wire-level-api/src/main/java/org/apache/openmessaging/wireapi/broker/SendOrderResponse.java b/spec/code/messaging-wire-level-api/src/main/java/org/apache/openmessaging/wireapi/broker/SendOrderResponse.java
new file mode 100644
index 0000000..9c52e69
--- /dev/null
+++ b/spec/code/messaging-wire-level-api/src/main/java/org/apache/openmessaging/wireapi/broker/SendOrderResponse.java
@@ -0,0 +1,25 @@
+/**
+ * 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 org.apache.openmessaging.wireapi.broker;
+
+/**
+ * @author vintagewang@apache.org
+ * @since 2016-12-25
+ */
+public class SendOrderResponse {
+}

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/591dea83/spec/code/messaging-wire-level-api/src/main/java/org/apache/openmessaging/wireapi/broker/Session.java
----------------------------------------------------------------------
diff --git a/spec/code/messaging-wire-level-api/src/main/java/org/apache/openmessaging/wireapi/broker/Session.java b/spec/code/messaging-wire-level-api/src/main/java/org/apache/openmessaging/wireapi/broker/Session.java
new file mode 100644
index 0000000..0c0a7b7
--- /dev/null
+++ b/spec/code/messaging-wire-level-api/src/main/java/org/apache/openmessaging/wireapi/broker/Session.java
@@ -0,0 +1,26 @@
+/**
+ * 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 org.apache.openmessaging.wireapi.broker;
+
+/**
+ * @author vintagewang@apache.org
+ * @since 2016-12-25
+ */
+public class Session {
+    private String sessionID;
+}

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/591dea83/spec/code/messaging-wire-level-api/src/main/java/org/apache/openmessaging/wireapi/broker/Subscription.java
----------------------------------------------------------------------
diff --git a/spec/code/messaging-wire-level-api/src/main/java/org/apache/openmessaging/wireapi/broker/Subscription.java b/spec/code/messaging-wire-level-api/src/main/java/org/apache/openmessaging/wireapi/broker/Subscription.java
new file mode 100644
index 0000000..b3d2314
--- /dev/null
+++ b/spec/code/messaging-wire-level-api/src/main/java/org/apache/openmessaging/wireapi/broker/Subscription.java
@@ -0,0 +1,25 @@
+/**
+ * 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 org.apache.openmessaging.wireapi.broker;
+
+/**
+ * @author vintagewang@apache.org
+ * @since 2016-12-25
+ */
+public class Subscription {
+}

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/591dea83/spec/code/messaging-wire-level-api/src/main/java/org/apache/openmessaging/wireapi/client/ClientCallbackWireAPI.java
----------------------------------------------------------------------
diff --git a/spec/code/messaging-wire-level-api/src/main/java/org/apache/openmessaging/wireapi/client/ClientCallbackWireAPI.java b/spec/code/messaging-wire-level-api/src/main/java/org/apache/openmessaging/wireapi/client/ClientCallbackWireAPI.java
new file mode 100644
index 0000000..0247fba
--- /dev/null
+++ b/spec/code/messaging-wire-level-api/src/main/java/org/apache/openmessaging/wireapi/client/ClientCallbackWireAPI.java
@@ -0,0 +1,34 @@
+/**
+ * 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 org.apache.openmessaging.wireapi.client;
+
+/**
+ * @author vintagewang@apache.org
+ * @since 2016-12-25
+ */
+public interface ClientCallbackWireAPI {
+    void ping();
+
+    void metrics();
+
+    void stack();
+
+    void setQoS();
+
+    void latestEvent();
+}

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/591dea83/spec/code/messaging-wire-level-api/src/main/java/org/apache/openmessaging/wireapi/consumer/ConsumerCallbackWireAPI.java
----------------------------------------------------------------------
diff --git a/spec/code/messaging-wire-level-api/src/main/java/org/apache/openmessaging/wireapi/consumer/ConsumerCallbackWireAPI.java b/spec/code/messaging-wire-level-api/src/main/java/org/apache/openmessaging/wireapi/consumer/ConsumerCallbackWireAPI.java
new file mode 100644
index 0000000..ba281ef
--- /dev/null
+++ b/spec/code/messaging-wire-level-api/src/main/java/org/apache/openmessaging/wireapi/consumer/ConsumerCallbackWireAPI.java
@@ -0,0 +1,24 @@
+/**
+ * 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 org.apache.openmessaging.wireapi.consumer;
+
+import org.apache.openmessaging.wireapi.client.ClientCallbackWireAPI;
+
+public interface ConsumerCallbackWireAPI extends ClientCallbackWireAPI {
+    void push();
+}

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/591dea83/spec/code/messaging-wire-level-api/src/main/java/org/apache/openmessaging/wireapi/consumer/ConsumerSelfWireAPI.java
----------------------------------------------------------------------
diff --git a/spec/code/messaging-wire-level-api/src/main/java/org/apache/openmessaging/wireapi/consumer/ConsumerSelfWireAPI.java b/spec/code/messaging-wire-level-api/src/main/java/org/apache/openmessaging/wireapi/consumer/ConsumerSelfWireAPI.java
new file mode 100644
index 0000000..52409cd
--- /dev/null
+++ b/spec/code/messaging-wire-level-api/src/main/java/org/apache/openmessaging/wireapi/consumer/ConsumerSelfWireAPI.java
@@ -0,0 +1,22 @@
+/**
+ * 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 org.apache.openmessaging.wireapi.consumer;
+
+public interface ConsumerSelfWireAPI {
+    void forward();
+}

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/591dea83/spec/code/messaging-wire-level-api/src/main/java/org/apache/openmessaging/wireapi/naming/MetaServiceWireAPI.java
----------------------------------------------------------------------
diff --git a/spec/code/messaging-wire-level-api/src/main/java/org/apache/openmessaging/wireapi/naming/MetaServiceWireAPI.java b/spec/code/messaging-wire-level-api/src/main/java/org/apache/openmessaging/wireapi/naming/MetaServiceWireAPI.java
new file mode 100644
index 0000000..a81e965
--- /dev/null
+++ b/spec/code/messaging-wire-level-api/src/main/java/org/apache/openmessaging/wireapi/naming/MetaServiceWireAPI.java
@@ -0,0 +1,25 @@
+/**
+ * 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 org.apache.openmessaging.wireapi.naming;
+
+
+public interface MetaServiceWireAPI {
+    void createTopic();
+
+    void createQuque();
+}

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/591dea83/spec/code/messaging-wire-level-api/src/main/java/org/apache/openmessaging/wireapi/naming/NameClientReadWireAPI.java
----------------------------------------------------------------------
diff --git a/spec/code/messaging-wire-level-api/src/main/java/org/apache/openmessaging/wireapi/naming/NameClientReadWireAPI.java b/spec/code/messaging-wire-level-api/src/main/java/org/apache/openmessaging/wireapi/naming/NameClientReadWireAPI.java
new file mode 100644
index 0000000..b2cca66
--- /dev/null
+++ b/spec/code/messaging-wire-level-api/src/main/java/org/apache/openmessaging/wireapi/naming/NameClientReadWireAPI.java
@@ -0,0 +1,21 @@
+/**
+ * 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 org.apache.openmessaging.wireapi.naming;
+
+public interface NameClientReadWireAPI {
+}

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/591dea83/spec/code/messaging-wire-level-api/src/main/java/org/apache/openmessaging/wireapi/naming/NameClientWriteWireAPI.java
----------------------------------------------------------------------
diff --git a/spec/code/messaging-wire-level-api/src/main/java/org/apache/openmessaging/wireapi/naming/NameClientWriteWireAPI.java b/spec/code/messaging-wire-level-api/src/main/java/org/apache/openmessaging/wireapi/naming/NameClientWriteWireAPI.java
new file mode 100644
index 0000000..2cd845e
--- /dev/null
+++ b/spec/code/messaging-wire-level-api/src/main/java/org/apache/openmessaging/wireapi/naming/NameClientWriteWireAPI.java
@@ -0,0 +1,21 @@
+/**
+ * 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 org.apache.openmessaging.wireapi.naming;
+
+public interface NameClientWriteWireAPI {
+}

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/591dea83/spec/code/messaging-wire-level-api/src/main/java/org/apache/openmessaging/wireapi/producer/ProducerCallbackWireAPI.java
----------------------------------------------------------------------
diff --git a/spec/code/messaging-wire-level-api/src/main/java/org/apache/openmessaging/wireapi/producer/ProducerCallbackWireAPI.java b/spec/code/messaging-wire-level-api/src/main/java/org/apache/openmessaging/wireapi/producer/ProducerCallbackWireAPI.java
new file mode 100644
index 0000000..ff9fd27
--- /dev/null
+++ b/spec/code/messaging-wire-level-api/src/main/java/org/apache/openmessaging/wireapi/producer/ProducerCallbackWireAPI.java
@@ -0,0 +1,24 @@
+/**
+ * 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 org.apache.openmessaging.wireapi.producer;
+
+import org.apache.openmessaging.wireapi.client.ClientCallbackWireAPI;
+
+public interface ProducerCallbackWireAPI extends ClientCallbackWireAPI {
+    void checkTransactionState();
+}

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/591dea83/spec/code/pom.xml
----------------------------------------------------------------------
diff --git a/spec/code/pom.xml b/spec/code/pom.xml
new file mode 100644
index 0000000..fe83fc5
--- /dev/null
+++ b/spec/code/pom.xml
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <inceptionYear>2016</inceptionYear>
+    <groupId>org.apache</groupId>
+    <artifactId>open-standard-all</artifactId>
+    <version>1.0.0-SNAPSHOT</version>
+    <packaging>pom</packaging>
+    <name>open-standard-all ${project.version}</name>
+
+    <modules>
+        <module>messaging-user-level-api/java</module>
+        <module>messaging-wire-level-api</module>
+    </modules>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <version>2.3.2</version>
+                <configuration>
+                    <source>1.6</source>
+                    <target>1.6</target>
+                    <encoding>UTF-8</encoding>
+                    <showDeprecation>true</showDeprecation>
+                    <showWarnings>true</showWarnings>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>com.atlassian.maven.plugins</groupId>
+                <artifactId>maven-clover2-plugin</artifactId>
+                <configuration>
+                    <licenseLocation>clover.license</licenseLocation>
+                    <generateHistorical>true</generateHistorical>
+                    <excludes>
+                        <exclude>**/notjunit/*.java</exclude>
+                    </excludes>
+                    <generateXml>true</generateXml>
+                    <generateHtml>true</generateHtml>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-eclipse-plugin</artifactId>
+                <version>2.5.1</version>
+                <configuration>
+                    <downloadSources>true</downloadSources>
+                    <downloadJavadocs>false</downloadJavadocs>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-surefire-plugin</artifactId>
+                <version>2.3</version>
+                <configuration>
+                    <argLine>-Xms512m -Xmx1024m</argLine>
+                    <forkMode>always</forkMode>
+                    <includes>
+                        <include>**/*Test.java</include>
+                    </includes>
+                </configuration>
+            </plugin>
+
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-site-plugin</artifactId>
+                <configuration>
+                    <locales>zh_CN</locales>
+                    <outputEncoding>UTF-8</outputEncoding>
+                    <inputEncoding>UTF-8</inputEncoding>
+                </configuration>
+            </plugin>
+        </plugins>
+
+        <resources>
+            <resource>
+                <directory>src/main/resources</directory>
+                <filtering>false</filtering>
+            </resource>
+        </resources>
+    </build>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>${project.groupId}</groupId>
+                <artifactId>messaging-user-level-api</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>${project.groupId}</groupId>
+                <artifactId>messaging-wire-level-api</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>junit</groupId>
+                <artifactId>junit</artifactId>
+                <version>4.11</version>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+</project>