You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by rh...@apache.org on 2008/08/21 04:59:54 UTC

svn commit: r687540 [1/3] - in /incubator/qpid/branches/qpid.rnr: java/common/ java/common/src/main/java/org/apache/qpid/transport/ java/common/src/main/java/org/apache/qpid/transport/network/ specs/

Author: rhs
Date: Wed Aug 20 19:59:53 2008
New Revision: 687540

URL: http://svn.apache.org/viewvc?rev=687540&view=rev
Log:
added codegen for 1-0-draft xml

Added:
    incubator/qpid/branches/qpid.rnr/specs/amqp.1-0-draft.dtd   (with props)
    incubator/qpid/branches/qpid.rnr/specs/amqp.1-0-draft.xml   (with props)
Modified:
    incubator/qpid/branches/qpid.rnr/java/common/Composite.tpl
    incubator/qpid/branches/qpid.rnr/java/common/Constant.tpl
    incubator/qpid/branches/qpid.rnr/java/common/Enum.tpl
    incubator/qpid/branches/qpid.rnr/java/common/Invoker.tpl
    incubator/qpid/branches/qpid.rnr/java/common/MethodDelegate.tpl
    incubator/qpid/branches/qpid.rnr/java/common/Option.tpl
    incubator/qpid/branches/qpid.rnr/java/common/StructFactory.tpl
    incubator/qpid/branches/qpid.rnr/java/common/Type.tpl
    incubator/qpid/branches/qpid.rnr/java/common/build.xml
    incubator/qpid/branches/qpid.rnr/java/common/codegen
    incubator/qpid/branches/qpid.rnr/java/common/src/main/java/org/apache/qpid/transport/Method.java
    incubator/qpid/branches/qpid.rnr/java/common/src/main/java/org/apache/qpid/transport/SessionDelegate.java
    incubator/qpid/branches/qpid.rnr/java/common/src/main/java/org/apache/qpid/transport/Struct.java
    incubator/qpid/branches/qpid.rnr/java/common/src/main/java/org/apache/qpid/transport/network/Assembler.java
    incubator/qpid/branches/qpid.rnr/java/common/src/main/java/org/apache/qpid/transport/network/Disassembler.java

Modified: incubator/qpid/branches/qpid.rnr/java/common/Composite.tpl
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/qpid.rnr/java/common/Composite.tpl?rev=687540&r1=687539&r2=687540&view=diff
==============================================================================
--- incubator/qpid/branches/qpid.rnr/java/common/Composite.tpl (original)
+++ incubator/qpid/branches/qpid.rnr/java/common/Composite.tpl Wed Aug 20 19:59:53 2008
@@ -1,4 +1,4 @@
-package org.apache.qpid.transport;
+package $(pkg);
 
 import java.nio.ByteBuffer;
 import java.util.ArrayList;
@@ -7,6 +7,11 @@
 import java.util.Map;
 import java.util.UUID;
 
+import org.apache.qpid.transport.Future;
+import org.apache.qpid.transport.Method;
+import org.apache.qpid.transport.RangeSet;
+import org.apache.qpid.transport.Struct;
+
 import org.apache.qpid.transport.codec.Decoder;
 import org.apache.qpid.transport.codec.Encodable;
 import org.apache.qpid.transport.codec.Encoder;
@@ -68,7 +73,7 @@
         return $pack;
     }
 
-    public final boolean hasPayload() {
+    public final boolean hasPayloadSegment() {
         return $payload;
     }
 
@@ -130,7 +135,7 @@
 }
     }
 
-    public <C> void dispatch(C context, MethodDelegate<C> delegate) {
+    public final <C> void dispatch(C context, MethodDelegate<C> delegate) {
         delegate.$(dromedary(name))(context, this);
     }
 

Modified: incubator/qpid/branches/qpid.rnr/java/common/Constant.tpl
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/qpid.rnr/java/common/Constant.tpl?rev=687540&r1=687539&r2=687540&view=diff
==============================================================================
--- incubator/qpid/branches/qpid.rnr/java/common/Constant.tpl (original)
+++ incubator/qpid/branches/qpid.rnr/java/common/Constant.tpl Wed Aug 20 19:59:53 2008
@@ -1,4 +1,4 @@
-package org.apache.qpid.transport;
+package $(pkg);
 
 ${from genutil import *}
 

Modified: incubator/qpid/branches/qpid.rnr/java/common/Enum.tpl
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/qpid.rnr/java/common/Enum.tpl?rev=687540&r1=687539&r2=687540&view=diff
==============================================================================
--- incubator/qpid/branches/qpid.rnr/java/common/Enum.tpl (original)
+++ incubator/qpid/branches/qpid.rnr/java/common/Enum.tpl Wed Aug 20 19:59:53 2008
@@ -1,4 +1,4 @@
-package org.apache.qpid.transport;
+package $(pkg);
 
 public enum $name {
 ${

Modified: incubator/qpid/branches/qpid.rnr/java/common/Invoker.tpl
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/qpid.rnr/java/common/Invoker.tpl?rev=687540&r1=687539&r2=687540&view=diff
==============================================================================
--- incubator/qpid/branches/qpid.rnr/java/common/Invoker.tpl (original)
+++ incubator/qpid/branches/qpid.rnr/java/common/Invoker.tpl Wed Aug 20 19:59:53 2008
@@ -1,10 +1,15 @@
-package org.apache.qpid.transport;
+package $(pkg);
 
 import java.nio.ByteBuffer;
 import java.util.List;
 import java.util.Map;
 import java.util.UUID;
 
+import org.apache.qpid.transport.Future;
+import org.apache.qpid.transport.Method;
+import org.apache.qpid.transport.RangeSet;
+import org.apache.qpid.transport.Struct;
+
 public abstract class Invoker {
 
     protected abstract void invoke(Method method);

Modified: incubator/qpid/branches/qpid.rnr/java/common/MethodDelegate.tpl
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/qpid.rnr/java/common/MethodDelegate.tpl?rev=687540&r1=687539&r2=687540&view=diff
==============================================================================
--- incubator/qpid/branches/qpid.rnr/java/common/MethodDelegate.tpl (original)
+++ incubator/qpid/branches/qpid.rnr/java/common/MethodDelegate.tpl Wed Aug 20 19:59:53 2008
@@ -1,4 +1,4 @@
-package org.apache.qpid.transport;
+package $(pkg);
 
 public abstract class MethodDelegate<C> {
 

Modified: incubator/qpid/branches/qpid.rnr/java/common/Option.tpl
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/qpid.rnr/java/common/Option.tpl?rev=687540&r1=687539&r2=687540&view=diff
==============================================================================
--- incubator/qpid/branches/qpid.rnr/java/common/Option.tpl (original)
+++ incubator/qpid/branches/qpid.rnr/java/common/Option.tpl Wed Aug 20 19:59:53 2008
@@ -1,20 +1,24 @@
-package org.apache.qpid.transport;
+package $(pkg);
 
 public enum Option {
 
 ${
 from genutil import *
 
-options = {}
-
+names = ["NONE", "SYNC", "BATCH"]
 for c in composites:
   for f in c.query["field"]:
     t = resolve_type(f)
     if t["@name"] == "bit":
-      option = scream(f["@name"])
-      if not options.has_key(option):
-        options[option] = None
-        out("    $option,\n")}
-    BATCH,
-    NONE
+      names.append(scream(f["@name"]))
+
+options = {}
+
+for option in names:
+ if not options.has_key(option):
+    if options:
+      out(",\n    ")
+    options[option] = None
+    out("$option")
+}
 }

Modified: incubator/qpid/branches/qpid.rnr/java/common/StructFactory.tpl
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/qpid.rnr/java/common/StructFactory.tpl?rev=687540&r1=687539&r2=687540&view=diff
==============================================================================
--- incubator/qpid/branches/qpid.rnr/java/common/StructFactory.tpl (original)
+++ incubator/qpid/branches/qpid.rnr/java/common/StructFactory.tpl Wed Aug 20 19:59:53 2008
@@ -1,4 +1,6 @@
-package org.apache.qpid.transport;
+package $(pkg);
+
+import org.apache.qpid.transport.Struct;
 
 class StructFactory {
 

Modified: incubator/qpid/branches/qpid.rnr/java/common/Type.tpl
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/qpid.rnr/java/common/Type.tpl?rev=687540&r1=687539&r2=687540&view=diff
==============================================================================
--- incubator/qpid/branches/qpid.rnr/java/common/Type.tpl (original)
+++ incubator/qpid/branches/qpid.rnr/java/common/Type.tpl Wed Aug 20 19:59:53 2008
@@ -1,4 +1,4 @@
-package org.apache.qpid.transport;
+package $(pkg);
 
 ${from genutil import *}
 

Modified: incubator/qpid/branches/qpid.rnr/java/common/build.xml
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/qpid.rnr/java/common/build.xml?rev=687540&r1=687539&r2=687540&view=diff
==============================================================================
--- incubator/qpid/branches/qpid.rnr/java/common/build.xml (original)
+++ incubator/qpid/branches/qpid.rnr/java/common/build.xml Wed Aug 20 19:59:53 2008
@@ -30,7 +30,8 @@
   <property name="xml.spec.list" value="${xml.spec.dir}/amqp.0-8.xml ${xml.spec.dir}/amqp.0-9.xml" />
   <property name="mllib.dir" value="${project.root}/../python" />
   <property name="gentools.timestamp" location="${generated.dir}/gentools.timestamp" />
-  <property name="jython.timestamp" location="${generated.dir}/jython.timestamp" />
+  <property name="jython.timestamp" location="${module.precompiled}/jython.timestamp" />
+  <property name="jython_1_0.timestamp" location="${module.precompiled}/jython_1_0.timestamp" />
 
   <target name="check_jython_deps">
     <uptodate property="jython.notRequired" targetfile="${jython.timestamp}">
@@ -46,6 +47,7 @@
       <arg value="${module.precompiled}"/>
       <arg value="${xml.spec.dir}/amqp.0-10-qpid-errata.xml"/>
       <arg value="${basedir}"/>
+      <arg value="org/apache/qpid/transport"/>
       <classpath>
         <pathelement location="jython-2.2-rc2.jar"/>
       </classpath>
@@ -53,6 +55,28 @@
     <touch file="${jython.timestamp}" />
   </target>
 
+  <target name="check_jython_deps_1_0">
+    <uptodate property="jython.notRequired_1_0" targetfile="${jython_1_0.timestamp}">
+      <srcfiles dir="${xml.spec.dir}" includes="amqp.1-0-draft.xml" />
+    </uptodate>
+  </target>
+
+  <target name="jython_1_0" depends="check_jython_deps_1_0" unless="jython.notRequired_1_0">
+    <java classname="org.python.util.jython" fork="true" failonerror="true">
+      <arg value="-Dpython.cachedir.skip=true"/>
+      <arg value="-Dpython.path=${basedir}/jython-lib.jar/Lib${path.separator}${mllib.dir}"/>
+      <arg value="${basedir}/codegen"/>
+      <arg value="${module.precompiled}"/>
+      <arg value="${xml.spec.dir}/amqp.1-0-draft.xml"/>
+      <arg value="${basedir}"/>
+      <arg value="org/apache/qpid/transport/v1_0"/>
+      <classpath>
+        <pathelement location="jython-2.2-rc2.jar"/>
+      </classpath>
+    </java>
+    <touch file="${jython_1_0.timestamp}" />
+  </target>
+
   <target name="compile_gentools">
     <ant dir="${gentools.home}" />
   </target>
@@ -103,6 +127,6 @@
     </echo>
   </target>
 
-  <target name="precompile" depends="gentools,jython,version"/>
+  <target name="precompile" depends="gentools,jython,jython_1_0,version"/>
 
 </project>

Modified: incubator/qpid/branches/qpid.rnr/java/common/codegen
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/qpid.rnr/java/common/codegen?rev=687540&r1=687539&r2=687540&view=diff
==============================================================================
--- incubator/qpid/branches/qpid.rnr/java/common/codegen (original)
+++ incubator/qpid/branches/qpid.rnr/java/common/codegen Wed Aug 20 19:59:53 2008
@@ -7,7 +7,9 @@
 out_dir = sys.argv[1]
 spec_file = sys.argv[2]
 tpl_dir = sys.argv[3]
-pkg_dir = os.path.join(out_dir, "org/apache/qpid/transport")
+pkg_rel = sys.argv[4]
+pkg_dir = os.path.join(out_dir, pkg_rel)
+pkg = pkg_rel.replace("/", ".")
 
 if not os.path.exists(pkg_dir):
   os.makedirs(pkg_dir)
@@ -33,8 +35,8 @@
   f.write(p.output)
   f.close()
 
-execute("Type.java", "Type.tpl", spec = spec)
-execute("Constant.java", "Constant.tpl", spec = spec)
+execute("Type.java", "Type.tpl", spec = spec, pkg = pkg)
+execute("Constant.java", "Constant.tpl", spec = spec, pkg = pkg)
 
 structs = spec.query["amqp/struct"] + \
     spec.query["amqp/class/struct", excludes] + \
@@ -46,12 +48,12 @@
 
 for c in composites:
   name = cname(c)
-  execute("%s.java" % name, "Composite.tpl", type = c, name = name)
+  execute("%s.java" % name, "Composite.tpl", type = c, name = name, pkg = pkg)
 
-execute("MethodDelegate.java", "MethodDelegate.tpl", composites = composites)
-execute("Option.java", "Option.tpl", composites = composites)
-execute("Invoker.java", "Invoker.tpl", composites = controls + commands)
-execute("StructFactory.java", "StructFactory.tpl", composites = composites)
+execute("MethodDelegate.java", "MethodDelegate.tpl", composites = composites, pkg = pkg)
+execute("Option.java", "Option.tpl", composites = composites, pkg = pkg)
+execute("Invoker.java", "Invoker.tpl", composites = controls + commands, pkg = pkg)
+execute("StructFactory.java", "StructFactory.tpl", composites = composites, pkg = pkg)
 
 def is_enum(nd):
   return nd["enum"] is not None
@@ -61,4 +63,4 @@
 
 for e in enums:
   name = cname(e)
-  execute("%s.java" % name, "Enum.tpl", name = name, type = e)
+  execute("%s.java" % name, "Enum.tpl", name = name, type = e, pkg = pkg)

Modified: incubator/qpid/branches/qpid.rnr/java/common/src/main/java/org/apache/qpid/transport/Method.java
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/qpid.rnr/java/common/src/main/java/org/apache/qpid/transport/Method.java?rev=687540&r1=687539&r2=687540&view=diff
==============================================================================
--- incubator/qpid/branches/qpid.rnr/java/common/src/main/java/org/apache/qpid/transport/Method.java (original)
+++ incubator/qpid/branches/qpid.rnr/java/common/src/main/java/org/apache/qpid/transport/Method.java Wed Aug 20 19:59:53 2008
@@ -75,7 +75,7 @@
         return sync;
     }
 
-    final void setSync(boolean value)
+    protected final void setSync(boolean value)
     {
         this.sync = value;
     }
@@ -85,12 +85,12 @@
         return batch;
     }
 
-    final void setBatch(boolean value)
+    protected final void setBatch(boolean value)
     {
         this.batch = value;
     }
 
-    public abstract boolean hasPayload();
+    public abstract boolean hasPayloadSegment();
 
     public Header getHeader()
     {
@@ -114,7 +114,16 @@
 
     public abstract byte getEncodedTrack();
 
-    public abstract <C> void dispatch(C context, MethodDelegate<C> delegate);
+    public <C> void dispatch(C context, MethodDelegate<C> delegate)
+    {
+        throw new UnsupportedOperationException();
+    }
+
+    public <C> void dispatch
+        (C context, org.apache.qpid.transport.v1_0.MethodDelegate<C> delegate)
+    {
+        throw new UnsupportedOperationException();
+    }
 
     public <C> void delegate(C context, ProtocolDelegate<C> delegate)
     {

Modified: incubator/qpid/branches/qpid.rnr/java/common/src/main/java/org/apache/qpid/transport/SessionDelegate.java
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/qpid.rnr/java/common/src/main/java/org/apache/qpid/transport/SessionDelegate.java?rev=687540&r1=687539&r2=687540&view=diff
==============================================================================
--- incubator/qpid/branches/qpid.rnr/java/common/src/main/java/org/apache/qpid/transport/SessionDelegate.java (original)
+++ incubator/qpid/branches/qpid.rnr/java/common/src/main/java/org/apache/qpid/transport/SessionDelegate.java Wed Aug 20 19:59:53 2008
@@ -42,7 +42,7 @@
     public void command(Session ssn, Method method) {
         ssn.identify(method);
         method.dispatch(ssn, this);
-        if (!method.hasPayload())
+        if (!method.hasPayloadSegment())
         {
             ssn.processed(method);
         }

Modified: incubator/qpid/branches/qpid.rnr/java/common/src/main/java/org/apache/qpid/transport/Struct.java
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/qpid.rnr/java/common/src/main/java/org/apache/qpid/transport/Struct.java?rev=687540&r1=687539&r2=687540&view=diff
==============================================================================
--- incubator/qpid/branches/qpid.rnr/java/common/src/main/java/org/apache/qpid/transport/Struct.java (original)
+++ incubator/qpid/branches/qpid.rnr/java/common/src/main/java/org/apache/qpid/transport/Struct.java Wed Aug 20 19:59:53 2008
@@ -42,7 +42,7 @@
         return StructFactory.create(type);
     }
 
-    boolean dirty = true;
+    protected boolean dirty = true;
 
     public boolean isDirty()
     {

Modified: incubator/qpid/branches/qpid.rnr/java/common/src/main/java/org/apache/qpid/transport/network/Assembler.java
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/qpid.rnr/java/common/src/main/java/org/apache/qpid/transport/network/Assembler.java?rev=687540&r1=687539&r2=687540&view=diff
==============================================================================
--- incubator/qpid/branches/qpid.rnr/java/common/src/main/java/org/apache/qpid/transport/network/Assembler.java (original)
+++ incubator/qpid/branches/qpid.rnr/java/common/src/main/java/org/apache/qpid/transport/network/Assembler.java Wed Aug 20 19:59:53 2008
@@ -189,7 +189,7 @@
             dec.readUint16();
             command = Method.create(commandType);
             command.read(dec);
-            if (command.hasPayload())
+            if (command.hasPayloadSegment())
             {
                 incomplete[channel] = command;
             }

Modified: incubator/qpid/branches/qpid.rnr/java/common/src/main/java/org/apache/qpid/transport/network/Disassembler.java
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/qpid.rnr/java/common/src/main/java/org/apache/qpid/transport/network/Disassembler.java?rev=687540&r1=687539&r2=687540&view=diff
==============================================================================
--- incubator/qpid/branches/qpid.rnr/java/common/src/main/java/org/apache/qpid/transport/network/Disassembler.java (original)
+++ incubator/qpid/branches/qpid.rnr/java/common/src/main/java/org/apache/qpid/transport/network/Disassembler.java Wed Aug 20 19:59:53 2008
@@ -198,7 +198,7 @@
 
         byte flags = FIRST_SEG;
 
-        boolean payload = method.hasPayload();
+        boolean payload = method.hasPayloadSegment();
         if (!payload)
         {
             flags |= LAST_SEG;

Added: incubator/qpid/branches/qpid.rnr/specs/amqp.1-0-draft.dtd
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/qpid.rnr/specs/amqp.1-0-draft.dtd?rev=687540&view=auto
==============================================================================
--- incubator/qpid/branches/qpid.rnr/specs/amqp.1-0-draft.dtd (added)
+++ incubator/qpid/branches/qpid.rnr/specs/amqp.1-0-draft.dtd Wed Aug 20 19:59:53 2008
@@ -0,0 +1,246 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+  Copyright Notice
+  ================
+  (c) Copyright Cisco Systems, Credit Suisse, Deutsche Börse Systems, Envoy Technologies, Inc.,
+  Goldman Sachs, IONA Technologies PLC, iMatix Corporation sprl.,JPMorgan Chase Bank Inc. N.A, 
+  Novell, Rabbit Technologies Ltd., Red Hat, Inc., TWIST Process Innovations ltd, and 29West Inc
+  2006, 2007. All rights reserved.
+
+  License
+  =======
+  JPMorgan Chase Bank & Co., Cisco Systems, Inc., Envoy Technologies Inc., iMatix Corporation, IONA
+  Technologies, Red Hat, Inc., TWIST Process Innovations, and 29West Inc. (collectively, the
+  "Authors") each hereby grants to you a worldwide, perpetual, royalty-free, nontransferable,
+  nonexclusive license to (i) copy, display, distribute and implement the Advanced Messaging Queue
+  Protocol ("AMQP") Specification and (ii) the Licensed Claims that are held by the Authors, all for
+  the purpose of implementing the Advanced Messaging Queue Protocol Specification. Your license and
+  any rights under this Agreement will terminate immediately without notice from any Author if you
+  bring any claim, suit, demand, or action related to the Advanced Messaging Queue Protocol
+  Specification against any Author. Upon termination, you shall destroy all copies of the Advanced
+  Messaging Queue Protocol Specification in your possession or control.
+
+  As used hereunder, "Licensed Claims" means those claims of a patent or patent application,
+  throughout the world, excluding design patents and design registrations, owned or controlled, or
+  that can be sublicensed without fee and in compliance with the requirements of this Agreement, by
+  an Author or its affiliates now or at any future time and which would necessarily be infringed by
+  implementation of the Advanced Messaging Queue Protocol Specification. A claim is necessarily
+  infringed hereunder only when it is not possible to avoid infringing it because there is no
+  plausible non-infringing alternative for implementing the required portions of the Advanced
+  Messaging Queue Protocol Specification. Notwithstanding the foregoing, Licensed Claims shall not
+  include any claims other than as set forth above even if contained in the same patent as Licensed
+  Claims; or that read solely on any implementations of any portion of the Advanced Messaging Queue
+  Protocol Specification that are not required by the Advanced Messaging Queue Protocol
+  Specification, or that, if licensed, would require a payment of royalties by the licensor to
+  unaffiliated third parties. Moreover, Licensed Claims shall not include (i) any enabling
+  technologies that may be necessary to make or use any Licensed Product but are not themselves
+  expressly set forth in the Advanced Messaging Queue Protocol Specification (e.g., semiconductor
+  manufacturing technology, compiler technology, object oriented technology, networking technology,
+  operating system technology, and the like); or (ii) the implementation of other published
+  standards developed elsewhere and merely referred to in the body of the Advanced Messaging Queue
+  Protocol Specification, or (iii) any Licensed Product and any combinations thereof the purpose or
+  function of which is not required for compliance with the Advanced Messaging Queue Protocol
+  Specification. For purposes of this definition, the Advanced Messaging Queue Protocol
+  Specification shall be deemed to include both architectural and interconnection requirements
+  essential for interoperability and may also include supporting source code artifacts where such
+  architectural, interconnection requirements and source code artifacts are expressly identified as
+  being required or documentation to achieve compliance with the Advanced Messaging Queue Protocol
+  Specification.
+
+  As used hereunder, "Licensed Products" means only those specific portions of products (hardware,
+  software or combinations thereof) that implement and are compliant with all relevant portions of
+  the Advanced Messaging Queue Protocol Specification.
+
+  The following disclaimers, which you hereby also acknowledge as to any use you may make of the
+  Advanced Messaging Queue Protocol Specification:
+
+  THE ADVANCED MESSAGING QUEUE PROTOCOL SPECIFICATION IS PROVIDED "AS IS," AND THE AUTHORS MAKE NO
+  REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, WARRANTIES OF
+  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, OR TITLE; THAT THE CONTENTS
+  OF THE ADVANCED MESSAGING QUEUE PROTOCOL SPECIFICATION ARE SUITABLE FOR ANY PURPOSE; NOR THAT THE
+  IMPLEMENTATION OF THE ADVANCED MESSAGING QUEUE PROTOCOL SPECIFICATION WILL NOT INFRINGE ANY THIRD
+  PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.
+
+  THE AUTHORS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL
+  DAMAGES ARISING OUT OF OR RELATING TO ANY USE, IMPLEMENTATION OR OF THE ADVANCED
+  MESSAGING QUEUE PROTOCOL SPECIFICATION.
+
+  The name and trademarks of the Authors may NOT be used in any manner, including advertising or
+  publicity pertaining to the Advanced Messaging Queue Protocol Specification or its contents
+  without specific, written prior permission. Title to copyright in the Advanced Messaging Queue
+  Protocol Specification will at all times remain with the Authors.
+
+  No other rights are granted by implication, estoppel or otherwise.
+
+  Upon termination of your license or rights under this Agreement, you shall destroy all copies of
+  the Advanced Messaging Queue Protocol Specification in your possession or control.
+
+  Trademarks
+  ==========
+  "JPMorgan", "JPMorgan Chase", "Chase", the JPMorgan Chase logo and the Octagon Symbol are
+  trademarks of JPMorgan Chase & Co.
+
+  IMATIX and the iMatix logo are trademarks of iMatix Corporation sprl.
+
+  IONA, IONA Technologies, and the IONA logos are trademarks of IONA Technologies PLC and/or its
+  subsidiaries.
+
+  LINUX is a trademark of Linus Torvalds. RED HAT and JBOSS are registered trademarks of Red Hat,
+  Inc. in the US and other countries.
+
+  Java, all Java-based trademarks and OpenOffice.org are trademarks of Sun Microsystems, Inc. in the
+  United States, other countries, or both.
+
+  Other company, product, or service names may be trademarks or service marks of others.
+
+  Links to full AMQP specification:
+  =================================
+  http://www.envoytech.org/spec/amq/
+  http://www.iona.com/opensource/amqp/
+  http://www.redhat.com/solutions/specifications/amqp/
+  http://www.twiststandards.org/tiki-index.php?page=AMQ
+  http://www.imatix.com/amqp
+-->
+
+<!ELEMENT amqp (doc|type|struct|domain|constant|class)*>
+<!ATTLIST amqp
+    xmlns CDATA #IMPLIED
+	major CDATA #REQUIRED
+	minor CDATA #REQUIRED
+	port CDATA #REQUIRED
+	comment CDATA #IMPLIED
+>
+
+<!ELEMENT constant (doc|rule)*>
+<!ATTLIST constant
+	name CDATA #REQUIRED
+	value CDATA #REQUIRED
+	label CDATA #IMPLIED
+>
+
+<!ELEMENT type (doc|rule)*>
+<!ATTLIST type
+        name CDATA #REQUIRED
+        label CDATA #IMPLIED
+        code CDATA #IMPLIED
+        fixed-width CDATA #IMPLIED
+        variable-width CDATA #IMPLIED
+>
+
+<!ELEMENT domain (doc|rule|enum)*>
+<!ATTLIST domain
+	name CDATA #REQUIRED
+	type CDATA #IMPLIED
+	label CDATA #IMPLIED
+>
+
+<!ELEMENT struct (field|doc|rule)*>
+<!ATTLIST struct
+        name CDATA #REQUIRED
+        label CDATA #IMPLIED
+        size (0|1|2|4) #IMPLIED
+        pack (0|1|2|4) #IMPLIED
+        code CDATA #IMPLIED>
+
+<!ELEMENT enum (choice)*>
+
+<!ELEMENT choice (doc|rule)*>
+<!ATTLIST choice
+        name CDATA #REQUIRED
+        value CDATA #REQUIRED
+>
+
+<!ELEMENT class (doc|role|rule|struct|domain|control|command)*>
+<!ATTLIST class
+	name CDATA #REQUIRED
+	code CDATA #REQUIRED
+	label CDATA #IMPLIED
+>
+
+<!ELEMENT role (doc|rule)*>
+<!ATTLIST role
+        name CDATA #REQUIRED
+        implement (MAY|SHOULD|MUST) #REQUIRED
+>
+
+<!ELEMENT control (doc|implement|rule|field|response)*>
+<!ATTLIST control
+	name CDATA #REQUIRED
+	code CDATA #REQUIRED
+	label CDATA #IMPLIED
+>
+
+<!ELEMENT command ((doc|implement|rule|exception|field|response)*, result?, segments?)>
+<!ATTLIST command
+	name CDATA #REQUIRED
+	code CDATA #REQUIRED
+	label CDATA #IMPLIED
+>
+
+<!ELEMENT implement (doc|rule)*>
+<!ATTLIST implement
+        role CDATA #REQUIRED
+	handle (MAY|SHOULD|MUST) #REQUIRED
+        send (MAY|SHOULD|MUST) #IMPLIED
+>
+
+<!ELEMENT field (doc|rule|exception)*>
+<!ATTLIST field
+	name CDATA #REQUIRED
+	type CDATA #IMPLIED
+        default CDATA #IMPLIED
+	code CDATA #IMPLIED
+	label CDATA #IMPLIED
+	required CDATA #IMPLIED
+>
+
+<!ELEMENT rule (doc*)>
+<!ATTLIST rule
+	name CDATA #REQUIRED
+	label CDATA #IMPLIED
+>
+
+<!ELEMENT exception (doc*)>
+<!ATTLIST exception
+	name CDATA #REQUIRED
+	error-code CDATA #IMPLIED
+	label CDATA #IMPLIED
+>
+
+<!ELEMENT response (doc|rule)*>
+<!ATTLIST response
+	name CDATA #IMPLIED
+>
+
+<!ELEMENT result (doc|rule|struct)*>
+<!ATTLIST result
+        type CDATA #IMPLIED
+>
+
+<!ELEMENT segments (doc|rule|header|body)*>
+
+<!ELEMENT header (doc|rule|entry)*>
+<!ATTLIST header
+        required (true|false) #IMPLIED
+>
+
+<!ELEMENT entry (doc|rule)*>
+<!ATTLIST entry
+        type CDATA #REQUIRED
+>
+
+<!ELEMENT body (doc|rule)*>
+<!ATTLIST body
+    required (true|false) #IMPLIED
+>
+
+<!ELEMENT doc (#PCDATA|xref)*>
+<!ATTLIST doc
+	type (grammar|scenario|picture|bnf|todo) #IMPLIED
+	title CDATA #IMPLIED
+>
+
+<!ELEMENT  xref (#PCDATA)>
+<!ATTLIST xref
+  ref CDATA #REQUIRED>

Propchange: incubator/qpid/branches/qpid.rnr/specs/amqp.1-0-draft.dtd
------------------------------------------------------------------------------
    svn:eol-style = native