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