[jboss-cvs] JBossAS SVN: r89849 - in projects/jboss-jca/trunk: doc/developerguide/en and 12 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Jun 4 16:26:25 EDT 2009


Author: jesper.pedersen
Date: 2009-06-04 16:26:25 -0400 (Thu, 04 Jun 2009)
New Revision: 89849

Added:
   projects/jboss-jca/trunk/sjc/
   projects/jboss-jca/trunk/sjc/build.xml
   projects/jboss-jca/trunk/sjc/src/
   projects/jboss-jca/trunk/sjc/src/main/
   projects/jboss-jca/trunk/sjc/src/main/java/
   projects/jboss-jca/trunk/sjc/src/main/java/org/
   projects/jboss-jca/trunk/sjc/src/main/java/org/jboss/
   projects/jboss-jca/trunk/sjc/src/main/java/org/jboss/jca/
   projects/jboss-jca/trunk/sjc/src/main/java/org/jboss/jca/sjc/
   projects/jboss-jca/trunk/sjc/src/main/java/org/jboss/jca/sjc/JarFilter.java
   projects/jboss-jca/trunk/sjc/src/main/java/org/jboss/jca/sjc/Main.java
   projects/jboss-jca/trunk/sjc/src/main/java/org/jboss/jca/sjc/SecurityActions.java
   projects/jboss-jca/trunk/sjc/src/main/java/org/jboss/jca/sjc/deployers/
   projects/jboss-jca/trunk/sjc/src/main/java/org/jboss/jca/sjc/deployers/Deployer.java
   projects/jboss-jca/trunk/sjc/src/main/java/org/jboss/jca/sjc/deployers/Deployment.java
   projects/jboss-jca/trunk/sjc/src/main/java/org/jboss/jca/sjc/deployers/RarDeployer.java
   projects/jboss-jca/trunk/sjc/src/main/java/org/jboss/jca/sjc/deployers/package.html
   projects/jboss-jca/trunk/sjc/src/main/java/org/jboss/jca/sjc/hack/
   projects/jboss-jca/trunk/sjc/src/main/java/org/jboss/jca/sjc/hack/JMX.java
   projects/jboss-jca/trunk/sjc/src/main/java/org/jboss/jca/sjc/hack/package.html
   projects/jboss-jca/trunk/sjc/src/main/java/org/jboss/jca/sjc/package.html
   projects/jboss-jca/trunk/sjc/src/main/resources/
   projects/jboss-jca/trunk/sjc/src/main/resources/boot.xml
   projects/jboss-jca/trunk/sjc/src/main/resources/boot.xsd
   projects/jboss-jca/trunk/sjc/src/main/resources/jndi.properties
   projects/jboss-jca/trunk/sjc/src/main/resources/log4j.xml
   projects/jboss-jca/trunk/sjc/src/main/resources/run.sh
   projects/jboss-jca/trunk/sjc/src/main/resources/sjc-manifest.mf
Modified:
   projects/jboss-jca/trunk/build.xml
   projects/jboss-jca/trunk/doc/developerguide/en/master.xml
   projects/jboss-jca/trunk/ivy.xml
   projects/jboss-jca/trunk/lib/
Log:
[JBJCA-95] JBoss JCA/SJC

Modified: projects/jboss-jca/trunk/build.xml
===================================================================
--- projects/jboss-jca/trunk/build.xml	2009-06-04 20:24:37 UTC (rev 89848)
+++ projects/jboss-jca/trunk/build.xml	2009-06-04 20:26:25 UTC (rev 89849)
@@ -65,10 +65,12 @@
   <property name="version.apache-log4j" value="1.2.14"/>
   <property name="version.apache-logging" value="1.1.0.jboss"/>
   <property name="version.apache-xerces" value="2.9.1"/>
+  <property name="version.activation" value="1.1.1"/>
   <property name="version.easymock" value="2.4"/>
   <property name="version.javassist" value="3.10.0.GA"/>
-  <property name="version.jaxb.api" value="2.0"/>
+  <property name="version.jaxb.api" value="2.1"/>
   <property name="version.jaxb.impl" value="2.1"/>
+  <property name="version.jaxb.xjc" value="2.1.6"/>
   <property name="version.jboss.aop" value="2.1.1.GA"/>
   <property name="version.jboss.bootstrap" value="1.0.0-Beta-3"/>
   <property name="version.jboss.classloading" value="2.2.0.M4"/>
@@ -92,12 +94,22 @@
   <property name="version.jboss.vfs" value="2.2.0.M4"/>
   <property name="version.jboss.xb" value="2.0.1.GA"/>
   <property name="version.junit" value="4.5"/>
+  <property name="version.stax" value="1.0.1"/>
   <property name="version.transaction.api" value="1.0.1.GA"/>
   <property name="version.trove" value="2.1.1"/>
 
   <!-- ================================= 
        Paths              
        ================================= -->
+  <path id="sjc.lib.path.id">
+    <fileset dir="${lib.dir}/sjc">
+      <include name="**/*.jar"/>
+    </fileset>
+    <fileset dir="${target.dir}">
+      <include name="**/*.jar"/>
+    </fileset>
+  </path>
+
   <path id="standalone.lib.path.id">
     <fileset dir="${lib.dir}/standalone">
       <include name="**/*.jar"/>
@@ -166,6 +178,7 @@
     <ant dir="common" inheritRefs="true" target="jars"/>
     <ant dir="core" inheritRefs="true" target="jars"/>
     <ant dir="deployers" inheritRefs="true" target="jars"/>
+    <ant dir="sjc" inheritRefs="true" target="jars"/>
     <ant dir="standalone" inheritRefs="true" target="jars"/>
   </target>
   
@@ -177,6 +190,7 @@
     <ant dir="common" inheritRefs="true" target="docs"/>
     <ant dir="core" inheritRefs="true" target="docs"/>
     <ant dir="deployers" inheritRefs="true" target="docs"/>
+    <ant dir="sjc" inheritRefs="true" target="docs"/>
     <ant dir="standalone" inheritRefs="true" target="docs"/>
   </target>
   
@@ -204,6 +218,13 @@
   </target>
 
   <!-- ================================= 
+       Target: sjc
+       ================================= -->
+  <target name="sjc" depends="jars">
+    <ant dir="sjc" inheritRefs="true" target="sjc"/>
+  </target>
+
+  <!-- ================================= 
        Target: standalone
        ================================= -->
   <target name="standalone" depends="jars">
@@ -256,6 +277,7 @@
       <class location="${target.dir}/jboss-jca-core-impl.jar" />
       <class location="${target.dir}/jboss-jca-deployers-main.jar" />
       <class location="${target.dir}/jboss-jca-deployers-rar.jar" />
+      <class location="${target.dir}/jboss-jca-sjc.jar" />
       <class location="${target.dir}/jboss-jca-standalone.jar" />
     </findbugs>
   </target>

Modified: projects/jboss-jca/trunk/doc/developerguide/en/master.xml
===================================================================
--- projects/jboss-jca/trunk/doc/developerguide/en/master.xml	2009-06-04 20:24:37 UTC (rev 89848)
+++ projects/jboss-jca/trunk/doc/developerguide/en/master.xml	2009-06-04 20:26:25 UTC (rev 89849)
@@ -7,6 +7,7 @@
         <!ENTITY testing SYSTEM "modules/testing.xml">
         <!ENTITY metadata SYSTEM "modules/metadata.xml">
         <!ENTITY deployers SYSTEM "modules/deployers.xml">
+        <!ENTITY standalone SYSTEM "modules/standalone.xml">
         ]>
 <book lang="en">
    <bookinfo>
@@ -30,4 +31,6 @@
 
    &deployers;
 
+   &standalone;
+
 </book>

Modified: projects/jboss-jca/trunk/ivy.xml
===================================================================
--- projects/jboss-jca/trunk/ivy.xml	2009-06-04 20:24:37 UTC (rev 89848)
+++ projects/jboss-jca/trunk/ivy.xml	2009-06-04 20:26:25 UTC (rev 89849)
@@ -32,21 +32,24 @@
   <configurations>
     <conf name="standalone" transitive="false"/>
     <conf name="test" extends="standalone" transitive="false"/>
+    <conf name="sjc" transitive="false"/>
   </configurations>
 
   <dependencies>
-    <dependency org="apache-log4j" name="log4j" rev="${version.apache-log4j}" conf="standalone->default"/>
+    <dependency org="apache-log4j" name="log4j" rev="${version.apache-log4j}" conf="standalone->default;sjc->*"/>
     <dependency org="apache-logging" name="commons-logging" rev="${version.apache-logging}" conf="*"/>
     <dependency org="javassist" name="javassist" rev="${version.javassist}" conf="standalone->default"/>
-    <dependency org="javax.xml" name="jaxb-api" rev="${version.jaxb.api}" conf="standalone->default"/>
-    <dependency org="javax.xml" name="jaxb-impl" rev="${version.jaxb.impl}" conf="standalone->default"/>
-    <dependency org="jboss.jbossts" name="jbossjta" rev="${version.jboss.ts}" conf="standalone->default"/>
-    <dependency org="jboss.jbossts" name="jbossjta-integration" rev="${version.jboss.ts}" conf="standalone->default"/>
-    <dependency org="jboss.jbossts" name="jbossts-common" rev="${version.jboss.ts}" conf="standalone->default"/>
+    <dependency org="javax.xml.bind" name="jaxb-api" rev="${version.jaxb.api}" conf="standalone->default;sjc->*"/>
+    <dependency org="javax.xml" name="jaxb-impl" rev="${version.jaxb.impl}" conf="standalone->default;sjc->*"/>
+    <dependency org="javax.activation" name="activation" rev="${version.activation}" conf="standalone->default;sjc->*"/>
+    <dependency org="com.sun.xml.bind" name="jaxb-xjc" rev="${version.jaxb.xjc}" conf="standalone->default;sjc->*"/>
+    <dependency org="jboss.jbossts" name="jbossjta" rev="${version.jboss.ts}" conf="standalone->default;sjc->*"/>
+    <dependency org="jboss.jbossts" name="jbossjta-integration" rev="${version.jboss.ts}" conf="standalone->default;sjc->*"/>
+    <dependency org="jboss.jbossts" name="jbossts-common" rev="${version.jboss.ts}" conf="standalone->default;sjc->*"/>
     <dependency org="junit" name="junit" rev="${version.junit}" conf="test->default"/>
     <dependency org="org.easymock" name="easymock" rev="${version.easymock}" conf="test->default"/>
     <dependency org="org.easymock" name="easymockclassextension" rev="${version.easymock}" conf="test->default"/>
-    <dependency org="org.jboss" name="jboss-common-core" rev="${version.jboss.common}" conf="standalone->default"/>
+    <dependency org="org.jboss" name="jboss-common-core" rev="${version.jboss.common}" conf="standalone->default;sjc->*"/>
     <dependency org="org.jboss" name="jboss-mdr" rev="${version.jboss.mdr}" conf="standalone->default"/>
     <dependency org="org.jboss" name="jboss-reflect" rev="${version.jboss.reflect}" conf="standalone->default"/>
     <dependency org="org.jboss" name="jboss-vfs" rev="${version.jboss.vfs}" conf="standalone->default"/>
@@ -70,22 +73,23 @@
     <dependency org="org.jboss.deployers" name="jboss-deployers-vfs" rev="${version.jboss.deployers}" conf="standalone->default"/>
     <dependency org="org.jboss.deployers" name="jboss-deployers-vfs-spi" rev="${version.jboss.deployers}" conf="standalone->default"/>
     <dependency org="org.jboss.ejb3" name="jboss-ejb3-test" rev="${version.jboss.ejb3.test}" conf="test->default"/>
-    <dependency org="org.jboss.integration" name="jboss-integration" rev="${version.jboss.integration}" conf="standalone->default"/>
-    <dependency org="org.jboss.javaee" name="jboss-transaction-api" rev="${version.transaction.api}" conf="standalone->default"/>
-    <dependency org="org.jboss.logbridge" name="jboss-logbridge" rev="${version.jboss.logbridge}" conf="standalone->default"/>
-    <dependency org="org.jboss.logging" name="jboss-logging-jdk" rev="${version.jboss.logging}" conf="standalone->default"/>
-    <dependency org="org.jboss.logging" name="jboss-logging-log4j" rev="${version.jboss.logging.log4j}" conf="standalone->default"/>
-    <dependency org="org.jboss.logging" name="jboss-logging-spi" rev="${version.jboss.logging}" conf="standalone->default"/>
-    <dependency org="org.jboss.logmanager" name="jboss-logmanager" rev="${version.jboss.logmanager}" conf="standalone->default"/>
+    <dependency org="org.jboss.integration" name="jboss-integration" rev="${version.jboss.integration}" conf="standalone->default;sjc->*"/>
+    <dependency org="org.jboss.javaee" name="jboss-transaction-api" rev="${version.transaction.api}" conf="standalone->default;sjc->*"/>
+    <dependency org="org.jboss.logbridge" name="jboss-logbridge" rev="${version.jboss.logbridge}" conf="standalone->default;sjc->*"/>
+    <dependency org="org.jboss.logging" name="jboss-logging-jdk" rev="${version.jboss.logging}" conf="standalone->default;sjc->*"/>
+    <dependency org="org.jboss.logging" name="jboss-logging-log4j" rev="${version.jboss.logging.log4j}" conf="standalone->default;sjc->*"/>
+    <dependency org="org.jboss.logging" name="jboss-logging-spi" rev="${version.jboss.logging}" conf="standalone->default;sjc->*"/>
+    <dependency org="org.jboss.logmanager" name="jboss-logmanager" rev="${version.jboss.logmanager}" conf="standalone->default;sjc->*"/>
     <dependency org="org.jboss.man" name="jboss-managed" rev="${version.jboss.managed}" conf="standalone->default"/>
     <dependency org="org.jboss.man" name="jboss-metatype" rev="${version.jboss.managed}" conf="standalone->default"/>
     <dependency org="org.jboss.metadata" name="jboss-metadata" rev="${version.jboss.metadata}" conf="standalone->default"/>
     <dependency org="org.jboss.microcontainer" name="jboss-aop-mc-int" rev="${version.jboss.mc.aop-int}" conf="standalone->default"/>
     <dependency org="org.jboss.microcontainer" name="jboss-dependency" rev="${version.jboss.mc.dependency}" conf="standalone->default"/>
     <dependency org="org.jboss.microcontainer" name="jboss-kernel" rev="${version.jboss.mc.kernel}" conf="standalone->default"/>
-    <dependency org="org.jboss.naming" name="jnpserver" rev="${version.jboss.naming}" conf="standalone->default"/>
+    <dependency org="org.jboss.naming" name="jnpserver" rev="${version.jboss.naming}" conf="standalone->default;sjc->*"/>
+    <dependency org="stax" name="stax-api" rev="${version.stax}" conf="standalone->default;sjc->*"/>
     <dependency org="trove" name="trove" rev="${version.trove}" conf="standalone->default"/>
-    <dependency org="xerces" name="xercesImpl" rev="${version.apache-xerces}" conf="standalone->default"/>
+    <dependency org="xerces" name="xercesImpl" rev="${version.apache-xerces}" conf="standalone->default;sjc->*"/>
   </dependencies>
 
 </ivy-module>


Property changes on: projects/jboss-jca/trunk/lib
___________________________________________________________________
Name: svn:ignore
   - *.jar
standalone
test
qe


   + *.jar
standalone
test
qe
sjc



Added: projects/jboss-jca/trunk/sjc/build.xml
===================================================================
--- projects/jboss-jca/trunk/sjc/build.xml	                        (rev 0)
+++ projects/jboss-jca/trunk/sjc/build.xml	2009-06-04 20:26:25 UTC (rev 89849)
@@ -0,0 +1,173 @@
+<!--
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+-->
+<project name="jboss-jca-sjc" 
+         default="compile" 
+         xmlns:ivy="antlib:org.apache.ivy.ant">
+
+  <!-- ================================= 
+       Properties              
+       ================================= -->
+  <property name="build.sjc.dir" value="${build.dir}/sjc" />
+
+  <!-- ================================= 
+       Target: init
+       ================================= -->
+  <target name="init">
+    <mkdir dir="${build.sjc.dir}" />
+    <mkdir dir="${build.sjc.dir}/impl" />
+  </target>
+
+  <!-- ================================= 
+       Target: compile boot.xsd
+       ================================= -->
+  <target name="compile-boot-xsd" depends="init">
+    <taskdef name="xjc"
+             classname="com.sun.tools.xjc.XJCTask"
+             classpathref="sjc.lib.path.id"/>
+    <xjc schema="src/main/resources/boot.xsd"
+         destdir="${build.sjc.dir}/impl"
+         package="org.jboss.jca.sjc.boot"/>
+    <javac srcdir="${build.sjc.dir}/impl"
+           destdir="${build.sjc.dir}/impl"
+           classpathref="sjc.lib.path.id"
+           debug="${javac.debug}"
+           deprecation="${javac.deprecation}"
+           optimize="${javac.optimize}">
+      <compilerarg value="-Xlint"/>
+    </javac>
+    <delete>
+      <fileset dir="${build.sjc.dir}/impl">
+        <include name="**/*.java"/>
+      </fileset>
+    </delete>
+  </target>
+
+  <!-- ================================= 
+       Target: compile
+       ================================= -->
+  <target name="compile" depends="compile-boot-xsd">
+    <javac srcdir="src/main"
+           destdir="${build.sjc.dir}/impl"
+           classpathref="sjc.lib.path.id"
+           debug="${javac.debug}"
+           deprecation="${javac.deprecation}"
+           optimize="${javac.optimize}">
+      <compilerarg value="-Xlint"/>
+    </javac> 
+  </target>
+
+  <!-- ================================= 
+       Target: jars 
+       ================================= -->
+  <target name="jars" depends="compile">
+    <jar destfile="${target.dir}/jboss-jca-sjc.jar"
+         manifest="src/main/resources/sjc-manifest.mf"
+         basedir="${build.sjc.dir}/impl"
+         excludes="**/*.java"/>
+  </target>
+
+  <!-- ================================= 
+       Target: docs
+       ================================= -->
+  <target name="docs">
+    <mkdir dir="${target.dir}/docs/sjc"/>
+    <javadoc packagenames="org.*"
+             sourcepath="src/main/java"
+             destdir="${target.dir}/docs/sjc"
+             author="true"
+             version="true"
+             windowtitle="JBoss JCA SJC"
+             doctitle="JBoss JCA SJC"
+             use="true"
+             classpathref="sjc.lib.path.id"
+             bottom="Copyright &#169; 2008-2009 Red Hat Middleware LLC (http://www.jboss.com/)">
+      <link offline="true" href="http://java.sun.com/j2se/5/docs/api/" packagelistLoc="${java.home}/../docs/api"/>
+    </javadoc>
+  </target>
+
+  <!-- ================================= 
+       Target: sjc
+       ================================= -->
+  <target name="sjc" depends="compile">
+    <mkdir dir="${target.dir}/sjc"/>
+    <mkdir dir="${target.dir}/sjc/bin"/>
+    <mkdir dir="${target.dir}/sjc/config"/>
+    <mkdir dir="${target.dir}/sjc/lib"/>
+    <mkdir dir="${target.dir}/sjc/lib/endorsed"/>
+    <mkdir dir="${target.dir}/sjc/log"/>
+    <mkdir dir="${target.dir}/sjc/deploy"/>
+
+    <copy todir="${target.dir}/sjc/bin">
+      <fileset dir="src/main/resources/">
+        <include name="**/*.sh"/>
+      </fileset>
+    </copy>
+
+    <copy todir="${target.dir}/sjc/bin">
+      <fileset dir="${target.dir}">
+        <include name="*sjc.jar"/>
+      </fileset>
+    </copy>
+
+    <copy todir="${target.dir}/sjc/config">
+      <fileset dir="src/main/resources">
+        <include name="*.xml"/>
+        <include name="*.xsd"/>
+      </fileset>
+    </copy>
+
+    <copy todir="${target.dir}/sjc/config">
+      <fileset dir="src/main/resources/">
+        <include name="*.properties"/>
+      </fileset>
+    </copy>
+
+    <copy todir="${target.dir}/sjc/lib">
+      <fileset dir="${target.dir}">
+        <include name="*.jar"/>
+        <exclude name="*sjc.jar"/>
+      </fileset>
+    </copy>
+
+    <copy todir="${target.dir}/sjc/lib">
+      <fileset dir="${lib.dir}/sjc">
+        <include name="*.jar"/>
+        <exclude name="jaxb-api.jar"/>
+        <exclude name="xercesImpl.jar"/>
+        <exclude name="*xjc.jar"/>
+        <exclude name="stax-api.jar"/>
+      </fileset>
+    </copy>
+
+    <copy todir="${target.dir}/sjc/lib/endorsed">
+      <fileset dir="${lib.dir}/sjc">
+        <include name="jaxb-api.jar"/>
+        <include name="xercesImpl.jar"/>
+        <include name="stax-api.jar"/>
+      </fileset>
+    </copy>
+
+    <chmod dir="${target.dir}/sjc/bin" perm="ugo+rx" includes="**/*.sh"/>
+
+  </target>
+
+</project>

Added: projects/jboss-jca/trunk/sjc/src/main/java/org/jboss/jca/sjc/JarFilter.java
===================================================================
--- projects/jboss-jca/trunk/sjc/src/main/java/org/jboss/jca/sjc/JarFilter.java	                        (rev 0)
+++ projects/jboss-jca/trunk/sjc/src/main/java/org/jboss/jca/sjc/JarFilter.java	2009-06-04 20:26:25 UTC (rev 89849)
@@ -0,0 +1,44 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008-2009, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.jca.sjc;
+
+import java.io.File;
+import java.io.FilenameFilter;
+
+/**
+ * Jar filter
+ * @author <a href="mailto:jesper.pedersen at jboss.org">Jesper Pedersen</a>
+ */
+public class JarFilter implements FilenameFilter
+{
+   /**
+    * Accept
+    * @param dir The directory
+    * @param name The name
+    * @return True if accepts; otherwise false
+    */
+   public boolean accept(File dir, String name)
+   {
+      return name.endsWith(".jar");
+   }
+}

Added: projects/jboss-jca/trunk/sjc/src/main/java/org/jboss/jca/sjc/Main.java
===================================================================
--- projects/jboss-jca/trunk/sjc/src/main/java/org/jboss/jca/sjc/Main.java	                        (rev 0)
+++ projects/jboss-jca/trunk/sjc/src/main/java/org/jboss/jca/sjc/Main.java	2009-06-04 20:26:25 UTC (rev 89849)
@@ -0,0 +1,511 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008-2009, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.jca.sjc;
+
+import org.jboss.jca.sjc.boot.BeanType;
+import org.jboss.jca.sjc.boot.InjectType;
+import org.jboss.jca.sjc.boot.PropertyType;
+import org.jboss.jca.sjc.deployers.Deployer;
+
+import java.lang.reflect.Method;
+import java.io.File;
+import java.io.IOException;
+import java.io.Serializable;
+import java.net.InetAddress;
+import java.net.MalformedURLException;
+import java.net.URI;
+import java.net.URL;
+import java.net.URLClassLoader;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.CountDownLatch;
+
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.Unmarshaller;
+
+/**
+ * The main class for JBoss JCA SJC
+ * @author <a href="mailto:jesper.pedersen at jboss.org">Jesper Pedersen</a>
+ */
+public class Main
+{
+   /** Startup list */
+   private static List<String> startup = new LinkedList<String>();
+
+   /** Services */
+   private static Map<String, Object> services = new HashMap<String, Object>();
+
+   /**
+    * Default constructor
+    */
+   private Main()
+   {
+   }
+
+   /**
+    * Boot
+    * @param args The arguments
+    */
+   private static void boot(String[] args)
+   {
+      try
+      {
+         String home = SecurityActions.getSystemProperty("jboss.jca.home");
+         File root = null;
+
+         if (home != null)
+         {
+            root = new File(new URI(home));
+         }
+         else
+         {
+            home = new File(".").toURI().toURL().toString();
+            root = new File(new URI(home.substring(0, home.lastIndexOf("bin"))));
+            SecurityActions.setSystemProperty("jboss.jca.home", root.getAbsolutePath());
+         }
+
+         File libDirectory = new File(root, "/lib/");
+         File configDirectory = new File(root, "/config/");
+         File deployDirectory = new File(root, "/deploy/");
+
+         ClassLoader parent = SecurityActions.getThreadContextClassLoader();
+
+         URL[] libUrls = getUrls(libDirectory);
+         URL[] confUrls = getUrls(configDirectory);
+
+         URL[] urls = mergeUrls(libUrls, confUrls);
+
+         URLClassLoader classLoader = new URLClassLoader(urls, parent);
+         SecurityActions.setThreadContextClassLoader(classLoader);
+
+         SecurityActions.setSystemProperty("xb.builder.useUnorderedSequence", "true");
+         SecurityActions.setSystemProperty("jboss.deploy.url", deployDirectory.toURI().toURL().toString());
+         SecurityActions.setSystemProperty("jboss.lib.url", libDirectory.toURI().toURL().toString());
+         SecurityActions.setSystemProperty("java.util.logging.manager", "org.jboss.logmanager.LogManager");
+
+         File bootXml = new File(configDirectory, "boot.xml");
+         JAXBContext bootJc = JAXBContext.newInstance("org.jboss.jca.sjc.boot");
+         Unmarshaller bootU = bootJc.createUnmarshaller();
+         org.jboss.jca.sjc.boot.Deployment boot = 
+            (org.jboss.jca.sjc.boot.Deployment)bootU.unmarshal(bootXml);
+
+         if (boot != null)
+         {
+            for (BeanType bt : boot.getBean())
+            {
+               if (services.get(bt.getName()) == null)
+               {
+                  Object bean = createBean(bt, classLoader, deployDirectory);
+                  startup.add(bt.getName());
+                  services.put(bt.getName(), bean);
+               }
+               else
+               {
+                  System.out.println("Warning: A service with name " + bt.getName() + " already exists");
+               }
+            }
+         }
+      }
+      catch (Throwable t)
+      {
+         t.printStackTrace(System.err);
+      }
+   }
+
+   /**
+    * Shutdown
+    */
+   private static void shutdown()
+   {
+      List<String> shutdown = new LinkedList<String>(startup);
+      Collections.reverse(shutdown);
+
+      for (String name : shutdown)
+      {
+         Object service = services.get(name);
+
+         try
+         {
+            Method stopMethod = service.getClass().getMethod("stop", (Class[])null);
+            stopMethod.invoke(service, (Object[])null);
+         }
+         catch (Exception e)
+         {
+            // No stop method
+         }
+
+         try
+         {
+            Method destroyMethod = service.getClass().getMethod("destroy", (Class[])null);
+            destroyMethod.invoke(service, (Object[])null);
+         }
+         catch (Exception e)
+         {
+            // No destroy method
+         }
+      }
+
+      System.out.println("Shutdown complete");
+   }
+
+   /**
+    * Get the URLs for the directory and all libraries located in the directory
+    * @param directrory The directory
+    * @return The URLs
+    * @exception MalformedURLException MalformedURLException
+    * @exception IOException IOException
+    */
+   private static URL[] getUrls(File directory) throws MalformedURLException, IOException
+   {
+      List<URL> list = new LinkedList<URL>();
+
+      if (directory.exists() && directory.isDirectory())
+      {
+         // Add directory
+         list.add(directory.toURI().toURL());
+
+         // Add the contents of the directory too
+         File[] jars = directory.listFiles(new JarFilter());
+
+         for (int j = 0; jars != null && j < jars.length; j++)
+         {
+            list.add(jars[j].getCanonicalFile().toURI().toURL());
+         }
+      }
+      return list.toArray(new URL[list.size()]);      
+   }
+
+   /**
+    * Merge URLs into a single array
+    * @param urls The URLs
+    * @return The combined list
+    */
+   private static URL[] mergeUrls(URL[]... urls)
+   {
+      List<URL> list = new LinkedList<URL>();
+
+      for (URL[] all : urls)
+      {
+         for (URL url : all)
+         {
+            list.add(url);
+         }
+      }
+
+      return list.toArray(new URL[list.size()]);      
+   }
+
+   /**
+    * Create a bean
+    * @param bt The bean type definition
+    * @param cl The classloader
+    * @param deployDirectory The deploy directory
+    * @return The new bean
+    * @exception Exception Thrown if an error occurs
+    */
+   private static Object createBean(BeanType bt, ClassLoader cl, File deployDirectory) throws Exception
+   {
+      Class<?> clz = Class.forName(bt.getClazz(), true, cl);
+      Object instance = clz.newInstance();
+
+      if (bt.getProperty() != null)
+      {
+         for (PropertyType pt : bt.getProperty())
+         {
+            setBeanProperty(instance, pt, cl);
+         }
+      }
+
+      try
+      {
+         Method createMethod = clz.getMethod("create", (Class[])null);
+         createMethod.invoke(instance, (Object[])null);
+      }
+      catch (Exception e)
+      {
+         // No create method
+      }
+
+      try
+      {
+         Method startMethod = clz.getMethod("start", (Class[])null);
+         startMethod.invoke(instance, (Object[])null);
+      }
+      catch (Exception e)
+      {
+         // No start method
+      }
+
+      if (instance instanceof Deployer)
+      {
+         try
+         {
+            Method deployMethod = clz.getMethod("deploy", new Class[] {File.class});
+
+            for (File f : deployDirectory.listFiles())
+            {
+               org.jboss.jca.sjc.deployers.Deployment deployment = 
+                  (org.jboss.jca.sjc.deployers.Deployment)deployMethod.invoke(instance, new Object[] {f});
+               if (deployment != null)
+               {
+                  if (services.get(deployment.getName()) == null)
+                  {
+                     startup.add(deployment.getName());
+                     services.put(deployment.getName(), deployment);
+                  }
+                  else
+                  {
+                     System.out.println("Warning: A deployment with name " + deployment.getName() + " already exists");
+                  }
+               }
+            }
+         }
+         catch (Exception e)
+         {
+            e.printStackTrace(System.err);
+         }
+      }
+
+      return instance;
+   }
+
+   /**
+    * Set a property on an object instance
+    * @param instance The object instance
+    * @param pt The property type definition
+    * @param cl The classloader
+    * @exception Exception Thrown if an error occurs
+    */
+   private static void setBeanProperty(Object instance, PropertyType pt, ClassLoader cl) throws Exception
+   {
+      String name = "set" + pt.getName().substring(0, 1).toUpperCase() + pt.getName().substring(1);
+      Method m = null;
+
+      if (pt.getClazz() == null)
+      {
+         Method[] ms = instance.getClass().getMethods();
+         if (ms != null)
+         {
+            boolean found = false;
+
+            for (int i = 0; !found && i < ms.length; i++)
+            {
+               if (ms[i].getName().equals(name) &&
+                   ms[i].getParameterTypes() != null &&
+                   ms[i].getParameterTypes().length == 1)
+               {
+                  m = ms[i];
+                  found = true;
+               }
+            }
+         }
+      }
+      else
+      {
+         Class clz = Class.forName(pt.getClazz(), true, cl);
+         m = instance.getClass().getMethod(name, clz);
+      }
+
+      if (m == null)
+         throw new Exception("Property " + pt.getName() + " not found on " + instance.getClass().getName());
+
+      Class parameterClass = m.getParameterTypes()[0];
+
+      Object parameterValue = null;
+      Object e = pt.getContent().get(0);
+      Object element = null;
+
+      if (e != null && e instanceof JAXBElement)
+      {
+         element = ((JAXBElement)e).getValue();
+      }
+      else
+      {
+         if (e == null)
+            e = "";
+
+         element = e;
+      }
+
+      if (element instanceof InjectType)
+      {
+         InjectType it = (InjectType)element;
+
+         Object injectionObject = services.get(it.getBean());
+
+         if (injectionObject == null)
+            throw new Exception("Injection depedency " + it.getBean() + " not found");
+
+         if (it.getProperty() != null)
+         {
+            String getMethodName = "get" + it.getProperty().substring(0, 1).toUpperCase() + it.getProperty().substring(1);
+            Method getMethod = injectionObject.getClass().getMethod(getMethodName, (Class[])null);
+
+            parameterValue = getMethod.invoke(injectionObject, (Object[])null);
+         }
+         else
+         {
+            parameterValue = injectionObject;
+         }
+      }
+      else
+      {
+         if (parameterClass.equals(String.class))
+         {
+            String s = (String)element;
+
+            if (s.indexOf("${") != -1)
+            {
+               int from = s.indexOf("${");
+               int to = s.indexOf("}");
+
+               String systemProperty = SecurityActions.getSystemProperty(s.substring(from + 2, to));
+               String prefix = "";
+               String postfix = "";
+
+               if (from != 0)
+               {
+                  prefix = s.substring(0, from);
+               }
+
+               if (to + 1 < s.length() - 1)
+               {
+                  postfix = s.substring(to + 1);
+               }
+
+               s = prefix + systemProperty + postfix;
+            }
+
+            parameterValue = s;
+         }
+         else if (parameterClass.equals(int.class) || parameterClass.equals(Integer.class))
+         {
+            parameterValue = Integer.valueOf((String)element);
+         }
+         else if (parameterClass.equals(long.class) || parameterClass.equals(Long.class))
+         {
+            parameterValue = Long.valueOf((String)element);
+         }
+         else if (parameterClass.equals(boolean.class) || parameterClass.equals(Boolean.class))
+         {
+            parameterValue = Boolean.valueOf((String)element);
+         }
+         else if (parameterClass.equals(InetAddress.class))
+         {
+            parameterValue = InetAddress.getByName((String)element);
+         }
+      }
+
+      if (parameterValue == null)
+         throw new Exception("No parameter value assigned for class " + parameterClass.getName() + 
+                             " value " + element);
+
+      m.invoke(instance, parameterValue);
+   }
+
+   /**
+    * Main
+    * @param args The arguments
+    */
+   public static void main(final String[] args)
+   {
+      long l1 = System.currentTimeMillis();
+      try
+      {
+         final CountDownLatch latch = new CountDownLatch(1);
+
+         Runnable worker = new Runnable()
+         {
+            public void run()
+            {
+               try
+               {
+                  Main.boot(args);
+                  latch.countDown();
+               }
+               catch (Exception e)
+               {
+                  System.err.println("Failed to boot JBoss JCA:");
+                  e.printStackTrace();
+               }
+            }
+         };
+         
+         ThreadGroup threads = new ThreadGroup("jboss");
+         Thread bootThread = new Thread(threads, worker, "main");
+         bootThread.start();
+
+         latch.await();
+
+         LifeThread lifeThread = new LifeThread(threads);
+         lifeThread.start();
+
+         Runtime.getRuntime().addShutdownHook(new Thread() {
+            @Override
+            public void run()
+            {
+               Main.shutdown();
+            }
+         });
+
+         long l2 = System.currentTimeMillis();
+         System.out.println("Server started in " + (l2 - l1) + "ms");
+      }
+      catch (Exception e)
+      {
+         e.printStackTrace(System.err);
+      }
+   }
+
+   /** 
+    * A simple thread that keeps the vm alive in the event there are no
+    * other threads started.
+    */
+   private static class LifeThread extends Thread
+   {
+      private Object lock = new Object();
+
+      LifeThread(ThreadGroup tg)
+      {
+         super(tg, "JBossLifeThread");
+      }
+
+      public void run()
+      {
+         synchronized (lock)
+         {
+            try
+            {
+               lock.wait();
+            }
+            catch (InterruptedException ignore)
+            {
+            }
+         }
+      }
+   }
+}

Added: projects/jboss-jca/trunk/sjc/src/main/java/org/jboss/jca/sjc/SecurityActions.java
===================================================================
--- projects/jboss-jca/trunk/sjc/src/main/java/org/jboss/jca/sjc/SecurityActions.java	                        (rev 0)
+++ projects/jboss-jca/trunk/sjc/src/main/java/org/jboss/jca/sjc/SecurityActions.java	2009-06-04 20:26:25 UTC (rev 89849)
@@ -0,0 +1,120 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008-2009, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.jca.sjc;
+
+import java.security.AccessController;
+import java.security.PrivilegedAction;
+import java.util.Properties;
+
+/**
+ * Privileged Blocks
+ * @author <a href="mailto:jesper.pedersen at jboss.org">Jesper Pedersen</a>
+ */
+class SecurityActions
+{ 
+   /**
+    * Constructor
+    */
+   private SecurityActions()
+   {
+   }
+
+   /**
+    * Get the thread context class loader
+    * @return The class loader
+    */
+   static ClassLoader getThreadContextClassLoader()
+   {
+      return (ClassLoader)AccessController.doPrivileged(new PrivilegedAction<Object>() 
+      {
+         public Object run()
+         {
+            return Thread.currentThread().getContextClassLoader();
+         }
+      });
+   }
+
+   /**
+    * Set the thread context class loader
+    * @param cl The class loader
+    */
+   static void setThreadContextClassLoader(final ClassLoader cl)
+   {
+      AccessController.doPrivileged(new PrivilegedAction<Object>() 
+      {
+         public Object run()
+         {
+            Thread.currentThread().setContextClassLoader(cl);
+            return null;
+         }
+      });
+   }
+
+   /**
+    * Get the system properties
+    * @return The properties
+    */
+   static Properties getSystemProperties()
+   {
+      return (Properties)AccessController.doPrivileged(new PrivilegedAction<Object>() 
+      {
+         public Object run()
+         {
+            return System.getProperties();
+         }
+      });
+   }
+
+   /**
+    * Get a system property
+    * @param name The property name
+    * @return The property value
+    */
+   static String getSystemProperty(final String name)
+   {
+      return (String)AccessController.doPrivileged(new PrivilegedAction<Object>() 
+      {
+         public Object run()
+         {
+            return System.getProperty(name);
+         }
+      });
+   }
+
+   /**
+    * Set a system property
+    * @param name The property name
+    * @param value The property value
+    */
+   static void setSystemProperty(final String name, final String value)
+   {
+      AccessController.doPrivileged(new PrivilegedAction<Object>() 
+      {
+         public Object run()
+         {
+            System.setProperty(name, value);
+            return null;
+         }
+      });
+   }
+}

Added: projects/jboss-jca/trunk/sjc/src/main/java/org/jboss/jca/sjc/deployers/Deployer.java
===================================================================
--- projects/jboss-jca/trunk/sjc/src/main/java/org/jboss/jca/sjc/deployers/Deployer.java	                        (rev 0)
+++ projects/jboss-jca/trunk/sjc/src/main/java/org/jboss/jca/sjc/deployers/Deployer.java	2009-06-04 20:26:25 UTC (rev 89849)
@@ -0,0 +1,40 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008-2009, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.jca.sjc.deployers;
+
+import java.io.File;
+
+/**
+ * The deployer interface for JCA/SJC
+ * @author <a href="mailto:jesper.pedersen at jboss.org">Jesper Pedersen</a>
+ */
+public interface Deployer
+{
+   /**
+    * Deploy
+    * @param f The file
+    * @return The deployment; or null if no deployment was made
+    * @exception Exception Thrown if an error occurs
+    */
+   public Deployment deploy(File f) throws Exception;
+}

Added: projects/jboss-jca/trunk/sjc/src/main/java/org/jboss/jca/sjc/deployers/Deployment.java
===================================================================
--- projects/jboss-jca/trunk/sjc/src/main/java/org/jboss/jca/sjc/deployers/Deployment.java	                        (rev 0)
+++ projects/jboss-jca/trunk/sjc/src/main/java/org/jboss/jca/sjc/deployers/Deployment.java	2009-06-04 20:26:25 UTC (rev 89849)
@@ -0,0 +1,36 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008-2009, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.jca.sjc.deployers;
+
+/**
+ * The deployment interface for JCA/SJC
+ * @author <a href="mailto:jesper.pedersen at jboss.org">Jesper Pedersen</a>
+ */
+public interface Deployment
+{
+   /**
+    * Get the name
+    * @return The name
+    */
+   public String getName();
+}

Added: projects/jboss-jca/trunk/sjc/src/main/java/org/jboss/jca/sjc/deployers/RarDeployer.java
===================================================================
--- projects/jboss-jca/trunk/sjc/src/main/java/org/jboss/jca/sjc/deployers/RarDeployer.java	                        (rev 0)
+++ projects/jboss-jca/trunk/sjc/src/main/java/org/jboss/jca/sjc/deployers/RarDeployer.java	2009-06-04 20:26:25 UTC (rev 89849)
@@ -0,0 +1,52 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008-2009, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.jca.sjc.deployers;
+
+import java.io.File;
+
+/**
+ * The RAR deployer for JCA/SJC
+ * @author <a href="mailto:jesper.pedersen at jboss.org">Jesper Pedersen</a>
+ */
+public class RarDeployer implements Deployer
+{
+   /**
+    * Constructor
+    */
+   public RarDeployer()
+   {
+   }
+
+   /**
+    * Deploy
+    * @param f The file
+    * @return The deployment
+    * @exception Exception Thrown if an error occurs
+    */
+   public Deployment deploy(File f) throws Exception
+   {
+      System.out.println("Deploying: " + f.getAbsolutePath());
+
+      return null;
+   }
+}

Added: projects/jboss-jca/trunk/sjc/src/main/java/org/jboss/jca/sjc/deployers/package.html
===================================================================
--- projects/jboss-jca/trunk/sjc/src/main/java/org/jboss/jca/sjc/deployers/package.html	                        (rev 0)
+++ projects/jboss-jca/trunk/sjc/src/main/java/org/jboss/jca/sjc/deployers/package.html	2009-06-04 20:26:25 UTC (rev 89849)
@@ -0,0 +1,3 @@
+<body>
+This package contains the deployer infrastructure for JCA/SJC
+</body>

Added: projects/jboss-jca/trunk/sjc/src/main/java/org/jboss/jca/sjc/hack/JMX.java
===================================================================
--- projects/jboss-jca/trunk/sjc/src/main/java/org/jboss/jca/sjc/hack/JMX.java	                        (rev 0)
+++ projects/jboss-jca/trunk/sjc/src/main/java/org/jboss/jca/sjc/hack/JMX.java	2009-06-04 20:26:25 UTC (rev 89849)
@@ -0,0 +1,66 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008-2009, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.jca.sjc.hack;
+
+import javax.management.MBeanServer;
+import javax.management.MBeanServerFactory;
+
+/**
+ * JMX.
+ * 
+ * @author <a href="mailto:jesper.pedersen at jboss.org">Jesper Pedersen</a>
+ * @version $Revision: $
+ */
+public class JMX
+{
+   // --------------------------------------------------------------------------------||
+   // Class Members ------------------------------------------------------------------||
+   // --------------------------------------------------------------------------------||
+
+   private MBeanServer mbeanServer;
+
+   // --------------------------------------------------------------------------------||
+   // Constructors -------------------------------------------------------------------||
+   // --------------------------------------------------------------------------------||
+
+   /**
+    * Constructor
+    */
+   public JMX()
+   {
+      mbeanServer = MBeanServerFactory.createMBeanServer();
+   }
+
+   // --------------------------------------------------------------------------------||
+   // Methods ------------------------------------------------------------------------||
+   // --------------------------------------------------------------------------------||
+
+   /**
+    * Get the MBeanServer
+    * @return The MBeanServer
+    */
+   public MBeanServer getMbeanServer()
+   {
+      return mbeanServer;
+   }
+}

Added: projects/jboss-jca/trunk/sjc/src/main/java/org/jboss/jca/sjc/hack/package.html
===================================================================
--- projects/jboss-jca/trunk/sjc/src/main/java/org/jboss/jca/sjc/hack/package.html	                        (rev 0)
+++ projects/jboss-jca/trunk/sjc/src/main/java/org/jboss/jca/sjc/hack/package.html	2009-06-04 20:26:25 UTC (rev 89849)
@@ -0,0 +1,3 @@
+<body>
+This package contains classes needed to retrieve specific dependencies.
+</body>

Added: projects/jboss-jca/trunk/sjc/src/main/java/org/jboss/jca/sjc/package.html
===================================================================
--- projects/jboss-jca/trunk/sjc/src/main/java/org/jboss/jca/sjc/package.html	                        (rev 0)
+++ projects/jboss-jca/trunk/sjc/src/main/java/org/jboss/jca/sjc/package.html	2009-06-04 20:26:25 UTC (rev 89849)
@@ -0,0 +1,3 @@
+<body>
+This package contains the Simple JCA Container which implements a very limited sub-set of the JBoss Microcontainer.
+</body>

Added: projects/jboss-jca/trunk/sjc/src/main/resources/boot.xml
===================================================================
--- projects/jboss-jca/trunk/sjc/src/main/resources/boot.xml	                        (rev 0)
+++ projects/jboss-jca/trunk/sjc/src/main/resources/boot.xml	2009-06-04 20:26:25 UTC (rev 89849)
@@ -0,0 +1,59 @@
+<deployment>
+
+  <!-- Logging bridge -->
+  <bean name="LogBridgeHandler" class="org.jboss.logbridge.LogBridgeHandler"/>
+
+  <!-- Naming -->
+  <bean name="NamingServer" class="org.jnp.server.SingletonNamingServer"/>
+  
+  <!-- JMX -->
+  <bean name="JMX" class="org.jboss.jca.sjc.hack.JMX"/>
+
+  <!-- Transaction manager -->
+  <bean name="TransactionManager" class="com.arjuna.ats.jbossatx.jta.TransactionManagerService">
+    <property name="transactionTimeout">300</property>
+    <property name="objectStoreDir">${jboss.jca.home}/tmp/tx-object-store</property>
+    <property name="mbeanServer"><inject bean="JMX" property="mbeanServer"/></property>
+    <property name="transactionStatusManagerInetAddress">localhost</property>
+    <property name="transactionStatusManagerPort">4713</property>
+    <property name="recoveryInetAddress">localhost</property>
+    <property name="recoveryPort">4712</property>
+    <property name="socketProcessIdPort">0</property>    
+  </bean>
+
+  <!-- Work Manager thread pool -->
+  <bean name="WorkManagerThreadPool" interface="org.jboss.jca.common.threadpool.ThreadPool" class="org.jboss.jca.common.threadpool.ThreadPoolImpl">
+    <!-- The name that appears in thread names -->
+    <property name="name">WorkManager</property>
+
+    <!-- The maximum amount of work in the queue -->
+    <property name="maximumQueueSize">1024</property>
+    
+    <!-- The maximum number of active threads -->
+    <property name="maximumPoolSize">100</property>
+    
+    <!-- How long to keep threads alive after their last work (default one minute) -->
+    <property name="keepAliveTime">60000</property>
+  </bean>
+
+  <!-- Work Manager -->
+  <bean name="WorkManager" interface="org.jboss.jca.core.api.WorkManager" class="org.jboss.jca.core.workmanager.WorkManagerImpl">
+    <!-- The thread pool -->
+    <property name="threadPool"><inject bean="WorkManagerThreadPool"/></property>
+
+    <!-- The XA terminator -->
+    <property name="XATerminator"><inject bean="TransactionManager" property="XATerminator"/></property>
+  </bean>
+  
+  <!-- Connection Manager -->
+  <bean name="ConnectionManager" interface="org.jboss.jca.core.api.ConnectionManager" class="org.jboss.jca.core.connectionmanager.ConnectionManagerImpl">
+  </bean>
+
+
+  <!-- Deployers -->
+
+  <!-- Rar deployer -->
+  <bean name="RarDeployer" interface="org.jboss.jca.sjc.deployers.Deployer" class="org.jboss.jca.sjc.deployers.RarDeployer">
+  </bean>
+
+</deployment>

Added: projects/jboss-jca/trunk/sjc/src/main/resources/boot.xsd
===================================================================
--- projects/jboss-jca/trunk/sjc/src/main/resources/boot.xsd	                        (rev 0)
+++ projects/jboss-jca/trunk/sjc/src/main/resources/boot.xsd	2009-06-04 20:26:25 UTC (rev 89849)
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+   Boot XML Schema
+-->
+<xsd:schema xmlns:boot="http://www.jboss.org/jca" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+
+   <xsd:complexType name="beanType">
+     <xsd:sequence>
+       <xsd:element name="property" type="propertyType" maxOccurs="unbounded" minOccurs="0"/>
+     </xsd:sequence>
+     <xsd:attribute name="name" type="xsd:token" use="required"/>
+     <xsd:attribute name="interface" type="xsd:token"/>
+     <xsd:attribute name="class" type="xsd:token" use="required"/>
+   </xsd:complexType>
+
+   <xsd:complexType name="propertyType" mixed="true">
+     <xsd:sequence>
+       <xsd:element name="inject" type="injectType" maxOccurs="1" minOccurs="0"/>
+     </xsd:sequence>
+     <xsd:attribute name="name" type="xsd:token" use="required"/>
+     <xsd:attribute name="class" type="xsd:token"/>
+   </xsd:complexType>
+
+   <xsd:complexType name="injectType">
+     <xsd:simpleContent>
+       <xsd:extension base="xsd:token">
+         <xsd:attribute name="bean" type="xsd:token" use="required"/>
+         <xsd:attribute name="property" type="xsd:token"/>
+       </xsd:extension>
+     </xsd:simpleContent>
+   </xsd:complexType>
+
+  <xsd:element name="deployment">
+    <xsd:complexType>
+      <xsd:sequence>
+        <xsd:element name="bean" type="beanType" maxOccurs="unbounded" minOccurs="0"/>
+      </xsd:sequence>
+    </xsd:complexType>
+  </xsd:element>
+
+</xsd:schema>

Added: projects/jboss-jca/trunk/sjc/src/main/resources/jndi.properties
===================================================================
--- projects/jboss-jca/trunk/sjc/src/main/resources/jndi.properties	                        (rev 0)
+++ projects/jboss-jca/trunk/sjc/src/main/resources/jndi.properties	2009-06-04 20:26:25 UTC (rev 89849)
@@ -0,0 +1,2 @@
+java.naming.factory.initial=org.jnp.interfaces.LocalOnlyContextFactory
+java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces

Added: projects/jboss-jca/trunk/sjc/src/main/resources/log4j.xml
===================================================================
--- projects/jboss-jca/trunk/sjc/src/main/resources/log4j.xml	                        (rev 0)
+++ projects/jboss-jca/trunk/sjc/src/main/resources/log4j.xml	2009-06-04 20:26:25 UTC (rev 89849)
@@ -0,0 +1,341 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
+
+<!-- ===================================================================== -->
+<!--                                                                       -->
+<!--  Log4j Configuration                                                  -->
+<!--                                                                       -->
+<!-- ===================================================================== -->
+
+<!-- $Id: jboss-log4j.xml 86230 2009-03-23 21:13:05Z bstansberry at jboss.com $ -->
+
+<!--
+   | For more configuration information and examples see the Jakarta Log4j
+   | owebsite: http://jakarta.apache.org/log4j
+ -->
+
+<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
+
+   <!-- ================================= -->
+   <!-- Preserve messages in a local file -->
+   <!-- ================================= -->
+
+   <!-- A time/date based rolling appender -->
+   <appender name="FILE" class="org.jboss.logging.appender.DailyRollingFileAppender">
+      <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+      <param name="File" value="${jboss.jca.home}/log/server.log"/>
+      <param name="Append" value="true"/>
+      <!-- In AS 5.0.x the server log threshold was set by a system
+           property. In 5.1 and later we are instead using the system
+           property to set the priority on the root logger (see <root/> below)
+      <param name="Threshold" value="${jboss.server.log.threshold}"/>
+      -->
+      
+      <!-- Rollover at midnight each day -->
+      <param name="DatePattern" value="'.'yyyy-MM-dd"/>
+
+      <!-- Rollover at the top of each hour
+      <param name="DatePattern" value="'.'yyyy-MM-dd-HH"/>
+      -->
+
+      <layout class="org.apache.log4j.PatternLayout">
+         <!-- The default pattern: Date Priority [Category] (Thread) Message\n -->
+         <param name="ConversionPattern" value="%d %-5p [%c] (%t) %m%n"/>
+
+         <!-- The full pattern: Date MS Priority [Category] (Thread:NDC) Message\n
+         <param name="ConversionPattern" value="%d %-5r %-5p [%c] (%t:%x) %m%n"/>
+          -->
+      </layout>
+   </appender>
+
+   <!-- A size based file rolling appender
+   <appender name="FILE" class="org.jboss.logging.appender.RollingFileAppender">
+     <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+     <param name="File" value="${jboss.server.log.dir}/server.log"/>
+     <param name="Append" value="false"/>
+     <param name="MaxFileSize" value="500KB"/>
+     <param name="MaxBackupIndex" value="1"/>
+
+     <layout class="org.apache.log4j.PatternLayout">
+       <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>
+     </layout>	    
+   </appender>
+   -->
+
+   <!-- ============================== -->
+   <!-- Append messages to the console -->
+   <!-- ============================== -->
+
+   <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
+      <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+      <param name="Target" value="System.out"/>
+      <param name="Threshold" value="INFO"/>
+
+      <layout class="org.apache.log4j.PatternLayout">
+         <!-- The default pattern: Date Priority [Category] Message\n -->
+         <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/>
+      </layout>
+   </appender>
+
+   <!-- ====================== -->
+   <!-- More Appender examples -->
+   <!-- ====================== -->
+
+   <!-- Buffer events and log them asynchronously
+   <appender name="ASYNC" class="org.apache.log4j.AsyncAppender">
+     <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+     <appender-ref ref="FILE"/>
+     <appender-ref ref="CONSOLE"/>
+     <appender-ref ref="SMTP"/>
+   </appender>
+   -->
+
+   <!-- EMail events to an administrator
+   <appender name="SMTP" class="org.apache.log4j.net.SMTPAppender">
+     <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+     <param name="Threshold" value="ERROR"/>
+     <param name="To" value="admin at myhost.domain.com"/>
+     <param name="From" value="nobody at myhost.domain.com"/>
+     <param name="Subject" value="JBoss Sever Errors"/>
+     <param name="SMTPHost" value="localhost"/>
+     <param name="BufferSize" value="10"/>
+     <layout class="org.apache.log4j.PatternLayout">
+       <param name="ConversionPattern" value="[%d{ABSOLUTE},%c{1}] %m%n"/>
+     </layout>
+   </appender>
+   -->
+
+   <!-- Syslog events
+   <appender name="SYSLOG" class="org.apache.log4j.net.SyslogAppender">
+     <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+     <param name="Facility" value="LOCAL7"/>
+     <param name="FacilityPrinting" value="true"/>
+     <param name="SyslogHost" value="localhost"/>
+     <layout class="org.apache.log4j.PatternLayout">
+       <param name="ConversionPattern" value="[%d{ABSOLUTE},%c{1}] %m%n"/>
+     </layout>
+   </appender>
+   -->
+
+   <!-- Log events to JMS (requires a topic to be created)
+   <appender name="JMS" class="org.apache.log4j.net.JMSAppender">
+     <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+     <param name="Threshold" value="ERROR"/>
+     <param name="TopicConnectionFactoryBindingName" value="java:/ConnectionFactory"/>
+     <param name="TopicBindingName" value="topic/MyErrorsTopic"/>
+   </appender>
+   -->
+
+   <!-- Log events through SNMP
+   <appender name="TRAP_LOG" class="org.apache.log4j.ext.SNMPTrapAppender">
+     <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+     <param name="ImplementationClassName" value="org.apache.log4j.ext.JoeSNMPTrapSender"/>
+     <param name="ManagementHost" value="127.0.0.1"/>
+     <param name="ManagementHostTrapListenPort" value="162"/>
+     <param name="EnterpriseOID" value="1.3.6.1.4.1.24.0"/>
+     <param name="LocalIPAddress" value="127.0.0.1"/>
+     <param name="LocalTrapSendPort" value="161"/>
+     <param name="GenericTrapType" value="6"/>
+     <param name="SpecificTrapType" value="12345678"/>
+     <param name="CommunityString" value="public"/>
+     <param name="ForwardStackTraceWithTrap" value="true"/>
+     <param name="Threshold" value="DEBUG"/>
+     <param name="ApplicationTrapOID" value="1.3.6.1.4.1.24.12.10.22.64"/>
+     <layout class="org.apache.log4j.PatternLayout">
+            <param name="ConversionPattern" value="%d,%p,[%t],[%c],%m%n"/>
+     </layout>
+   </appender>
+   -->
+
+   <!--  Emit events as JMX notifications
+   <appender name="JMX" class="org.jboss.monitor.services.JMXNotificationAppender">
+      <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+      
+      <param name="Threshold" value="WARN"/>
+      <param name="ObjectName" value="jboss.system:service=Logging,type=JMXNotificationAppender"/>
+      
+      <layout class="org.apache.log4j.PatternLayout">
+         <param name="ConversionPattern" value="%d %-5p [%c] %m"/>
+      </layout>
+   </appender>
+   -->
+
+   <!-- Security AUDIT Appender
+   <appender name="AUDIT" class="org.jboss.logging.appender.DailyRollingFileAppender">
+      <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+      <param name="File" value="${jboss.server.log.dir}/audit.log"/>
+      <param name="Append" value="true"/>
+      <param name="DatePattern" value="'.'yyyy-MM-dd"/>
+      <layout class="org.apache.log4j.PatternLayout">
+         <param name="ConversionPattern" value="%d %-5p [%c] (%t:%x) %m%n"/>
+      </layout>
+   </appender>
+   -->
+   
+   <!-- ================ -->
+   <!-- Limit categories -->
+   <!-- ================ -->
+
+   <!-- Limit the org.apache category to INFO as its DEBUG is verbose -->
+   <category name="org.apache">
+      <priority value="INFO"/>
+   </category>
+   
+   <!-- Limit the jacorb category to WARN as its INFO is verbose -->
+   <category name="jacorb">
+      <priority value="WARN"/>
+   </category>
+   
+   <!-- Set the logging level of the JSF implementation that uses
+      | java.util.logging. The jdk logging levels can be controlled
+      | through the org.jboss.logging.log4j.JDKLevel class that
+      | in addition to the standard log4j levels it adds support for
+      | SEVERE, WARNING, CONFIG, FINE, FINER, FINEST
+   -->
+   <category name="javax.enterprise.resource.webcontainer.jsf">
+     <priority value="INFO" class="org.jboss.logging.log4j.JDKLevel"/>
+   </category>
+   
+   <!-- Limit the org.jgroups category to WARN as its INFO is verbose -->
+   <category name="org.jgroups">
+      <priority value="WARN"/>
+   </category>
+   
+   <!-- Limit the org.quartz category to INFO as its DEBUG is verbose -->
+   <category name="org.quartz">
+      <priority value="INFO"/>
+   </category>
+   
+   <!-- Limit JBoss categories
+   <category name="org.jboss">
+      <priority value="INFO"/>
+   </category>
+   -->
+
+   <!-- Limit the JSR77 categories -->
+   <category name="org.jboss.management">
+      <priority value="INFO"/>
+   </category>
+
+   <!-- Show the evolution of the DataSource pool in the logs [inUse/Available/Max]
+   <category name="org.jboss.resource.connectionmanager.JBossManagedConnectionPool">
+     <priority value="TRACE"/>
+   </category>
+   -->
+
+   <!-- Category specifically for Security Audit Provider 
+   <category name="org.jboss.security.audit.providers.LogAuditProvider" additivity="false">
+     <priority value="TRACE"/>
+     <appender-ref ref="AUDIT"/>
+   </category>
+   -->
+   
+   <!-- Limit the org.jboss.serial (jboss-serialization) to INFO as its DEBUG is verbose -->
+   <category name="org.jboss.serial">
+      <priority value="INFO"/>
+   </category>
+  
+   <!-- Decrease the priority threshold for the org.jboss.varia category
+   <category name="org.jboss.varia">
+     <priority value="DEBUG"/>
+   </category>
+   -->
+   
+   <!-- Enable JBossWS message tracing
+   <category name="org.jboss.ws.core.MessageTrace">
+     <priority value="TRACE"/>
+   </category>
+   -->
+   
+   <!--
+      | An example of enabling the custom TRACE level priority that is used
+      | by the JBoss internals to diagnose low level details. This example
+      | turns on TRACE level msgs for the org.jboss.ejb.plugins package and its
+      | subpackages. This will produce A LOT of logging output.
+      |
+      | Note: since jboss AS 4.2.x, the trace level is supported natively by
+      | log4j, so although the custom org.jboss.logging.XLevel priority will
+      | still work, there is no need to use it. The two examples that follow
+      | will both enable trace logging.
+   <category name="org.jboss.system">
+     <priority value="TRACE" class="org.jboss.logging.XLevel"/>
+   </category>
+   <category name="org.jboss.ejb.plugins">
+     <priority value="TRACE"/>
+   </category>
+   -->
+  
+   <!--
+       | Logs these events to SNMP:
+           - server starts/stops
+           - cluster evolution (node death/startup)
+           - When an EJB archive is deployed (and associated verified messages)
+           - When an EAR archive is deployed
+      	 
+   <category name="org.jboss.system.server.Server">
+     <priority value="INFO" />
+     <appender-ref ref="TRAP_LOG"/>
+   </category>
+  
+   <category name="org.jboss.ha.framework.interfaces.HAPartition.lifecycle">
+     <priority value="INFO" />
+     <appender-ref ref="TRAP_LOG"/>
+   </category>
+
+   <category name="org.jboss.deployment.MainDeployer">
+     <priority value="ERROR" />
+     <appender-ref ref="TRAP_LOG"/>
+   </category>
+   
+   <category name="org.jboss.ejb.EJBDeployer">
+     <priority value="INFO" />
+     <appender-ref ref="TRAP_LOG"/>
+   </category>
+   
+   <category name="org.jboss.deployment.EARDeployer">
+     <priority value="INFO" />
+     <appender-ref ref="TRAP_LOG"/>
+   </category>
+   -->
+
+   <!-- Clustering logging -->
+   <!-- Uncomment the following to redirect the org.jgroups and
+      org.jboss.ha categories to a cluster.log file.
+
+   <appender name="CLUSTER" class="org.jboss.logging.appender.RollingFileAppender">
+     <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+     <param name="File" value="${jboss.server.log.dir}/cluster.log"/>
+     <param name="Append" value="false"/>
+     <param name="MaxFileSize" value="500KB"/>
+     <param name="MaxBackupIndex" value="1"/>
+
+     <layout class="org.apache.log4j.PatternLayout">
+       <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>
+     </layout>
+   </appender>
+   <category name="org.jgroups">
+     <priority value="DEBUG" />
+     <appender-ref ref="CLUSTER"/>
+   </category>
+   <category name="org.jboss.ha">
+     <priority value="DEBUG" />
+     <appender-ref ref="CLUSTER"/>
+   </category>
+   -->
+   
+   <!-- ======================= -->
+   <!-- Setup the Root category -->
+   <!-- ======================= -->
+
+   <root>
+      <!-- 
+         Set the root logger priority via a system property. Note this is parsed by log4j,
+         so the full JBoss system property format is not supported; e.g.
+         setting a default via ${jboss.server.log.threshold:WARN} will not work.         
+       -->
+      <priority value="${jboss.server.log.threshold}"/>
+      <appender-ref ref="CONSOLE"/>
+      <appender-ref ref="FILE"/>
+   </root>
+
+</log4j:configuration>

Added: projects/jboss-jca/trunk/sjc/src/main/resources/run.sh
===================================================================
--- projects/jboss-jca/trunk/sjc/src/main/resources/run.sh	                        (rev 0)
+++ projects/jboss-jca/trunk/sjc/src/main/resources/run.sh	2009-06-04 20:26:25 UTC (rev 89849)
@@ -0,0 +1,51 @@
+#!/bin/sh
+### ====================================================================== ###
+##                                                                          ##
+##  JBoss JCA Script                                                        ##
+##                                                                          ##
+### ====================================================================== ###
+
+### $Id: $ ###
+
+DIRNAME=`dirname $0`
+
+# Setup JBOSS_JCA_HOME
+if [ "x$JBOSS_JCA_HOME" = "x" ]; then
+    # get the full path (without any relative bits)
+    JBOSS_JCA_HOME=`cd $DIRNAME/..; pwd`
+fi
+export JBOSS_JCA_HOME
+
+# Setup the java endorsed dirs
+JBOSS_JCA_ENDORSED_DIRS="$JBOSS_JCA_HOME/lib/endorsed"
+
+# Setup the JVM
+if [ "x$JAVA" = "x" ]; then
+    if [ "x$JAVA_HOME" != "x" ]; then
+        JAVA="$JAVA_HOME/bin/java"
+    else
+        JAVA="java"
+    fi
+fi
+
+# Setup the JVM options
+JAVA_OPTS="$JAVA_OPTS -Xmx512m"
+
+# Display the environment
+echo "========================================================================="
+echo ""
+echo "  JBoss JCA"
+echo ""
+echo "  JBOSS_JCA_HOME: $JBOSS_JCA_HOME"
+echo ""
+echo "  JAVA: $JAVA"
+echo ""
+echo "  JAVA_OPTS: $JAVA_OPTS"
+echo ""
+echo "========================================================================="
+echo ""
+
+# Start JBoss JCA
+"$JAVA" $JAVA_OPTS \
+    -Djava.endorsed.dirs="$JBOSS_JCA_ENDORSED_DIRS" \
+    -jar jboss-jca-sjc.jar


Property changes on: projects/jboss-jca/trunk/sjc/src/main/resources/run.sh
___________________________________________________________________
Name: svn:executable
   + *

Added: projects/jboss-jca/trunk/sjc/src/main/resources/sjc-manifest.mf
===================================================================
--- projects/jboss-jca/trunk/sjc/src/main/resources/sjc-manifest.mf	                        (rev 0)
+++ projects/jboss-jca/trunk/sjc/src/main/resources/sjc-manifest.mf	2009-06-04 20:26:25 UTC (rev 89849)
@@ -0,0 +1,5 @@
+Main-Class: org.jboss.jca.sjc.Main
+Implementation-Title: JBoss JCA SJC
+Implementation-Vendor: Red Hat Middleware LLC
+Implementation-Vendor-Id: org.jboss
+Implementation-Version: 0.1




More information about the jboss-cvs-commits mailing list