You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by js...@apache.org on 2006/01/06 18:12:00 UTC
svn commit: r366534 - in /incubator/activemq/trunk/activemq-core: maven.xml
project.xml src/gram/script/GenerateCMarshalling.groovy
src/gram/script/GenerateCSharpClasses.groovy
src/gram/script/GenerateCSharpMarshalling.groovy
Author: jstrachan
Date: Fri Jan 6 09:11:53 2006
New Revision: 366534
URL: http://svn.apache.org/viewcvs?rev=366534&view=rev
Log:
first spike at getting the OpenWire.Net to work; also upgraded to latest groovy
Modified:
incubator/activemq/trunk/activemq-core/maven.xml
incubator/activemq/trunk/activemq-core/project.xml
incubator/activemq/trunk/activemq-core/src/gram/script/GenerateCMarshalling.groovy
incubator/activemq/trunk/activemq-core/src/gram/script/GenerateCSharpClasses.groovy
incubator/activemq/trunk/activemq-core/src/gram/script/GenerateCSharpMarshalling.groovy
Modified: incubator/activemq/trunk/activemq-core/maven.xml
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/activemq-core/maven.xml?rev=366534&r1=366533&r2=366534&view=diff
==============================================================================
--- incubator/activemq/trunk/activemq-core/maven.xml (original)
+++ incubator/activemq/trunk/activemq-core/maven.xml Fri Jan 6 09:11:53 2006
@@ -109,12 +109,10 @@
<classpath refid="openwire.classpath" />
<sysproperty key="openwire.version" value="${openwire.version}" />
<arg value="src/main/java/org/apache/activemq/command" />
+ <arg value="src/gram/script/GenerateCSharpClasses.groovy" />
+ <arg value="src/gram/script/GenerateCSharpMarshalling.groovy" />
<arg value="src/gram/script/GenerateJavaMarshalling.groovy" />
<arg value="src/gram/script/GenerateCMarshalling.groovy" />
- <!--
- <arg value="src/gram/script/GenerateCSharpClasses.groovy" />
- <arg value="src/gram/script/GenerateCSharpMarshalling.groovy" />
- -->
</java>
</goal>
Modified: incubator/activemq/trunk/activemq-core/project.xml
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/activemq-core/project.xml?rev=366534&r1=366533&r2=366534&view=diff
==============================================================================
--- incubator/activemq/trunk/activemq-core/project.xml (original)
+++ incubator/activemq/trunk/activemq-core/project.xml Fri Jan 6 09:11:53 2006
@@ -259,7 +259,7 @@
<dependency>
<groupId>groovy</groupId>
<artifactId>groovy-all</artifactId>
- <version>1.0-jsr-01</version>
+ <version>1.0-jsr-04</version>
<type>jar</type>
</dependency>
<dependency>
Modified: incubator/activemq/trunk/activemq-core/src/gram/script/GenerateCMarshalling.groovy
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/activemq-core/src/gram/script/GenerateCMarshalling.groovy?rev=366534&r1=366533&r2=366534&view=diff
==============================================================================
--- incubator/activemq/trunk/activemq-core/src/gram/script/GenerateCMarshalling.groovy (original)
+++ incubator/activemq/trunk/activemq-core/src/gram/script/GenerateCMarshalling.groovy Fri Jan 6 09:11:53 2006
@@ -285,7 +285,7 @@
"""
for (jclass in openwireClasses) {
- def properties = jclass.declaredProperties.findAll { isValidProperty(it) }
+ properties = jclass.declaredProperties.findAll { isValidProperty(it) }
def name = jclass.simpleName;
def type = ("ow_"+name).toUpperCase()+"_TYPE"
@@ -337,7 +337,7 @@
ow_marshal1_${baseName}(buffer, (ow_${baseName}*)object);
"""
- def properties = jclass.declaredProperties.findAll { isValidProperty(it) }
+ properties = jclass.declaredProperties.findAll { isValidProperty(it) }
for (property in properties) {
def propname = toPropertyCase(property.simpleName);
def cached = isCachedProperty(property);
@@ -345,7 +345,7 @@
def size = annotation.getValue("size");
out << " ";
- def type = property.type.qualifiedName
+ type = property.type.qualifiedName
switch (type) {
case "boolean":
@@ -404,7 +404,7 @@
ow_marshal2_${baseName}(buffer, bitbuffer, (ow_${baseName}*)object);
"""
- def properties = jclass.declaredProperties.findAll { isValidProperty(it) }
+ properties = jclass.declaredProperties.findAll { isValidProperty(it) }
for (property in properties) {
def annotation = property.getter.getAnnotation("openwire:property");
def size = annotation.getValue("size");
@@ -412,7 +412,7 @@
def cached = isCachedProperty(property);
out << " "
- def type = property.type.qualifiedName
+ type = property.type.qualifiedName
switch (type) {
case "boolean":
out << "ow_bit_buffer_read(bitbuffer);"; break;
@@ -478,7 +478,7 @@
ow_unmarshal_${baseName}(buffer, bitbuffer, (ow_${baseName}*)object, pool);
"""
- def properties = jclass.declaredProperties.findAll { isValidProperty(it) }
+ properties = jclass.declaredProperties.findAll { isValidProperty(it) }
for (property in properties) {
def annotation = property.getter.getAnnotation("openwire:property");
def size = annotation.getValue("size");
@@ -486,7 +486,7 @@
def cached = isCachedProperty(property);
out << " "
- def type = property.type.qualifiedName
+ type = property.type.qualifiedName
switch (type) {
case "boolean":
out << "object->$propname = ow_bit_buffer_read(bitbuffer);"; break;
Modified: incubator/activemq/trunk/activemq-core/src/gram/script/GenerateCSharpClasses.groovy
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/activemq-core/src/gram/script/GenerateCSharpClasses.groovy?rev=366534&r1=366533&r2=366534&view=diff
==============================================================================
--- incubator/activemq/trunk/activemq-core/src/gram/script/GenerateCSharpClasses.groovy (original)
+++ incubator/activemq/trunk/activemq-core/src/gram/script/GenerateCSharpClasses.groovy Fri Jan 6 09:11:53 2006
@@ -24,10 +24,12 @@
class GenerateCSharpClasses extends OpenWireScript {
Object run() {
- def destDir = new File("target/generated/dotnet/cs/org/apache/activemq/openwire")
+ def destDir = new File("../openwire-dotnet/src/OpenWire.Core/Commands")
destDir.mkdirs()
- def messageClasses = classes.findAll { isMessageType(it) }
+ def messageClasses = classes.findAll {
+ it.getAnnotation("openwire:marshaller")!=null
+ }
println "Generating Java marshalling code to directory ${destDir}"
@@ -43,7 +45,7 @@
def properties = jclass.declaredProperties.findAll { isValidProperty(it) }
def file = new File(destDir, jclass.simpleName + ".cs")
- String baseClass = "AbstractPacket"
+ String baseClass = "AbstractCommand"
if (jclass.superclass?.simpleName == "ActiveMQMessage") {
baseClass = "ActiveMQMessage"
}
@@ -53,19 +55,21 @@
"""
file.withWriter { out |
- out << """/**
- * Marshalling code for Open Wire Format for ${jclass.simpleName}
- *
- *
- * NOTE!: This file is autogenerated - do not modify!
- * if you need to make a change, please see the Groovy scripts in the
- * activemq-openwire module
- */
+ out << """//
+// Marshalling code for Open Wire Format for ${jclass.simpleName}
+//
+//
+// NOTE!: This file is autogenerated - do not modify!
+// if you need to make a change, please see the Groovy scripts in the
+// activemq-openwire module
+//
using System;
using System.Collections;
-namespace ActiveMQ
+using OpenWire.Core;
+
+namespace OpenWire.Core.Commands
{
public class ${jclass.simpleName} : $baseClass
{
@@ -86,7 +90,7 @@
// TODO generate ToString method
- public overide int getPacketType() {
+ public override int GetCommandType() {
return ${getEnum(jclass)};
}
@@ -97,21 +101,27 @@
for (property in properties) {
def type = toCSharpType(property.type)
def name = decapitalize(property.simpleName)
- def getter = property.getter.simpleName
- def setter = property.setter.simpleName
+ def propertyName = property.simpleName
+ if (propertyName == jclass.simpleName) {
+ // TODO think of a better naming convention :)
+ propertyName += "Value"
+ }
+ def getter = capitalize(property.getter.simpleName)
+ def setter = capitalize(property.setter.simpleName)
out << """
- public $type $getter()
+ public $type $propertyName
{
- return this.$name;
- }
-
- public void $setter($type $name)
- {
- this.$name = $name;
+ get
+ {
+ return $name;
+ }
+ set
+ {
+ $name = value;
+ }
}
-
"""
}
@@ -123,17 +133,25 @@
}
}
+ def getEnum(type) {
+ return 1
+ }
+
def toCSharpType(type) {
def name = type.qualifiedName
switch (type) {
case "java.lang.String":
return "string"
+ case "boolean":
+ return "bool"
+ case "org.apache.activemq.command.DataStructure":
+ return "Command"
case "org.apache.activemq.message.ActiveMQDestination":
return "ActiveMQDestination"
case "org.apache.activemq.message.ActiveMQXid":
return "ActiveMQXid"
default:
- return name
+ return type.simpleName
}
}
}
Modified: incubator/activemq/trunk/activemq-core/src/gram/script/GenerateCSharpMarshalling.groovy
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/activemq-core/src/gram/script/GenerateCSharpMarshalling.groovy?rev=366534&r1=366533&r2=366534&view=diff
==============================================================================
--- incubator/activemq/trunk/activemq-core/src/gram/script/GenerateCSharpMarshalling.groovy (original)
+++ incubator/activemq/trunk/activemq-core/src/gram/script/GenerateCSharpMarshalling.groovy Fri Jan 6 09:11:53 2006
@@ -24,10 +24,12 @@
class GenerateCSharpMarshalling extends OpenWireScript {
Object run() {
- def destDir = new File("target/generated/dotnet/cs/org/apache/activemq/openwire/io")
+ def destDir = new File("../openwire-dotnet/src/OpenWire.Core/IO")
destDir.mkdirs()
- def messageClasses = classes.findAll { isMessageType(it) }
+ def messageClasses = classes.findAll {
+ it.getAnnotation("openwire:marshaller")!=null
+ }
println "Generating Java marshalling code to directory ${destDir}"
@@ -35,15 +37,17 @@
int counter = 0
Map map = [:]
+ def propertyList = null
+ def type = null
for (jclass in messageClasses) {
println "Processing $jclass.simpleName"
- def properties = jclass.declaredProperties.findAll { isValidProperty(it) }
+ propertyList = jclass.declaredProperties.findAll { isValidProperty(it) }
def file = new File(destDir, jclass.simpleName + "Marshaller.cs")
- String baseClass = "AbstractPacketMarshaller"
+ String baseClass = "AbstractCommandMarshaller"
if (jclass.superclass?.simpleName == "ActiveMQMessage") {
baseClass = "ActiveMQMessageMarshaller"
}
@@ -53,39 +57,40 @@
"""
file.withWriter { out |
- out << """/**
- * Marshalling code for Open Wire Format for ${jclass.simpleName}
- *
- *
- * NOTE!: This file is autogenerated - do not modify!
- * if you need to make a change, please see the Groovy scripts in the
- * activemq-openwire module
- */
+ out << """//
+// Marshalling code for Open Wire Format for ${jclass.simpleName}
+//
+//
+// NOTE!: This file is autogenerated - do not modify!
+// if you need to make a change, please see the Groovy scripts in the
+// activemq-openwire module
+//
using System;
using System.Collections;
+using System.IO;
+
+using OpenWire.Core;
+using OpenWire.Core.Commands;
+using OpenWire.Core.IO;
-namespace ActiveMQ
+namespace OpenWire.Core.IO
{
- public class ${jclass.simpleName} : $baseClass
+ public class ${jclass.simpleName}Marshaller : $baseClass
{
- public override int GetPacketType() {
- return ${getEnum(jclass)};
- }
-
- public override Packet CreatePacket() {
+ public override Command CreateCommand() {
return new ${jclass.simpleName}();
}
- public override void BuildPacket(Packet packet, DataInput dataIn) throws IOException {
- super.buildPacket(packet, dataIn);
- ${jclass.simpleName} info = (${jclass.simpleName}) packet;
+ public override void BuildCommand(Command command, BinaryReader dataIn) {
+ super.buildCommand(command, dataIn);
+ ${jclass.simpleName} info = (${jclass.simpleName}) command;
"""
- for (property in properties) {
+ for (property in propertyList) {
out << " info.${property.setter.simpleName}("
- def type = property.type.qualifiedName
+ type = property.type.qualifiedName
switch (type) {
case "java.lang.String":
out << "dataIn.readUTF()"
@@ -137,15 +142,15 @@
out << """
}
- public override void WritePacket(Packet packet, DataOutput dataOut) throws IOException {
- super.writePacket(packet, dataOut);
- ${jclass.simpleName} info = (${jclass.simpleName}) packet;
+ public override void WriteCommand(Command command, BinaryWriter dataOut) {
+ super.writeCommand(command, dataOut);
+ ${jclass.simpleName} info = (${jclass.simpleName}) command;
"""
- for (property in properties) {
+ for (property in propertyList) {
def getter = "info." + property.getter.simpleName + "()"
out << " "
- def type = property.type.qualifiedName
+ type = property.type.qualifiedName
switch (type) {
case "java.lang.String":
out << "writeUTF($getter, dataOut);"