From bbe30c7875f67547ea9394d4e99b420ac22ef152 Mon Sep 17 00:00:00 2001 From: "Rafael H. Schloming" Date: Wed, 16 Apr 2008 13:32:13 +0000 Subject: QPID-901: updates to the java client to use the 0-10 final spec instead of the 0-10 preview spec; this includes improvements to the codegen process as well as some modifications to the shared code path in the client to not lose per message state when consumers are closed. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@648692 13f79535-47bb-0310-9956-ffa450edef68 --- qpid/java/common/codegen | 63 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100755 qpid/java/common/codegen (limited to 'qpid/java/common/codegen') diff --git a/qpid/java/common/codegen b/qpid/java/common/codegen new file mode 100755 index 0000000000..f5d1577774 --- /dev/null +++ b/qpid/java/common/codegen @@ -0,0 +1,63 @@ +#!/usr/bin/env python + +import os, sys, mllib +from templating import Parser +from genutil import * + +out_dir = sys.argv[1] +spec_file = sys.argv[2] +pkg_dir = os.path.join(out_dir, "org/apache/qpidity/transport") + +if not os.path.exists(pkg_dir): + os.makedirs(pkg_dir) + +spec = mllib.xml_parse(spec_file) + +def excludes(nd): + if (nd.parent is not None and + nd.parent.name == "class" and + nd.parent["@name"] in ("file", "stream")): + return False + else: + return True + +def execute(output, template, **kwargs): + f = open(template) + input = f.read() + f.close() + p = Parser(**kwargs) + p.parse(input) + fname = os.path.join(pkg_dir, output) + f = open(fname, "w") + f.write(p.output) + f.close() + +execute("Type.java", "Type.tpl", spec = spec) +execute("Constant.java", "Constant.tpl", spec = spec) + +structs = spec.query["amqp/struct"] + \ + spec.query["amqp/class/struct", excludes] + \ + spec.query["amqp/class/command/result/struct", excludes] +controls = spec.query["amqp/class/control", excludes] +commands = spec.query["amqp/class/command", excludes] + +composites = structs + controls + commands + +for c in composites: + name = cname(c) + execute("%s.java" % name, "Composite.tpl", type = c, name = name) + +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) + +def is_enum(nd): + return nd["enum"] is not None + +enums = spec.query["amqp/domain", is_enum] + \ + spec.query["amqp/class/domain", is_enum] + +for e in enums: + name = cname(e) + execute("%s.java" % name, "Enum.tpl", name = name, type = e) -- cgit v1.2.1 From 0840224977bc62171ed7dc310c61e3d1487db0e0 Mon Sep 17 00:00:00 2001 From: "Rafael H. Schloming" Date: Fri, 18 Apr 2008 18:35:51 +0000 Subject: QPID-901: update pom to work with new codegen git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@649648 13f79535-47bb-0310-9956-ffa450edef68 --- qpid/java/common/codegen | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'qpid/java/common/codegen') diff --git a/qpid/java/common/codegen b/qpid/java/common/codegen index f5d1577774..ab1ab1c542 100755 --- a/qpid/java/common/codegen +++ b/qpid/java/common/codegen @@ -6,6 +6,7 @@ from genutil import * out_dir = sys.argv[1] spec_file = sys.argv[2] +tpl_dir = sys.argv[3] pkg_dir = os.path.join(out_dir, "org/apache/qpidity/transport") if not os.path.exists(pkg_dir): @@ -22,7 +23,7 @@ def excludes(nd): return True def execute(output, template, **kwargs): - f = open(template) + f = open(os.path.join(tpl_dir, template)) input = f.read() f.close() p = Parser(**kwargs) -- cgit v1.2.1 From a344e91b126c4923eadd3d2b0024d681e8570f70 Mon Sep 17 00:00:00 2001 From: "Rafael H. Schloming" Date: Tue, 29 Jul 2008 19:03:34 +0000 Subject: QPID-1072: renamed org.apache.qpidity -> org.apache.qpid git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@680803 13f79535-47bb-0310-9956-ffa450edef68 --- qpid/java/common/codegen | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'qpid/java/common/codegen') diff --git a/qpid/java/common/codegen b/qpid/java/common/codegen index ab1ab1c542..6cd51565ea 100755 --- a/qpid/java/common/codegen +++ b/qpid/java/common/codegen @@ -7,7 +7,7 @@ from genutil import * out_dir = sys.argv[1] spec_file = sys.argv[2] tpl_dir = sys.argv[3] -pkg_dir = os.path.join(out_dir, "org/apache/qpidity/transport") +pkg_dir = os.path.join(out_dir, "org/apache/qpid/transport") if not os.path.exists(pkg_dir): os.makedirs(pkg_dir) -- cgit v1.2.1 From 9ebd8a5bd4dd60e5983cfa998fea1c78fdb87401 Mon Sep 17 00:00:00 2001 From: "Rafael H. Schloming" Date: Mon, 13 Oct 2008 16:07:01 +0000 Subject: QPID-1339: - Removed the Channel class in order to simplify the state management surrounding Sessions and Connections. - Consolidated the ChannelDelegate into the ConnectionDelegate. - Modified MethodDelegate to invoke a generic handle method as the default action for each dispatched method. - Modified the code generator to produce a separate ConnectionInvoker and SessionInvoker. - Modified the invoker template to use package level visibility for all controls rather than public visibility. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@704147 13f79535-47bb-0310-9956-ffa450edef68 --- qpid/java/common/codegen | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'qpid/java/common/codegen') diff --git a/qpid/java/common/codegen b/qpid/java/common/codegen index 6cd51565ea..81c308d4c9 100755 --- a/qpid/java/common/codegen +++ b/qpid/java/common/codegen @@ -43,14 +43,20 @@ controls = spec.query["amqp/class/control", excludes] commands = spec.query["amqp/class/command", excludes] composites = structs + controls + commands +actions = controls + commands +connection = [c for c in actions if c.parent["@name"] == "connection"] +session = [c for c in actions if c.parent["@name"] != "connection"] for c in composites: name = cname(c) execute("%s.java" % name, "Composite.tpl", type = c, name = name) -execute("MethodDelegate.java", "MethodDelegate.tpl", composites = composites) +execute("MethodDelegate.java", "MethodDelegate.tpl", composites = actions) execute("Option.java", "Option.tpl", composites = composites) -execute("Invoker.java", "Invoker.tpl", composites = controls + commands) +execute("ConnectionInvoker.java", "Invoker.tpl", invoker = "ConnectionInvoker", + composites = connection) +execute("SessionInvoker.java", "Invoker.tpl", invoker = "SessionInvoker", + composites = session) execute("StructFactory.java", "StructFactory.tpl", composites = composites) def is_enum(nd): -- cgit v1.2.1 From c0c24c9412a1a9b95049d2bc534f6c2ad1d80c4b Mon Sep 17 00:00:00 2001 From: Rajith Muditha Attapattu Date: Tue, 16 Dec 2008 04:14:52 +0000 Subject: Added the ASF license header to the following files. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@726943 13f79535-47bb-0310-9956-ffa450edef68 --- qpid/java/common/codegen | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'qpid/java/common/codegen') diff --git a/qpid/java/common/codegen b/qpid/java/common/codegen index 81c308d4c9..6a1effc07b 100755 --- a/qpid/java/common/codegen +++ b/qpid/java/common/codegen @@ -1,5 +1,24 @@ #!/usr/bin/env python +# +# 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. +# + import os, sys, mllib from templating import Parser from genutil import * -- cgit v1.2.1