You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by li...@apache.org on 2007/10/08 20:50:09 UTC
svn commit: r582931 [1/3] - in
/geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources:
./ META-INF/ schema/ src/ src/org/ src/org/apache/ src/org/apache/geronimo/
src/org/apache/geronimo/devtools/ src/org/apache/geronimo/devtoo...
Author: linsun
Date: Mon Oct 8 11:50:05 2007
New Revision: 582931
URL: http://svn.apache.org/viewvc?rev=582931&view=rev
Log:
update the resources plugin for GERONIMODEVTOOLS-221
Added:
geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/
geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/.classpath (with props)
geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/.project (with props)
geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/META-INF/
geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/META-INF/MANIFEST.MF
geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/build.properties (with props)
geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/plugin.xml (with props)
geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/pom.xml (with props)
geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/schema/
geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/schema/tool.migrations.exsd
geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/src/
geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/src/commons-logging.properties (with props)
geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/src/org/
geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/src/org/apache/
geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/src/org/apache/geronimo/
geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/src/org/apache/geronimo/devtools/
geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/src/org/apache/geronimo/devtools/j2g/
geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/src/org/apache/geronimo/devtools/j2g/resources/
geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/src/org/apache/geronimo/devtools/j2g/resources/ResourcesTool.java (with props)
geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/src/org/apache/geronimo/devtools/j2g/resources/datasource/
geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/src/org/apache/geronimo/devtools/j2g/resources/datasource/DSResourcesTool.java (with props)
geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/src/org/apache/geronimo/devtools/j2g/resources/jms/
geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/src/org/apache/geronimo/devtools/j2g/resources/jms/JMSResourcesTool.java (with props)
geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/src/org/apache/geronimo/devtools/j2g/resources/mail/
geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/src/org/apache/geronimo/devtools/j2g/resources/mail/MailResourcesTool.java (with props)
geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/src/org/apache/geronimo/devtools/j2g/resources/security/
geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/src/org/apache/geronimo/devtools/j2g/resources/security/SecurityResourcesTool.java (with props)
geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/test/
geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/test-apps/
geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/test-apps/ds/
geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/test-apps/ds/hsqldb-ds.xml (with props)
geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/test-apps/ds/hsqldb-geronimo-plan.xml (with props)
geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/test-apps/ds/mysql-ds.xml (with props)
geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/test-apps/ds/mysql-geronimo-plan.xml (with props)
geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/test-apps/ds/oracle-ds.xml (with props)
geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/test-apps/ds/oracle-geronimo-plan.xml (with props)
geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/test-apps/jms/
geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/test-apps/jms/geronimo-jms-resource-plan.xml (with props)
geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/test-apps/jms/jbossmq-destinations-service.xml (with props)
geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/test-apps/jms/jms-ds.xml (with props)
geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/test-apps/jms/jms-geronimo-plan.xml (with props)
geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/test-apps/mail/
geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/test-apps/mail/err/
geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/test-apps/mail/err/mail-service.xml (with props)
geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/test-apps/mail/geronimo-mail-service.xml (with props)
geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/test-apps/mail/mail-geronimo-plan.xml
geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/test-apps/mail/mail-service.xml (with props)
geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/test-apps/security/
geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/test-apps/security/geronimo-secutiry-plan.xml (with props)
geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/test-apps/security/login-config.xml (with props)
geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/test-apps/security/security-geronimo-plan.xml (with props)
geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/test/org/
geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/test/org/apache/
geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/test/org/apache/geronimo/
geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/test/org/apache/geronimo/devtools/
geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/test/org/apache/geronimo/devtools/j2g/
geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/test/org/apache/geronimo/devtools/j2g/resources/
geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/test/org/apache/geronimo/devtools/j2g/resources/datasource/
geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/test/org/apache/geronimo/devtools/j2g/resources/datasource/test/
geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/test/org/apache/geronimo/devtools/j2g/resources/datasource/test/DSResouresToolTestCase.java (with props)
geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/test/org/apache/geronimo/devtools/j2g/resources/jms/
geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/test/org/apache/geronimo/devtools/j2g/resources/jms/test/
geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/test/org/apache/geronimo/devtools/j2g/resources/jms/test/JMSResouresToolTestCase.java (with props)
geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/test/org/apache/geronimo/devtools/j2g/resources/mail/
geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/test/org/apache/geronimo/devtools/j2g/resources/mail/test/
geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/test/org/apache/geronimo/devtools/j2g/resources/mail/test/MailResouresToolTestCase.java (with props)
geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/test/org/apache/geronimo/devtools/j2g/resources/security/
geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/test/org/apache/geronimo/devtools/j2g/resources/security/test/
geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/test/org/apache/geronimo/devtools/j2g/resources/security/test/SecurityResouresToolTestCase.java (with props)
Added: geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/.classpath
URL: http://svn.apache.org/viewvc/geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/.classpath?rev=582931&view=auto
==============================================================================
--- geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/.classpath (added)
+++ geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/.classpath Mon Oct 8 11:50:05 2007
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="test"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="src" path="/org.apache.geronimo.devtools.j2g.common"/>
+ <classpathentry kind="output" path="target/classes"/>
+</classpath>
Propchange: geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/.classpath
------------------------------------------------------------------------------
svn:eol-style = native
Added: geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/.project
URL: http://svn.apache.org/viewvc/geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/.project?rev=582931&view=auto
==============================================================================
--- geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/.project (added)
+++ geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/.project Mon Oct 8 11:50:05 2007
@@ -0,0 +1,22 @@
+<projectDescription>
+ <name>org.apache.geronimo.j2g.resources</name>
+ <comment>JBoss to Geronimo Conversion Tool</comment>
+ <projects>
+ <project>org.apache.geronimo.j2g.common</project>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
\ No newline at end of file
Propchange: geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/.project
------------------------------------------------------------------------------
svn:eol-style = native
Added: geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/META-INF/MANIFEST.MF
URL: http://svn.apache.org/viewvc/geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/META-INF/MANIFEST.MF?rev=582931&view=auto
==============================================================================
--- geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/META-INF/MANIFEST.MF (added)
+++ geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/META-INF/MANIFEST.MF Mon Oct 8 11:50:05 2007
@@ -0,0 +1,11 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: J2G Resources Plug-in
+Bundle-SymbolicName: org.apache.geronimo.devtools.j2g.resources;singleton:=true
+Bundle-Version: 1.0.0
+Bundle-Vendor: Apache.org
+Bundle-Localization: plugin
+Require-Bundle: org.apache.geronimo.devtools.j2g.common,
+ org.apache.geronimo.devtools.j2g.util,
+ org.eclipse.core.runtime
+Bundle-ClassPath: .
Added: geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/build.properties
URL: http://svn.apache.org/viewvc/geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/build.properties?rev=582931&view=auto
==============================================================================
--- geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/build.properties (added)
+++ geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/build.properties Mon Oct 8 11:50:05 2007
@@ -0,0 +1,22 @@
+/**
+ * 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.
+ */
+ source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ plugin.xml
+source.. = src/
Propchange: geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/build.properties
------------------------------------------------------------------------------
svn:eol-style = native
Added: geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/plugin.xml
URL: http://svn.apache.org/viewvc/geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/plugin.xml?rev=582931&view=auto
==============================================================================
--- geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/plugin.xml (added)
+++ geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/plugin.xml Mon Oct 8 11:50:05 2007
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.2"?>
+<!--
+ ~ 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.
+ -->
+<plugin>
+ <extension-point id="migrations" name="Resources Migrations Extension Point" schema="schema/tool.migrations.exsd"/>
+ <extension
+ id="tool"
+ name="Resources Migration Tool"
+ point="org.eclipse.core.runtime.applications">
+ <application>
+ <run class="org.apache.geronimo.devtools.j2g.resources.ResourcesTool"/>
+ </application>
+ </extension>
+ <extension
+ point="org.apache.geronimo.devtools.j2g.resources.migrations">
+ <migration
+ class="org.apache.geronimo.devtools.j2g.resources.datasource.DSResourcesTool">
+ </migration>
+ </extension>
+ <extension
+ point="org.apache.geronimo.devtools.j2g.resources.migrations">
+ <migration
+ class="org.apache.geronimo.devtools.j2g.resources.jms.JMSResourcesTool">
+ </migration>
+ </extension>
+ <extension
+ point="org.apache.geronimo.devtools.j2g.resources.migrations">
+ <migration
+ class="org.apache.geronimo.devtools.j2g.resources.mail.MailResourcesTool">
+ </migration>
+ </extension>
+ <extension
+ point="org.apache.geronimo.devtools.j2g.resources.migrations">
+ <migration
+ class="org.apache.geronimo.devtools.j2g.resources.security.SecurityResourcesTool">
+ </migration>
+ </extension>
+</plugin>
Propchange: geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/plugin.xml
------------------------------------------------------------------------------
svn:eol-style = native
Added: geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/pom.xml
URL: http://svn.apache.org/viewvc/geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/pom.xml?rev=582931&view=auto
==============================================================================
--- geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/pom.xml (added)
+++ geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/pom.xml Mon Oct 8 11:50:05 2007
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ 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.
+ -->
+<!-- $Rev: 561821 $ $Date: 2007-08-01 11:05:12 -0400 (Wed, 01 Aug 2007) $ -->
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache.geronimo.devtools.j2g</groupId>
+ <artifactId>plugins</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+
+ <artifactId>org.apache.geronimo.devtools.j2g.resources</artifactId>
+ <packaging>jar</packaging>
+ <name>${artifactId}</name>
+
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-dependency-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.geronimo.devtools</groupId>
+ <artifactId>maven-eclipsepde-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <artifactId>maven-jar-plugin</artifactId>
+ </plugin>
+ </plugins>
+ </build>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.geronimo.devtools.j2g</groupId>
+ <artifactId>org.apache.geronimo.devtools.j2g.common</artifactId>
+ <version>${version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.geronimo.devtools.j2g</groupId>
+ <artifactId>org.apache.geronimo.devtools.j2g.util</artifactId>
+ <version>${version}</version>
+ </dependency>
+ </dependencies>
+</project>
Propchange: geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/pom.xml
------------------------------------------------------------------------------
svn:eol-style = native
Added: geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/schema/tool.migrations.exsd
URL: http://svn.apache.org/viewvc/geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/schema/tool.migrations.exsd?rev=582931&view=auto
==============================================================================
--- geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/schema/tool.migrations.exsd (added)
+++ geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/schema/tool.migrations.exsd Mon Oct 8 11:50:05 2007
@@ -0,0 +1,92 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.apache.geronimo.devtools.j2g.resources">
+<annotation>
+ <appInfo>
+ <meta.schema plugin="org.apache.geronimo.devtools.j2g.resources" id="org.apache.geronimo.devtools.j2g.resources.tool.migrations" name="Descriptors Migrations Extension Point"/>
+ </appInfo>
+ <documentation>
+ [Enter description of this extension point.]
+ </documentation>
+ </annotation>
+
+ <element name="extension">
+ <complexType>
+ <sequence>
+ <element ref="migration"/>
+ </sequence>
+ <attribute name="point" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ <appInfo>
+ <meta.attribute translatable="true"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="migration">
+ <complexType>
+ <attribute name="class" type="string" use="required">
+ <annotation>
+ <documentation>
+ Descriptor migration plug-in implementation class.
+ </documentation>
+ <appInfo>
+ <meta.attribute kind="java" basedOn="org.apache.geronimo.devtools.j2g.common.IFileMigration"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="since"/>
+ </appInfo>
+ <documentation>
+ 1.0.0
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="examples"/>
+ </appInfo>
+ <documentation>
+ <pre>
+ <extension
+ point="org.apache.geronimo.devtools.j2g.resources.tool.migrations">
+ <migration class="org.apache.geronimo.devtools.j2g.resources.jms.JMSResourcesFileMigration"/>
+ </extension>
+</pre>
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="copyright"/>
+ </appInfo>
+ <documentation>
+
+ </documentation>
+ </annotation>
+
+</schema>
Added: geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/src/commons-logging.properties
URL: http://svn.apache.org/viewvc/geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/src/commons-logging.properties?rev=582931&view=auto
==============================================================================
--- geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/src/commons-logging.properties (added)
+++ geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/src/commons-logging.properties Mon Oct 8 11:50:05 2007
@@ -0,0 +1,30 @@
+/**
+ * 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.
+ */
+ # Set root logger level to DEBUG and its only appender to console.
+log4j.rootLogger=INFO
+
+#define loggers
+#pluging logger
+log4j.logger.com.ibm.j2g=DEBUG,console
+
+# console is set to be a ConsoleAppender.
+log4j.appender.console=org.apache.log4j.ConsoleAppender
+
+# console uses PatternLayout.
+log4j.appender.console.layout=org.apache.log4j.PatternLayout
+#log4j.appender.console.layout.ConversionPattern=[%t] %-5p %l - %m%n
+log4j.appender.console.layout.ConversionPattern=[%t] %-5p - %m%n
\ No newline at end of file
Propchange: geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/src/commons-logging.properties
------------------------------------------------------------------------------
svn:eol-style = native
Added: geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/src/org/apache/geronimo/devtools/j2g/resources/ResourcesTool.java
URL: http://svn.apache.org/viewvc/geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/src/org/apache/geronimo/devtools/j2g/resources/ResourcesTool.java?rev=582931&view=auto
==============================================================================
--- geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/src/org/apache/geronimo/devtools/j2g/resources/ResourcesTool.java (added)
+++ geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/src/org/apache/geronimo/devtools/j2g/resources/ResourcesTool.java Mon Oct 8 11:50:05 2007
@@ -0,0 +1,53 @@
+/**
+ * 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.
+ */
+package org.apache.geronimo.devtools.j2g.resources;
+
+import org.apache.geronimo.devtools.j2g.common.XMLMigrationTool;
+
+/**
+ * Descriptors migration tool.
+ */
+public class ResourcesTool extends XMLMigrationTool {
+
+ /** Plug-in id */
+ public final static String PLUGIN_ID = "org.apache.geronimo.devtools.j2g.resources";
+
+ /** Extension point id */
+ public final static String EXTENSION_POINT_ID = PLUGIN_ID
+ + ".migrations";
+
+ /**
+ * @see org.apache.geronimo.devtools.j2g.common.XMLMigrationTool#getExtensionPointId()
+ */
+ protected String getExtensionPointId() {
+ return EXTENSION_POINT_ID;
+ }
+
+ /**
+ * @see org.apache.geronimo.devtools.j2g.common.XMLMigrationTool#getPluginId()
+ */
+ protected String getPluginId() {
+ return PLUGIN_ID;
+ }
+
+ /**
+ * @see org.apache.geronimo.devtools.j2g.common.XMLMigrationTool#getToolName()
+ */
+ protected String getToolName() {
+ return "jres2g.cmd";
+ }
+}
Propchange: geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/src/org/apache/geronimo/devtools/j2g/resources/ResourcesTool.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/src/org/apache/geronimo/devtools/j2g/resources/datasource/DSResourcesTool.java
URL: http://svn.apache.org/viewvc/geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/src/org/apache/geronimo/devtools/j2g/resources/datasource/DSResourcesTool.java?rev=582931&view=auto
==============================================================================
--- geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/src/org/apache/geronimo/devtools/j2g/resources/datasource/DSResourcesTool.java (added)
+++ geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/src/org/apache/geronimo/devtools/j2g/resources/datasource/DSResourcesTool.java Mon Oct 8 11:50:05 2007
@@ -0,0 +1,355 @@
+/**
+ * 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.
+ */
+package org.apache.geronimo.devtools.j2g.resources.datasource;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.HashMap;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.geronimo.devtools.j2g.common.IFileMigration;
+import org.apache.geronimo.devtools.j2g.common.IOutput;
+import org.apache.geronimo.devtools.j2g.common.Tool;
+import org.apache.geronimo.devtools.j2g.util.resources.Constants;
+import org.apache.geronimo.devtools.j2g.util.resources.xml.XMLConversionHelper;
+import org.dom4j.Document;
+import org.dom4j.DocumentException;
+import org.dom4j.DocumentHelper;
+import org.dom4j.Element;
+import org.dom4j.Namespace;
+import org.dom4j.QName;
+
+/**
+ * Class which implement the Data Source File Migration
+ */
+public class DSResourcesTool implements IFileMigration {
+
+ // Initialization of the IOutput for DSResourcesTool class
+ IOutput out = Tool.getCurrent().getOutput();
+ // Initialization of the logger for DSResourcesTool class
+ Log logger = LogFactory.getLog(DSResourcesTool.class);
+
+ /**
+ * mgration method from data source jboss discripters to geronimo
+ * discriptors
+ *
+ * @param sourceFile :data source jboss discriptor file
+ * @return status of the migration
+ */
+ public boolean migrate(File sourceFile, File rootDirectory) {
+ boolean migrated = false;
+ String directoryName = sourceFile.getParent();
+ String jbossDSFileName = sourceFile.getName();
+ logger.debug("Directory Name ==> " + directoryName
+ + " jboss data source file Name ==> " + jbossDSFileName);
+
+ if (jbossDSFileName.endsWith(Constants.JBOSS_VALID_DS_XML_FILE)) {
+ // Checking wether file is a valid *-ds.xml file
+ String driverType = jbossDSFileName.substring(0, jbossDSFileName.lastIndexOf("-"));
+ out.info(DSResourcesTool.class.getSimpleName(), "Converting Jboss datasource xml file in " + directoryName);
+ try {
+ Document jbossDocument = XMLConversionHelper.getJbossDocument(sourceFile);
+ Document geronimoDocument = migrationFromJboss2Geronimo(jbossDocument
+ .getRootElement());
+ String geronimoDSFileName = directoryName + File.separator + driverType
+ + Constants.GERONIMO_PLAN_FILE;
+ // Check whether the file already exists if so
+ // back up at and save that or check the req
+ // This was done in upper level of the tool
+ XMLConversionHelper.saveGeronimoDocument(geronimoDSFileName, geronimoDocument);
+ migrated = true;
+ out.info(DSResourcesTool.class.getSimpleName(), "The Datasource Resource File Migration Complete!!!\n");
+ } catch (DocumentException e) {
+ out.error(DSResourcesTool.class.getSimpleName(), "Error occured while reading xml descriptor "
+ + sourceFile.getAbsolutePath()
+ + ". It is possible that the migrator cannot download the xml schema or the xml file has incorrect syntax. Nested exception:"
+ + e.getMessage());
+ } catch (IOException e) {
+ out.error(DSResourcesTool.class.getSimpleName(), "IO exception " + e.getMessage());
+ }
+ }
+ return migrated;
+ }
+
+ /**
+ * Accepts the jboss side Elements that holdes the discripter infomation and
+ * return the geronimo discripter
+ *
+ * @param jbossRootElement
+ * @return geronimo plan
+ */
+ private Document migrationFromJboss2Geronimo(Element jbossRootElement) {
+ Document geronimo_ds_plan = createNewGeronimoDocument(jbossRootElement);
+ return geronimo_ds_plan;
+ }
+
+ /**
+ * Createt the new geronimo document from the given namesppace and the root
+ * elament with default elements
+ *
+ * @param namespaceName
+ * String of the namespace
+ * @param rootName
+ * String root Element name
+ * @return a new dom4j document for geronimo-ds-plan.xml
+ */
+ public Document createNewGeronimoDocument(Element jbossRootElement) {
+ Namespace connectorNamespace = new Namespace("", Constants.NAMESPACE_CONNECTOR);
+ Namespace environmentNamespace = new Namespace(Constants.ENV_NAMESPACE_PREFIX,
+ Constants.NAMESPACE_ENV);
+
+ Element local_tx_datasurceElement = XMLConversionHelper.obtainSubElement(jbossRootElement,
+ "local-tx-datasource");
+ Element jndi_name = XMLConversionHelper.obtainSubElement(local_tx_datasurceElement,
+ "jndi-name");
+ Element connection_url = XMLConversionHelper.obtainSubElement(local_tx_datasurceElement,
+ "connection-url");
+ Element driver_class = XMLConversionHelper.obtainSubElement(local_tx_datasurceElement,
+ "driver-class");
+ Element user_name = XMLConversionHelper.obtainSubElement(local_tx_datasurceElement,
+ "user-name");
+ Element password = XMLConversionHelper.obtainSubElement(local_tx_datasurceElement,
+ "password");
+ Element dependenciesElement = createDependenciesElement(driver_class.getStringValue(),
+ environmentNamespace);
+ Element connectiondefinition_instanceElement = DocumentHelper.createElement(new QName(
+ "connectiondefinition-instance", connectorNamespace));
+ connectiondefinition_instanceElement.add(XMLConversionHelper.createSibling("name",
+ XMLConversionHelper.obtainNameFromJNDINAME(XMLConversionHelper
+ .readElementValue(jndi_name)), connectorNamespace));
+ connectiondefinition_instanceElement.add(XMLConversionHelper.createSiblingWithAttrib(
+ "config-property-setting", XMLConversionHelper.readElementValue(user_name), "name",
+ "UserName", connectorNamespace));
+ connectiondefinition_instanceElement.add(XMLConversionHelper.createSiblingWithAttrib(
+ "config-property-setting", XMLConversionHelper.readElementValue(password), "name",
+ "Password", connectorNamespace));
+ connectiondefinition_instanceElement.add(XMLConversionHelper.createSiblingWithAttrib(
+ "config-property-setting", XMLConversionHelper.readElementValue(driver_class),
+ "name", "Driver", connectorNamespace));
+ connectiondefinition_instanceElement.add(XMLConversionHelper.createSiblingWithAttrib(
+ "config-property-setting", XMLConversionHelper.readElementValue(connection_url),
+ "name", "ConnectionURL", connectorNamespace));
+ Element connection_managerElement = null;
+ if (checkForConnectionMangerDetails(local_tx_datasurceElement)) {
+ connection_managerElement = createConnectionManagerElement(local_tx_datasurceElement,
+ connectorNamespace);
+ } else {
+ connection_managerElement = createDefaultConnectionManagerElement(connectorNamespace);
+ }
+ connectiondefinition_instanceElement.add(connection_managerElement);
+ QName connectorQName = new QName("connector", connectorNamespace);
+ QName environmentQName = new QName("environment", environmentNamespace);
+ Element artifactIdElement = DocumentHelper.createElement((new QName("artifactId",
+ environmentNamespace)));
+ artifactIdElement.addText(XMLConversionHelper.obtainNameFromJNDINAME(XMLConversionHelper
+ .readElementValue(jndi_name)));
+ Element moduleIdElement = DocumentHelper.createElement((new QName("moduleId",
+ environmentNamespace)));
+ moduleIdElement.add(artifactIdElement);
+ Element conenctorElement = DocumentHelper.createElement(connectorQName);
+ dependenciesElement.add(environmentNamespace);
+ Element environmentElement = conenctorElement.addElement(environmentQName);
+ environmentElement.add(moduleIdElement);
+ environmentElement.add(dependenciesElement);
+ QName resourceadapterQName = new QName("resourceadapter", connectorNamespace);
+ Element resourceadapterElement = conenctorElement.addElement(resourceadapterQName);
+ Element outbound_resourceadapterElement = DocumentHelper.createElement(new QName(
+ "outbound-resourceadapter", connectorNamespace));
+ Element connector_definitionElement = DocumentHelper.createElement(new QName(
+ "connection-definition", connectorNamespace));
+ Element connecttionfactory_interfaceElement = DocumentHelper.createElement(new QName(
+ "connectionfactory-interface", connectorNamespace));
+ connecttionfactory_interfaceElement.addText(Constants.CONNECTION_FACTORY_INTERFACE);
+ connector_definitionElement.add(connecttionfactory_interfaceElement);
+ connector_definitionElement.add(connectiondefinition_instanceElement);
+ resourceadapterElement.add(outbound_resourceadapterElement);
+ outbound_resourceadapterElement.add(connector_definitionElement);
+ Document document = DocumentHelper.createDocument();
+ document.add(conenctorElement);
+ out.warn(DSResourcesTool.class.getSimpleName(), "The JAR holding the " + driver_class.getStringValue()
+ + " JDBC Driver should be installed under <GERONIMO_HOME>/repository/");
+ return document;
+ }
+
+ /**
+ * creates the connection manager element by refereing the jboss side
+ * localtxelement
+ *
+ * @param local_tx_datasurceElement
+ * @param environmentNamespace
+ * @return the connection manager element for geronimo ds plan
+ */
+ public Element createConnectionManagerElement(Element local_tx_datasurceElement,
+ Namespace environmentNamespace) {
+ Element connectionmanagerElement = DocumentHelper.createElement(new QName(
+ "connectionmanager", environmentNamespace));
+ Element local_transactionElement = DocumentHelper.createElement(new QName(
+ "local-transaction", environmentNamespace));
+ Element single_poolElement = DocumentHelper.createElement(new QName("single-pool",
+ environmentNamespace));
+ Element max_sizeElement = DocumentHelper.createElement(new QName("max-size",
+ environmentNamespace));
+ Element min_sizeElement = DocumentHelper.createElement(new QName("min-size",
+ environmentNamespace));
+ Element blocking_timeout_millisecondsElement = DocumentHelper.createElement(new QName(
+ "blocking-timeout-milliseconds", environmentNamespace));
+ Element idle_timeout_minutesElement = DocumentHelper.createElement(new QName(
+ "idle-timeout-minutes", environmentNamespace));
+ Element match_oneElement = DocumentHelper.createElement(new QName("match-one",
+ environmentNamespace));
+ if (XMLConversionHelper.containSubElement(local_tx_datasurceElement, "max-pool-size")) {
+ Element max_sizeElement_jboss = XMLConversionHelper.obtainSubElement(
+ local_tx_datasurceElement, "max-pool-size");
+ max_sizeElement.addText(XMLConversionHelper.readElementValue(max_sizeElement_jboss));
+ } else {
+ max_sizeElement.addText("10");
+ }
+ if (XMLConversionHelper.containSubElement(local_tx_datasurceElement, "min-pool-size")) {
+ Element min_sizeElement_jboss = XMLConversionHelper.obtainSubElement(
+ local_tx_datasurceElement, "min-pool-size");
+ min_sizeElement.addText(XMLConversionHelper.readElementValue(min_sizeElement_jboss));
+ } else {
+ min_sizeElement.addText("0");
+ }
+ if (XMLConversionHelper.containSubElement(local_tx_datasurceElement,
+ "blocking-timeout-milliseconds")) {
+ Element blocking_timeout_millisecondsElement_jboss = XMLConversionHelper
+ .obtainSubElement(local_tx_datasurceElement, "blocking-timeout-milliseconds");
+ blocking_timeout_millisecondsElement.addText(XMLConversionHelper
+ .readElementValue(blocking_timeout_millisecondsElement_jboss));
+ } else {
+ blocking_timeout_millisecondsElement.addText("5000");
+ }
+ if (XMLConversionHelper
+ .containSubElement(local_tx_datasurceElement, "idle-timeout-minutes")) {
+ Element idle_timeout_minutesElement_jboss = XMLConversionHelper.obtainSubElement(
+ local_tx_datasurceElement, "idle-timeout-minutes");
+ idle_timeout_minutesElement.addText(XMLConversionHelper
+ .readElementValue(idle_timeout_minutesElement_jboss));
+ } else {
+ idle_timeout_minutesElement.addText("30");
+ }
+ single_poolElement.add(max_sizeElement);
+ single_poolElement.add(min_sizeElement);
+ single_poolElement.add(blocking_timeout_millisecondsElement);
+ single_poolElement.add(idle_timeout_minutesElement);
+ single_poolElement.add(match_oneElement);
+ connectionmanagerElement.add(local_transactionElement);
+ connectionmanagerElement.add(single_poolElement);
+ return connectionmanagerElement;
+ }
+
+ /**
+ * create the dependencies element by refering the driver class string
+ *
+ * @param driver_class
+ * @return dependencies element
+ */
+ private Element createDependenciesElement(String driver_class, Namespace environmentNamespace) {
+ String id_combination = null;
+ String groupId = null;
+ String artifactId = null;
+ logger.debug("The input driver class to the Dependancy element : " + driver_class);
+ HashMap driverMap = XMLConversionHelper.createDriverStoreHashMap();
+ // if the driver is already in the driver map or else
+ if (driverMap.containsKey(driver_class)) {
+ id_combination = (String) driverMap.get(driver_class);
+ } else {
+ id_combination = XMLConversionHelper
+ .createIdConbinationWhenDriverMapRetrnsEmpty(driver_class);
+ }
+ groupId = id_combination.substring(0, id_combination.indexOf("/"));
+ artifactId = id_combination.substring(id_combination.indexOf("/") + 1, id_combination
+ .length());
+ QName groupIdQName = new QName("groupId", environmentNamespace);
+ Element groupIdElement = DocumentHelper.createElement(groupIdQName);
+ groupIdElement.addText(groupId);
+ QName artifactIdQName = new QName("artifactId", environmentNamespace);
+ Element artifactIdElement = DocumentHelper.createElement(artifactIdQName);
+ artifactIdElement.addText(artifactId);
+ QName typeQName = new QName("type", environmentNamespace);
+ Element typeElement = DocumentHelper.createElement(typeQName);
+ typeElement.addText("jar");
+ QName dependenciesQName = new QName("dependencies", environmentNamespace);
+ Element dependenciesElement = DocumentHelper.createElement(dependenciesQName);
+ QName dependencyQName = new QName("dependency", environmentNamespace);
+ Element dependencyElement = DocumentHelper.createElement(dependencyQName);
+ dependencyElement.add(groupIdElement);
+ dependencyElement.add(artifactIdElement);
+ dependencyElement.add(typeElement);
+ dependenciesElement.add(dependencyElement);
+ return dependenciesElement;
+ }
+
+ /**
+ * creates the default connection manager element
+ *
+ * @param environmentNamespace
+ * @return the connection manager element
+ */
+ public Element createDefaultConnectionManagerElement(Namespace environmentNamespace) {
+ Element connectionmanagerElement = DocumentHelper.createElement(new QName(
+ "connectionmanager", environmentNamespace));
+ Element local_transactionElement = DocumentHelper.createElement(new QName(
+ "local-transaction", environmentNamespace));
+ Element single_poolElement = DocumentHelper.createElement(new QName("single-pool",
+ environmentNamespace));
+ Element max_sizeElement = DocumentHelper.createElement(new QName("max-size",
+ environmentNamespace));
+ Element min_sizeElement = DocumentHelper.createElement(new QName("min-size",
+ environmentNamespace));
+ Element blocking_timeout_millisecondsElement = DocumentHelper.createElement(new QName(
+ "blocking-timeout-milliseconds", environmentNamespace));
+ Element idle_timeout_minutesElement = DocumentHelper.createElement(new QName(
+ "idle-timeout-minutes", environmentNamespace));
+ Element match_oneElement = DocumentHelper.createElement(new QName("match-one",
+ environmentNamespace));
+ max_sizeElement.addText("10");
+ min_sizeElement.addText("0");
+ blocking_timeout_millisecondsElement.addText("5000");
+ idle_timeout_minutesElement.addText("30");
+ single_poolElement.add(max_sizeElement);
+ single_poolElement.add(min_sizeElement);
+ single_poolElement.add(blocking_timeout_millisecondsElement);
+ single_poolElement.add(idle_timeout_minutesElement);
+ single_poolElement.add(match_oneElement);
+ connectionmanagerElement.add(local_transactionElement);
+ connectionmanagerElement.add(single_poolElement);
+ return connectionmanagerElement;
+ }
+
+ /**
+ * retuns true if any of the elements were found on JBoss side
+ *
+ * @param local_tx_datasurceElement
+ * @return status
+ */
+ private boolean checkForConnectionMangerDetails(Element local_tx_datasurceElement) {
+ if (XMLConversionHelper.containSubElement(local_tx_datasurceElement, "min-pool-size")
+ || XMLConversionHelper
+ .containSubElement(local_tx_datasurceElement, "max-pool-size")
+ || XMLConversionHelper.containSubElement(local_tx_datasurceElement,
+ "idle-timeout-minutes")
+ || XMLConversionHelper.containSubElement(local_tx_datasurceElement,
+ "blocking-timeout-milliseconds")) {
+ return true;
+ }
+ return false;
+ }
+
+}
Propchange: geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/src/org/apache/geronimo/devtools/j2g/resources/datasource/DSResourcesTool.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/src/org/apache/geronimo/devtools/j2g/resources/jms/JMSResourcesTool.java
URL: http://svn.apache.org/viewvc/geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/src/org/apache/geronimo/devtools/j2g/resources/jms/JMSResourcesTool.java?rev=582931&view=auto
==============================================================================
--- geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/src/org/apache/geronimo/devtools/j2g/resources/jms/JMSResourcesTool.java (added)
+++ geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/src/org/apache/geronimo/devtools/j2g/resources/jms/JMSResourcesTool.java Mon Oct 8 11:50:05 2007
@@ -0,0 +1,496 @@
+/**
+ * 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.
+ */
+package org.apache.geronimo.devtools.j2g.resources.jms;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.Iterator;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.geronimo.devtools.j2g.common.IFileMigration;
+import org.apache.geronimo.devtools.j2g.common.IOutput;
+import org.apache.geronimo.devtools.j2g.common.Tool;
+import org.apache.geronimo.devtools.j2g.util.resources.Constants;
+import org.apache.geronimo.devtools.j2g.util.resources.xml.XMLConversionHelper;
+import org.dom4j.Attribute;
+import org.dom4j.Document;
+import org.dom4j.DocumentException;
+import org.dom4j.DocumentHelper;
+import org.dom4j.Element;
+import org.dom4j.Namespace;
+import org.dom4j.QName;
+
+/**
+ * Class which implement the JMS Source File Migration
+ */
+public class JMSResourcesTool implements IFileMigration {
+
+ // Initialization of the IOutput for JMSResourcesTool class
+ IOutput out = Tool.getCurrent().getOutput();
+ // Initialization of the logger for JMSResourcesTool class
+ Log logger = LogFactory.getLog(JMSResourcesTool.class);
+
+ /**
+ * mgration method from jms jboss discripters to geronimo discriptors
+ *
+ * @param sourceFile :
+ * jms jboss discriptor file
+ * @return status of the migration
+ */
+ public boolean migrate(File sourceFile, File rootDirectory) {
+ // read any *-servise files and then migrate that to the geronimo jms
+ // resources
+ boolean migrated = false;
+ String directoryName = sourceFile.getParent();
+ String jbossJMSFileName = sourceFile.getName();
+ logger.debug("JMS resources Directory Name ==> " + directoryName);
+ logger.debug("jboss jms file Name ==> " + jbossJMSFileName);
+ // Checking wether file is a valid jbossmq-destinations-service.xml
+ // file
+ if (jbossJMSFileName.equals(Constants.JBOSS_VALID_JMS_DESTINATIONS_SERVICES_XML_FILE)) {
+ logger.debug("Searching for jboss-ds.xml file inside the current directory");
+ if (XMLConversionHelper.isFileExists(directoryName,
+ Constants.JBOSS_VALID_JMS_CONNECTION_FACTORY_XML_FILE)) {
+ logger.debug("jboss jms connection factory xml file Name ==> "
+ + Constants.JBOSS_VALID_JMS_CONNECTION_FACTORY_XML_FILE);
+ File jbossJMSDestinationServicesFile = new File(directoryName,
+ Constants.JBOSS_VALID_JMS_CONNECTION_FACTORY_XML_FILE);
+ logger.debug("Converting Jboss jms files in " + directoryName);
+ try {
+ Document jbossJMSConnectioFactoryDocument = null;
+ try{
+ jbossJMSConnectioFactoryDocument = XMLConversionHelper
+ .getJbossDocument(jbossJMSDestinationServicesFile);
+ } catch (DocumentException e){
+ out.error(JMSResourcesTool.class.getSimpleName(), "Error occured while reading xml descriptor "
+ + jbossJMSDestinationServicesFile.getAbsolutePath()
+ + ". It is possible that the migrator cannot download the xml schema or the xml file has incorrect syntax. Nested exception:"
+ + e.getMessage());
+ throw e;
+ }
+ Document jbossJMSDestinationServicesDocument = null;
+ try {
+ jbossJMSDestinationServicesDocument = XMLConversionHelper
+ .getJbossDocument(sourceFile);
+ } catch(DocumentException e){
+ out.error(JMSResourcesTool.class.getSimpleName(), "Error occured while reading xml descriptor "
+ + sourceFile.getAbsolutePath()
+ + ". It is possible that the migrator cannot download the xml schema or the xml file has incorrect syntax. Nested exception:"
+ + e.getMessage());
+ throw e;
+ }
+ Document geronimoDocument = migrationFromJboss2Geronimo(
+ jbossJMSDestinationServicesDocument.getRootElement(),
+ jbossJMSConnectioFactoryDocument.getRootElement());
+ String geronimoJMSFileName = directoryName + File.separator
+ + Constants.GERONIMO_JMS_PLAN_FILE;
+ // check whether the file already exists if so
+ // back up that and save that or check the req
+ // This was done at the upper level of the tool
+ XMLConversionHelper.saveGeronimoDocument(geronimoJMSFileName,
+ geronimoDocument);
+ migrated = true;
+ out.info(JMSResourcesTool.class.getSimpleName(), "The JMS Resource File Migration Complete !!!\n");
+ } catch(DocumentException ignore){
+ } catch (IOException e) {
+ out.error(JMSResourcesTool.class.getSimpleName(), "IO exception " + e.getMessage());
+ }
+ } else {
+ out.error(JMSResourcesTool.class.getSimpleName(), "Inorder to continue the JMS Resources Tool the "
+ + Constants.JBOSS_VALID_JMS_CONNECTION_FACTORY_XML_FILE
+ + " needs to be present in the working directory ");
+ }
+ }
+
+ return migrated;
+ }
+
+ /**
+ * Accepts the jboss side Elements that holdes the discripter infomation and
+ * return the geronimo discripter
+ *
+ * @param jbossJMSDestinationServicesElement
+ * @param jbossJMSConnectioFactoryElement
+ * @return created geronimo Document
+ */
+ private Document migrationFromJboss2Geronimo(Element jbossJMSDestinationServicesElement,
+ Element jbossJMSConnectioFactoryElement) {
+ Document newGeronimoDocument = null;
+ if (XMLConversionHelper.containSubElement(jbossJMSConnectioFactoryElement,
+ "tx-connection-factory")) {
+ Element tx_connection_factoryElement = XMLConversionHelper.obtainSubElement(
+ jbossJMSConnectioFactoryElement, "tx-connection-factory");
+ Element jndi_nameElement = XMLConversionHelper.obtainSubElement(
+ tx_connection_factoryElement, "jndi-name");
+ String jndi_nameString = jndi_nameElement.getText();
+ Document geronimoDocument = XMLConversionHelper.createNewGeronimoDocument(
+ Constants.NAMESPACE_CONNECTOR, "connector", Constants.JMS_RESOURCE_TOOL,
+ jndi_nameString, Constants.NAMESPACE_ENV);
+ newGeronimoDocument = addResourceAdapterElement(geronimoDocument,
+ jbossJMSDestinationServicesElement, jbossJMSConnectioFactoryElement);
+
+ } else {
+ out
+ .error(JMSResourcesTool.class.getSimpleName(), "The supplied jboss-ds.xml file does not contain the nessesary tx-connection-factory details");
+ }
+ return newGeronimoDocument;
+ }
+
+ /**
+ * Add the resource adapter element to the geronimodocument
+ *
+ * @param geronimoDocument
+ * @param jbossJMSDestinationServicesElement
+ * @param jbossJMSConnectioFactoryElement
+ * @return geronimo document with added resource adapter
+ */
+ private Document addResourceAdapterElement(Document geronimoDocument,
+ Element jbossJMSDestinationServicesElement, Element jbossJMSConnectioFactoryElement) {
+ Namespace rootNamespace = geronimoDocument.getRootElement().getNamespace();
+ Element resourceAdapterElement = DocumentHelper.createElement(new QName("resourceadapter",
+ rootNamespace));
+ Element resourceAdapter_instanceElement = DocumentHelper.createElement(new QName(
+ "resourceadapter-instance", rootNamespace));
+ Element resourceAdapter_nameElement = DocumentHelper.createElement(new QName(
+ "resourceadapter-name", rootNamespace));
+ Element tx_connection_factoryElement = XMLConversionHelper.obtainSubElement(
+ jbossJMSConnectioFactoryElement, "tx-connection-factory");
+ if (XMLConversionHelper.containSubElementWithAttribute(tx_connection_factoryElement,
+ "config-property", "name", "JmsProviderAdapterJNDI")) {
+ Element config_propertyElement = XMLConversionHelper.obtainSubElementWithAttribute(
+ tx_connection_factoryElement, "config-property", "name",
+ "JmsProviderAdapterJNDI");
+ String name = XMLConversionHelper.obtainNameFromJNDINAME(config_propertyElement
+ .getText());
+ resourceAdapter_nameElement.addText(name);
+ } else {
+ resourceAdapter_nameElement.addText("MY JMS Resource");
+ }
+ resourceAdapter_instanceElement.add(resourceAdapter_nameElement);
+ resourceAdapter_instanceElement.add(XMLConversionHelper.createSiblingWithAttrib(
+ "config-property-setting", "tcp://localhost:61616", "name", "ServerURL",
+ rootNamespace));
+ resourceAdapter_instanceElement.add(XMLConversionHelper.createSiblingWithAttrib(
+ "config-property-setting", "geronimo", "name", "UserName", rootNamespace));
+ resourceAdapter_instanceElement.add(XMLConversionHelper.createSiblingWithAttrib(
+ "config-property-setting", "geronimo", "name", "Password", rootNamespace));
+ Namespace namingNamespace = new Namespace("naming", Constants.NAMESPACE_GERONIMO_NAMING);
+ Element workmanagerElement = DocumentHelper.createElement(new QName("workmanager",
+ namingNamespace));
+ workmanagerElement.add(XMLConversionHelper.createSibling("gbean-link",
+ "DefaultWorkManager", namingNamespace));
+ resourceAdapter_instanceElement.add(workmanagerElement);
+ resourceAdapterElement.add(resourceAdapter_instanceElement);
+ //Add outboundresource adapters and adminobjects (check what are
+ // the mapping that exist for those things)
+ Element outboundresourceElement = addOutBoundResourcesAdapterElement(geronimoDocument,
+ jbossJMSDestinationServicesElement, jbossJMSConnectioFactoryElement);
+ resourceAdapterElement.add(outboundresourceElement);
+ geronimoDocument.getRootElement().add(resourceAdapterElement);
+ geronimoDocument = addAdminObjectElement(geronimoDocument,
+ jbossJMSDestinationServicesElement, jbossJMSConnectioFactoryElement);
+ return geronimoDocument;
+ }
+
+ /**
+ * Add the outbound resource adapter to the geronimo document
+ *
+ * @param geronimoDocument
+ * @param jbossJMSDestinationServicesElement
+ * @param jbossJMSConnectioFactoryElement
+ * @return geronimo document with the added outbound resource adapter
+ */
+ private Element addOutBoundResourcesAdapterElement(Document geronimoDocument,
+ Element jbossJMSDestinationServicesElement, Element jbossJMSConnectioFactoryElement) {
+ Namespace rootNamespace = geronimoDocument.getRootElement().getNamespace();
+ Element outbound_resourceAdapterElement = DocumentHelper.createElement(new QName(
+ "outbound-resourceadapter", rootNamespace));
+ Element connection_definitionElement = DocumentHelper.createElement(new QName(
+ "connection-definition", rootNamespace));
+ Element connectionfactory_interfaceElement = DocumentHelper.createElement(new QName(
+ "connectionfactory-interface", rootNamespace));
+ connectionfactory_interfaceElement.addText("javax.jms.ConnectionFactory");
+ Element connectiondefinition_instanceElement = DocumentHelper.createElement(new QName(
+ "connectiondefinition-instance", rootNamespace));
+ connectiondefinition_instanceElement.add(XMLConversionHelper.createSibling("name",
+ "MyConnectionFactory", rootNamespace));
+ connectiondefinition_instanceElement.add(XMLConversionHelper.createSibling(
+ "implemented-interface", "javax.jms.QueueConnectionFactory", rootNamespace));
+ connectiondefinition_instanceElement.add(XMLConversionHelper.createSibling(
+ "implemented-interface", "javax.jms.TopicConnectionFactory", rootNamespace));
+ Element tx_connection_factoryElement = XMLConversionHelper.obtainSubElement(
+ jbossJMSConnectioFactoryElement, "tx-connection-factory");
+ if (checkConnectionMangerDetailsExistsInJboss(tx_connection_factoryElement)) {
+ connectiondefinition_instanceElement.add(connectionMangerDetailsExistsInJboss(
+ tx_connection_factoryElement, rootNamespace));
+ } else {
+ connectiondefinition_instanceElement
+ .add(createDefaultConnectionManagerElement(rootNamespace));
+ }
+ connection_definitionElement.add(connectionfactory_interfaceElement);
+ connection_definitionElement.add(connectiondefinition_instanceElement);
+ outbound_resourceAdapterElement.add(connection_definitionElement);
+ return outbound_resourceAdapterElement;
+ }
+
+ /**
+ * add the admin objects to the currently existing geronimo document
+ *
+ * @param geronimoDocument
+ * @param jbossJMSDestinationServicesElement
+ * @param jbossJMSConnectioFactoryElement
+ * @return return the geronimo document which contains the admin objects
+ */
+ private Document addAdminObjectElement(Document geronimoDocument,
+ Element jbossJMSDestinationServicesElement, Element jbossJMSConnectioFactoryElement) {
+
+ Iterator elementIterator = jbossJMSDestinationServicesElement.elementIterator();
+ while (elementIterator.hasNext()) {
+ Element itElement = (Element) elementIterator.next();
+ if (itElement.getName().equals("mbean")) {
+ String queueOrTopic = null;
+ String queueOrTopicName = null;
+ String newQueueOrTopicName = null;
+ Iterator attribIterator = itElement.attributeIterator();
+ while (attribIterator.hasNext()) {
+ Attribute itAttribute = (Attribute) attribIterator.next();
+ if (itAttribute.getName().equals("code")) {
+ if (itAttribute.getData().equals(Constants.TOPIC_CLASS_JBOSS)) {
+ queueOrTopic = "topic";
+ }
+ if (itAttribute.getData().equals(Constants.QUEUE_CLASS_JBOSS)) {
+ queueOrTopic = "queue";
+ }
+ } else if (itAttribute.getName().equals("name")) {
+ queueOrTopicName = (String) itAttribute.getData();
+ newQueueOrTopicName = queueOrTopicName.substring(queueOrTopicName
+ .indexOf("name=") + 5, queueOrTopicName.length());
+ }
+ }
+ if (queueOrTopic.equals("queue")) {
+ geronimoDocument = addTopicElement(geronimoDocument, newQueueOrTopicName);
+ }
+ if (queueOrTopic.equals("topic")) {
+ geronimoDocument = addQueueElement(geronimoDocument, newQueueOrTopicName);
+ }
+ boolean securityCheck = checkForSecurityConfIndideMBeanElement(itElement);
+ if (securityCheck) {
+ logger
+ .warn("destination JBoss descriptor has the SecurityConf attribute inside the MBean Element "
+ + "which are decoded");
+ }
+ }
+ }
+ return geronimoDocument;
+ }
+
+ /**
+ * check wether the passed mbean element have any security configuration
+ * details
+ *
+ * @param itElement
+ * passesd mbean element
+ * @return boolean wether contains or not
+ */
+ private boolean checkForSecurityConfIndideMBeanElement(Element itElement) {
+ return XMLConversionHelper.containSubElementWithAttribute(itElement, "attribute", "name",
+ "SecurityConf");
+ }
+
+ /**
+ * add the topic element to the existing geronimo document
+ *
+ * @param geronimoDocument
+ * @param jbossJMSDestinationServicesElement
+ * @param jbossJMSConnectioFactoryElement
+ * @return geronimo document with the topic element added as a admin object
+ */
+ private Document addTopicElement(Document geronimoDocument, String topicName) {
+ Namespace rootNamespace = geronimoDocument.getRootElement().getNamespace();
+ Element adminobjectElement = DocumentHelper.createElement(new QName("adminobject",
+ rootNamespace));
+ adminobjectElement.add(XMLConversionHelper.createSibling("adminobject-interface",
+ "javax.jms.Topic", rootNamespace));
+ adminobjectElement.add(XMLConversionHelper.createSibling("adminobject-class",
+ "org.activemq.message.ActiveMQTopic", rootNamespace));
+ Element adminobject_instanceElement = DocumentHelper.createElement(new QName(
+ "adminobject-instance", rootNamespace));
+ adminobject_instanceElement.add(XMLConversionHelper.createSibling(
+ "message-destination-name", topicName, rootNamespace));
+ adminobject_instanceElement.add(XMLConversionHelper.createSiblingWithAttrib(
+ "config-property-setting", " Mytopic", "name", "PhysicalName", rootNamespace));
+ adminobjectElement.add(adminobject_instanceElement);
+ geronimoDocument.getRootElement().add(adminobjectElement);
+ return geronimoDocument;
+ }
+
+ /**
+ * add queue elament to the geronimo existing document
+ *
+ * @param geronimoDocument
+ * @param jbossJMSDestinationServicesElement
+ * @param jbossJMSConnectioFactoryElement
+ * @return the geronimo document by adding the Queue as a admin object
+ */
+ private Document addQueueElement(Document geronimoDocument, String queueName) {
+ Namespace rootNamespace = geronimoDocument.getRootElement().getNamespace();
+ Element adminobjectElement = DocumentHelper.createElement(new QName("adminobject",
+ rootNamespace));
+ adminobjectElement.add(XMLConversionHelper.createSibling("adminobject-interface",
+ "javax.jms.Queue", rootNamespace));
+ adminobjectElement.add(XMLConversionHelper.createSibling("adminobject-class",
+ "org.activemq.message.ActiveMQTopic", rootNamespace));
+ Element adminobject_instanceElement = DocumentHelper.createElement(new QName(
+ "adminobject-instance", rootNamespace));
+ adminobject_instanceElement.add(XMLConversionHelper.createSibling(
+ "message-destination-name", queueName, rootNamespace));
+ adminobject_instanceElement.add(XMLConversionHelper.createSiblingWithAttrib(
+ "config-property-setting", " MyQueue", "name", "PhysicalName", rootNamespace));
+ adminobjectElement.add(adminobject_instanceElement);
+ geronimoDocument.getRootElement().add(adminobjectElement);
+ return geronimoDocument;
+ }
+
+ /**
+ * Creates a default connection manager elements with the defaults values
+ *
+ * @param environmentNamespace
+ * @return default commection manager elament
+ */
+ public Element createDefaultConnectionManagerElement(Namespace environmentNamespace) {
+ Element connectionmanagerElement = DocumentHelper.createElement(new QName(
+ "connectionmanager", environmentNamespace));
+ Element local_transactionElement = DocumentHelper.createElement(new QName(
+ "local-transaction", environmentNamespace));
+ Element single_poolElement = DocumentHelper.createElement(new QName("single-pool",
+ environmentNamespace));
+ Element max_sizeElement = DocumentHelper.createElement(new QName("max-size",
+ environmentNamespace));
+ Element min_sizeElement = DocumentHelper.createElement(new QName("min-size",
+ environmentNamespace));
+ Element blocking_timeout_millisecondsElement = DocumentHelper.createElement(new QName(
+ "blocking-timeout-milliseconds", environmentNamespace));
+ Element idle_timeout_minutesElement = DocumentHelper.createElement(new QName(
+ "idle-timeout-minutes", environmentNamespace));
+ Element match_oneElement = DocumentHelper.createElement(new QName("match-one",
+ environmentNamespace));
+ max_sizeElement.addText("10");
+ min_sizeElement.addText("0");
+ blocking_timeout_millisecondsElement.addText("5000");
+ idle_timeout_minutesElement.addText("30");
+ single_poolElement.add(max_sizeElement);
+ single_poolElement.add(min_sizeElement);
+ single_poolElement.add(blocking_timeout_millisecondsElement);
+ single_poolElement.add(idle_timeout_minutesElement);
+ single_poolElement.add(match_oneElement);
+ connectionmanagerElement.add(local_transactionElement);
+ connectionmanagerElement.add(single_poolElement);
+ return connectionmanagerElement;
+ }
+
+ /**
+ * check wether the connection manager details are there at the jboss side
+ *
+ * @param jbossJMSConnectioFactoryElement
+ * @return boolean check of the existance
+ */
+ private boolean checkConnectionMangerDetailsExistsInJboss(Element tx_connection_factoryElement) {
+ boolean check = false;
+ if (XMLConversionHelper.containSubElement(tx_connection_factoryElement, "min-pool-size")) {
+ check = true;
+ }
+ if (XMLConversionHelper.containSubElement(tx_connection_factoryElement, "max-pool-size")) {
+ check = true;
+ }
+ if (XMLConversionHelper.containSubElement(tx_connection_factoryElement,
+ "blocking-timeout-millis")) {
+ check = true;
+ }
+ if (XMLConversionHelper.containSubElement(tx_connection_factoryElement,
+ "idle-timeout-minutes")) {
+ check = true;
+ }
+ return check;
+ }
+
+ /**
+ * this method created the connection manager element refering the existing
+ * elements at the jboss side
+ *
+ * @param jbossJMSConnectioFactoryElement
+ * @return connectionMangerElement
+ */
+ private Element connectionMangerDetailsExistsInJboss(Element tx_connection_factoryElement,
+ Namespace environmentNamespace) {
+ Element connectionmanagerElement = DocumentHelper.createElement(new QName(
+ "connectionmanager", environmentNamespace));
+ Element local_transactionElement = DocumentHelper.createElement(new QName(
+ "local-transaction", environmentNamespace));
+ Element single_poolElement = DocumentHelper.createElement(new QName("single-pool",
+ environmentNamespace));
+ Element max_sizeElement = DocumentHelper.createElement(new QName("max-size",
+ environmentNamespace));
+ Element min_sizeElement = DocumentHelper.createElement(new QName("min-size",
+ environmentNamespace));
+ Element blocking_timeout_millisecondsElement = DocumentHelper.createElement(new QName(
+ "blocking-timeout-milliseconds", environmentNamespace));
+ Element idle_timeout_minutesElement = DocumentHelper.createElement(new QName(
+ "idle-timeout-minutes", environmentNamespace));
+ Element match_oneElement = DocumentHelper.createElement(new QName("match-one",
+ environmentNamespace));
+ if (XMLConversionHelper.containSubElement(tx_connection_factoryElement, "max-pool-size")) {
+ String value = XMLConversionHelper.obtainSubElement(tx_connection_factoryElement,
+ "max-pool-size").getText();
+ max_sizeElement.addText(value);
+ } else {
+ max_sizeElement.addText("10");
+ }
+ if (XMLConversionHelper.containSubElement(tx_connection_factoryElement, "min-pool-size")) {
+ String value = XMLConversionHelper.obtainSubElement(tx_connection_factoryElement,
+ "min-pool-size").getText();
+ min_sizeElement.addText(value);
+ } else {
+ min_sizeElement.addText("0");
+ }
+ if (XMLConversionHelper.containSubElement(tx_connection_factoryElement,
+ "blocking-timeout-millis")) {
+ String value = XMLConversionHelper.obtainSubElement(tx_connection_factoryElement,
+ "blocking-timeout-millis").getText();
+ blocking_timeout_millisecondsElement.addText(value);
+ } else {
+ blocking_timeout_millisecondsElement.addText("5000");
+ }
+ if (XMLConversionHelper.containSubElement(tx_connection_factoryElement,
+ "idle-timeout-minutes")) {
+ String value = XMLConversionHelper.obtainSubElement(tx_connection_factoryElement,
+ "idle-timeout-minutes").getText();
+ idle_timeout_minutesElement.addText(value);
+ } else {
+ idle_timeout_minutesElement.addText("30");
+ }
+ single_poolElement.add(max_sizeElement);
+ single_poolElement.add(min_sizeElement);
+ single_poolElement.add(blocking_timeout_millisecondsElement);
+ single_poolElement.add(idle_timeout_minutesElement);
+ single_poolElement.add(match_oneElement);
+ connectionmanagerElement.add(local_transactionElement);
+ connectionmanagerElement.add(single_poolElement);
+ return connectionmanagerElement;
+ }
+
+}
Propchange: geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/src/org/apache/geronimo/devtools/j2g/resources/jms/JMSResourcesTool.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/src/org/apache/geronimo/devtools/j2g/resources/mail/MailResourcesTool.java
URL: http://svn.apache.org/viewvc/geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/src/org/apache/geronimo/devtools/j2g/resources/mail/MailResourcesTool.java?rev=582931&view=auto
==============================================================================
--- geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/src/org/apache/geronimo/devtools/j2g/resources/mail/MailResourcesTool.java (added)
+++ geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/src/org/apache/geronimo/devtools/j2g/resources/mail/MailResourcesTool.java Mon Oct 8 11:50:05 2007
@@ -0,0 +1,174 @@
+/**
+ * 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.
+ */
+package org.apache.geronimo.devtools.j2g.resources.mail;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.Iterator;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.geronimo.devtools.j2g.common.IFileMigration;
+import org.apache.geronimo.devtools.j2g.common.IOutput;
+import org.apache.geronimo.devtools.j2g.common.Tool;
+import org.apache.geronimo.devtools.j2g.util.resources.Constants;
+import org.apache.geronimo.devtools.j2g.util.resources.xml.XMLConversionHelper;
+import org.dom4j.Attribute;
+import org.dom4j.Document;
+import org.dom4j.DocumentException;
+import org.dom4j.DocumentHelper;
+import org.dom4j.Element;
+import org.dom4j.Namespace;
+import org.dom4j.QName;
+
+/**
+ * Class which implement the Mail Source File Migration
+ */
+public class MailResourcesTool implements IFileMigration {
+
+ // Initialization of the IOutput for MailResourcesTool class
+ IOutput out = Tool.getCurrent().getOutput();
+ // Initialization of the logger for MailResourcesTool class
+ Log logger = LogFactory.getLog(MailResourcesTool.class);
+
+ /**
+ * mgration method from jms jboss discripters to geronimo discriptors
+ *
+ * @param sourceFile :jms jboss d"iscriptor file
+ * @return status of the migration
+ */
+ public boolean migrate(File sourceFile, File rootDirectory) {
+ boolean migrated = false;
+ String directoryName = sourceFile.getParent();
+ String mailFilename = sourceFile.getName();
+ logger.debug("Directory Name ==> " + directoryName
+ + " jboss mail source file Name ==> " + mailFilename);
+ if (mailFilename.equals(Constants.JBOSS_VALID_MAIL_XML_FILE)) {
+ out.info(MailResourcesTool.class.getSimpleName(), "Converting Jboss mail xml file in " + directoryName);
+ try {
+ Document jbossDocument = XMLConversionHelper.getJbossDocument(sourceFile);
+ // check the existance of the plain password
+ // authentication in the jboss RootElement
+ if (XMLConversionHelper.containSubElementWithAttribute(XMLConversionHelper
+ .obtainSubElement(jbossDocument.getRootElement(), "mbean"),
+ "attribute", "name", "Password")) {
+ out
+ .error(MailResourcesTool.class.getSimpleName(), "The mail descripter file "
+ + mailFilename
+ + " contains the plain text password authentication, Aborting the Process !!!");
+ } else {
+ Document geronimoDocument = migrationFromJboss2Geronimo(jbossDocument
+ .getRootElement());
+ String geronimoMailFileName = directoryName + File.separator
+ + Constants.GERONIMO_MAIL_PLAN_FILE;
+ // check whether the file already exists if so
+ // back up that and save that or check the req
+ // This being done at upper level
+ XMLConversionHelper.saveGeronimoDocument(geronimoMailFileName,
+ geronimoDocument);
+ migrated = true;
+ out.info(MailResourcesTool.class.getSimpleName(), "The Mail Resource File Migration Complete!!!\n");
+ }
+ } catch (DocumentException e) {
+ out.error(MailResourcesTool.class.getSimpleName(), "Error occured while reading xml descriptor "
+ + sourceFile.getAbsolutePath()
+ + ". It is possible that the migrator cannot download the xml schema or the xml file has incorrect syntax. Nested exception:"
+ + e.getMessage());
+ } catch (IOException e) {
+ out.error(MailResourcesTool.class.getSimpleName(), "IO exception " + e.getMessage());
+ }
+ }
+ return migrated;
+ }
+
+ /**
+ * Accepts the jboss side Elements that holdes the discripter infomation and
+ * return the geronimo discripter
+ *
+ * @param jbossRootElement
+ * @return geronimo plan
+ */
+ private Document migrationFromJboss2Geronimo(Element jbossRootElement) {
+ Element gbeanElament = XMLConversionHelper.obtainSubElement(jbossRootElement, "mbean");
+ Element jbossAttributeElement = XMLConversionHelper.obtainSubElementWithAttribute(
+ gbeanElament, "attribute", "name", "JNDIName");
+ Document geronimoDocument = XMLConversionHelper.createNewGeronimoDocument(
+ Constants.NAMESPACE_ENV, "module", Constants.MAIL_RESOURCE_TOOL,
+ jbossAttributeElement.getStringValue(), "");
+ Document newGeronimoDocument = createMailGBean(geronimoDocument, jbossRootElement);
+ return newGeronimoDocument;
+ }
+
+ /**
+ * create the MailGBean element by refering the jboss side mbean elaments
+ *
+ * @param geronimoDocument
+ * @param jbossRootElement
+ * @return the MailGbean element
+ */
+ private Document createMailGBean(Document geronimoDocument, Element jbossRootElement) {
+ Namespace rootNamespace = geronimoDocument.getRootElement().getNamespace();
+ Element gbeanElement = DocumentHelper.createElement(new QName("gbean", rootNamespace));
+ gbeanElement.add(DocumentHelper.createAttribute(gbeanElement, "name", "mailSession"));
+ gbeanElement.add(DocumentHelper.createAttribute(gbeanElement, "class",
+ "org.apache.geronimo.mail.MailGBean"));
+ Element attributeElement = DocumentHelper.createElement(new QName("attribute",
+ rootNamespace));
+ attributeElement.add(DocumentHelper.createAttribute(gbeanElement, "name", "properties"));
+ Element gbeanElament = XMLConversionHelper.obtainSubElement(jbossRootElement, "mbean");
+ Element jbossAttributeElement = XMLConversionHelper.obtainSubElementWithAttribute(
+ gbeanElament, "attribute", "name", "Configuration");
+ Element configurationelement = XMLConversionHelper.obtainSubElement(jbossAttributeElement,
+ "configuration");
+ attributeElement.add(DocumentHelper
+ .createCDATA(obtainMailConfigurationString(configurationelement)));
+// .createText(obtainMailConfigurationString(configurationelement)));
+ gbeanElement.add(attributeElement);
+ geronimoDocument.getRootElement().add(gbeanElement);
+ return geronimoDocument;
+ }
+
+ /**
+ * obtain the mail configuration elemant from the configuration element
+ *
+ * @param configurationElement
+ * @return sring of mail configuration
+ */
+ private String obtainMailConfigurationString(Element configurationElement) {
+ Iterator elementIterator = configurationElement.elementIterator();
+ String configurationString = "";
+ String name = null;
+ String value = null;
+ while (elementIterator.hasNext()) {
+ Element itElement = (Element) elementIterator.next();
+ if (itElement.getName().equals("property")) {
+ Iterator attribIterator = itElement.attributeIterator();
+ while (attribIterator.hasNext()) {
+ Attribute itAttribute = (Attribute) attribIterator.next();
+ if (itAttribute.getName().equals("name")) {
+ name = itAttribute.getText();
+ } else if (itAttribute.getName().equals("value")) {
+ value = itAttribute.getText();
+ }
+ }
+ configurationString += ("\r\n" + name + "=" + value );
+ }
+ }
+ return configurationString;
+ }
+
+}
Propchange: geronimo/devtools/j2g/trunk/plugins/org.apache.geronimo.devtools.j2g.resources/src/org/apache/geronimo/devtools/j2g/resources/mail/MailResourcesTool.java
------------------------------------------------------------------------------
svn:eol-style = native