From be9f473e274d6cfe4cf8d8b04dd3f5a171ba9de4 Mon Sep 17 00:00:00 2001 From: Stephen Vinoski Date: Sat, 18 Nov 2006 03:48:15 +0000 Subject: complete bringing initial maven work to trunk git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@476431 13f79535-47bb-0310-9956-ffa450edef68 --- .../src/main/resources/ProtocolVersionList.java | 40 ---- java/common/src/main/resources/cluster.asl | 59 ----- java/common/src/main/resources/registry.template | 25 --- .../main/versions/ProtocolVersionList.java.tmpl | 40 ++++ java/common/src/main/xsl/cluster.asl | 59 +++++ java/common/src/main/xsl/framing.xsl | 64 ++++++ java/common/src/main/xsl/java.xsl | 250 +++++++++++++++++++++ java/common/src/main/xsl/prepare1.xsl | 114 ++++++++++ java/common/src/main/xsl/prepare2.xsl | 69 ++++++ java/common/src/main/xsl/prepare3.xsl | 65 ++++++ java/common/src/main/xsl/readme.txt | 52 +++++ java/common/src/main/xsl/registry.template | 25 +++ java/common/src/main/xsl/registry.xsl | 32 +++ java/common/src/main/xsl/utils.xsl | 207 +++++++++++++++++ 14 files changed, 977 insertions(+), 124 deletions(-) delete mode 100644 java/common/src/main/resources/ProtocolVersionList.java delete mode 100644 java/common/src/main/resources/cluster.asl delete mode 100644 java/common/src/main/resources/registry.template create mode 100644 java/common/src/main/versions/ProtocolVersionList.java.tmpl create mode 100644 java/common/src/main/xsl/cluster.asl create mode 100644 java/common/src/main/xsl/framing.xsl create mode 100644 java/common/src/main/xsl/java.xsl create mode 100644 java/common/src/main/xsl/prepare1.xsl create mode 100644 java/common/src/main/xsl/prepare2.xsl create mode 100644 java/common/src/main/xsl/prepare3.xsl create mode 100644 java/common/src/main/xsl/readme.txt create mode 100644 java/common/src/main/xsl/registry.template create mode 100644 java/common/src/main/xsl/registry.xsl create mode 100644 java/common/src/main/xsl/utils.xsl (limited to 'java/common/src') diff --git a/java/common/src/main/resources/ProtocolVersionList.java b/java/common/src/main/resources/ProtocolVersionList.java deleted file mode 100644 index f0e202dac9..0000000000 --- a/java/common/src/main/resources/ProtocolVersionList.java +++ /dev/null @@ -1,40 +0,0 @@ -/** - * - * 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. - * - */ - -/** - * This class is autogenerated, do not modify. - */ - -package org.apache.qpid.framing; - -/** - * NOTE: Don't remove the line containing the token VER or VER1 - these are - * markers for code generation. - */ - -public interface ProtocolVersionList -{ - public final int PROTOCOL_MAJOR = 0; - public final int PROTOCOL_MINOR = 1; - public final byte pv[][] = { - // !VER1! - }; -} diff --git a/java/common/src/main/resources/cluster.asl b/java/common/src/main/resources/cluster.asl deleted file mode 100644 index 40ca937904..0000000000 --- a/java/common/src/main/resources/cluster.asl +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - - - - An extension that allows brokers to communicate in order to - provide a clustered service to clients. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/java/common/src/main/resources/registry.template b/java/common/src/main/resources/registry.template deleted file mode 100644 index 87c5afcb7b..0000000000 --- a/java/common/src/main/resources/registry.template +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - diff --git a/java/common/src/main/versions/ProtocolVersionList.java.tmpl b/java/common/src/main/versions/ProtocolVersionList.java.tmpl new file mode 100644 index 0000000000..f0e202dac9 --- /dev/null +++ b/java/common/src/main/versions/ProtocolVersionList.java.tmpl @@ -0,0 +1,40 @@ +/** + * + * 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. + * + */ + +/** + * This class is autogenerated, do not modify. + */ + +package org.apache.qpid.framing; + +/** + * NOTE: Don't remove the line containing the token VER or VER1 - these are + * markers for code generation. + */ + +public interface ProtocolVersionList +{ + public final int PROTOCOL_MAJOR = 0; + public final int PROTOCOL_MINOR = 1; + public final byte pv[][] = { + // !VER1! + }; +} diff --git a/java/common/src/main/xsl/cluster.asl b/java/common/src/main/xsl/cluster.asl new file mode 100644 index 0000000000..40ca937904 --- /dev/null +++ b/java/common/src/main/xsl/cluster.asl @@ -0,0 +1,59 @@ + + + + + + + + + An extension that allows brokers to communicate in order to + provide a clustered service to clients. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/java/common/src/main/xsl/framing.xsl b/java/common/src/main/xsl/framing.xsl new file mode 100644 index 0000000000..b8ae20aaf5 --- /dev/null +++ b/java/common/src/main/xsl/framing.xsl @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/java/common/src/main/xsl/java.xsl b/java/common/src/main/xsl/java.xsl new file mode 100644 index 0000000000..685a9a27ed --- /dev/null +++ b/java/common/src/main/xsl/java.xsl @@ -0,0 +1,250 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + wrote + + + + + + + + + + + + +package org.apache.qpid.framing; + +import org.apache.mina.common.ByteBuffer; +import org.apache.qpid.framing.AMQFrame; +import org.apache.qpid.framing.AMQFrameDecodingException; +import org.apache.qpid.framing.AMQMethodBody; +import org.apache.qpid.framing.EncodableAMQDataBlock; +import org.apache.qpid.framing.EncodingUtils; +import org.apache.qpid.framing.FieldTable; + +/** + * This class is autogenerated, do not modify. [From ] + */ +public class extends AMQMethodBody implements EncodableAMQDataBlock +{ + public static final int CLASS_ID = ; + public static final int METHOD_ID = ; + + + public + + ; + + + protected int getClazz() + { + return ; + } + + protected int getMethod() + { + return ; + } + + protected int getBodySize() + { + + + return + + + + + + + ; + + return 0; + + } + + protected void writeMethodPayload(ByteBuffer buffer) + { + + + ; + + + EncodingUtils.writeBooleans(buffer, new boolean[]{ + }); + + + } + + public void populateMethodBodyFromBuffer(ByteBuffer buffer) throws AMQFrameDecodingException + { + + ; + + } + + public String toString() + { + StringBuffer buf = new StringBuffer(super.toString()); + + buf.append(" : ").append(); + + return buf.toString(); + } + + public static AMQFrame createAMQFrame(int channelId, ) + { + body = new (); + + ; + + AMQFrame frame = new AMQFrame(); + frame.channel = channelId; + frame.bodyFrame = body; + return frame; + } +} + + + + Matching root for registry mode! + + + + + +Wrote MethodBodyDecoderRegistry.java + + + +package org.apache.qpid.framing; + +import java.util.Map; +import java.util.HashMap; +import org.apache.log4j.Logger; +import org.apache.qpid.AMQException; +import org.apache.qpid.framing.AMQFrameDecodingException; +import org.apache.qpid.framing.AMQMethodBody; + +/** + * This class is autogenerated, do not modify. + */ +public final class MethodBodyDecoderRegistry +{ + private static final Logger _log = Logger.getLogger(MethodBodyDecoderRegistry.class); + + private static final Map _classMethodProductToMethodBodyMap = new HashMap(); + + static + { + + ; + + } + + public static AMQMethodBody get(int clazz, int method) throws AMQFrameDecodingException + { + Class bodyClass = (Class) _classMethodProductToMethodBodyMap.get(new Integer(clazz * 1000 + method)); + if (bodyClass != null) + { + try + { + return (AMQMethodBody) bodyClass.newInstance(); + } + catch (Exception e) + { + throw new AMQFrameDecodingException(_log, + "Unable to instantiate body class for class " + clazz + " and method " + method + ": " + e, e); + } + } + else + { + throw new AMQFrameDecodingException(_log, + "Unable to find a suitable decoder for class " + clazz + " and method " + method); + } + } +} + + + + + + + + wrote + + + +package org.apache.qpid.framing; + +import java.util.Map; + +/** + * This class is autogenerated, do not modify. [From ] + */ +class +{ + static void register(Map map) + { + + map.put(new Integer( + + * 1000 + + + ), + ); + + } +} + + + + + + diff --git a/java/common/src/main/xsl/prepare1.xsl b/java/common/src/main/xsl/prepare1.xsl new file mode 100644 index 0000000000..03e1fa7634 --- /dev/null +++ b/java/common/src/main/xsl/prepare1.xsl @@ -0,0 +1,114 @@ + + + + + + + + + + + + + + + + + + + + ( + major= + , minor= + ) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Could not inherit from ; file not found. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/java/common/src/main/xsl/prepare2.xsl b/java/common/src/main/xsl/prepare2.xsl new file mode 100644 index 0000000000..14f4f33841 --- /dev/null +++ b/java/common/src/main/xsl/prepare2.xsl @@ -0,0 +1,69 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/java/common/src/main/xsl/prepare3.xsl b/java/common/src/main/xsl/prepare3.xsl new file mode 100644 index 0000000000..f8cf0c8932 --- /dev/null +++ b/java/common/src/main/xsl/prepare3.xsl @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + true + + + + + + + + + + + + + + + + + + + diff --git a/java/common/src/main/xsl/readme.txt b/java/common/src/main/xsl/readme.txt new file mode 100644 index 0000000000..b373055df9 --- /dev/null +++ b/java/common/src/main/xsl/readme.txt @@ -0,0 +1,52 @@ +This directory contains the xsl stylesheets used to generate the code from the +AMQP protocol specification. They require an XSLT2.0 processor, currently +Saxon 8 is used. + +The generation process is controlled by the framing.xsl stylesheet. This performs +several phases of transformation, using the other stylesheets. The transformation +in each phase is defined in a separate file, and these are designed to also allow +then to be run individually. + +The generation takes the amq.asl as input, it also requires that the path to the +directory where the base asl definitions reside (those definitions that the main +amq.asl defintion inherits from) be passed in via a paramter called asl_base. + +The files involved are as follows: + + framing.xsl The control file for the entire generation process + + prepare1.xsl Resolves the separate files that make up the protocol + definition, building a single tree containing all the + information as a set of 'frame' elements, each of which + has attributes for its name, and ids for the class and + method it refers to and contains zero or more field + elements. + + A method id is generated based on the order of the + method elements within the class elements in the original + specification. The class id is taken from the enclosing + class element. + + prepare2.xsl Resolves domains into their corresponding types. (This is + much easier when all the information is in a single tree, + hence the separate frame). + + prepare3.xsl Converts names into valid java names and augments the + tree to include information that makes the subsequent + generation phase simpler e.g. the index of boolean + fields as several boolean flags are combined into a + single byte. (This is easier once the domains have been + resolved, hence the separate phase). + + java.xsl Generates java classes for each frame, and a registry of + all the frames to a 'magic' number generated from their + class and method id. + + utils.xsl Contains some utility methods for e.g. producing valid + java names. + +For debugging the framing.xsl can output the intermediary files. This can be +enabled by uncommenting the relevant lines (a comment explaining this is +provided inline). + + \ No newline at end of file diff --git a/java/common/src/main/xsl/registry.template b/java/common/src/main/xsl/registry.template new file mode 100644 index 0000000000..87c5afcb7b --- /dev/null +++ b/java/common/src/main/xsl/registry.template @@ -0,0 +1,25 @@ + + + + + + diff --git a/java/common/src/main/xsl/registry.xsl b/java/common/src/main/xsl/registry.xsl new file mode 100644 index 0000000000..c70dbe21a5 --- /dev/null +++ b/java/common/src/main/xsl/registry.xsl @@ -0,0 +1,32 @@ + + + + + + + + + + + + + diff --git a/java/common/src/main/xsl/utils.xsl b/java/common/src/main/xsl/utils.xsl new file mode 100644 index 0000000000..95e15c6e38 --- /dev/null +++ b/java/common/src/main/xsl/utils.xsl @@ -0,0 +1,207 @@ + + + + + + + +/** +* +* 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. +* +*/ + + + + + + + char + short + int + String + byte[] + boolean + long + long + FieldTable + Object /*WARNING: undefined type*/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + /* WARNING: COULD NOT DETERMINE FIELD SIZE */ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + /* WARNING: COULD NOT DETERMINE ENCODER */ + + + + + + + + + + boolean[] bools = EncodingUtils.readBooleans(buffer); + + + + + + + + + + + + + + + + + + + + + + + + + + + + /* WARNING: COULD NOT DETERMINE DECODER */ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -- cgit v1.2.1