[jboss-cvs] JBossAS SVN: r75316 - in projects/jpa/trunk/deployers: src/main/java/org/jboss/jpa/deployers and 7 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Jul 2 16:57:25 EDT 2008


Author: wolfc
Date: 2008-07-02 16:57:25 -0400 (Wed, 02 Jul 2008)
New Revision: 75316

Added:
   projects/jpa/trunk/deployers/src/test/java/org/jboss/jpa/deployers/test/common/DerbyService.java
   projects/jpa/trunk/deployers/src/test/java/org/jboss/jpa/deployers/test/common/SimpleTransactionService.java
   projects/jpa/trunk/deployers/src/test/resources/jndi.properties
   projects/jpa/trunk/deployers/src/test/resources/org/jboss/jpa/deployers/test/common/jbossts-beans.xml
   projects/jpa/trunk/deployers/src/test/resources/org/jboss/jpa/deployers/test/common/jndi-beans.xml
   projects/jpa/trunk/deployers/src/test/resources/org/jboss/jpa/deployers/test/deployment/derby-beans.xml
Modified:
   projects/jpa/trunk/deployers/.classpath
   projects/jpa/trunk/deployers/pom.xml
   projects/jpa/trunk/deployers/src/main/java/org/jboss/jpa/deployers/PersistenceDeployer.java
   projects/jpa/trunk/deployers/src/main/java/org/jboss/jpa/deployers/PersistenceUnitDeployer.java
   projects/jpa/trunk/deployers/src/main/java/org/jboss/jpa/deployment/PersistenceDeployment.java
   projects/jpa/trunk/deployers/src/main/java/org/jboss/jpa/deployment/PersistenceUnitDeployment.java
   projects/jpa/trunk/deployers/src/test/java/org/jboss/jpa/deployers/test/common/MainDeployerTestDelegate.java
   projects/jpa/trunk/deployers/src/test/java/org/jboss/jpa/deployers/test/deployment/DeploymentTestCase.java
   projects/jpa/trunk/deployers/src/test/resources/org/jboss/jpa/deployers/test/deployment/DeploymentTestCase.xml
   projects/jpa/trunk/deployers/src/test/resources/org/jboss/jpa/deployers/test/deployment/pu/META-INF/persistence.xml
Log:
Deployment of a persistence unit working

Modified: projects/jpa/trunk/deployers/.classpath
===================================================================
--- projects/jpa/trunk/deployers/.classpath	2008-07-02 20:16:45 UTC (rev 75315)
+++ projects/jpa/trunk/deployers/.classpath	2008-07-02 20:57:25 UTC (rev 75316)
@@ -13,8 +13,10 @@
   <classpathentry kind="var" path="M2_REPO/asm/asm-attrs/1.5.3/asm-attrs-1.5.3.jar"/>
   <classpathentry kind="var" path="M2_REPO/cglib/cglib/2.1_3/cglib-2.1_3.jar" sourcepath="M2_REPO/cglib/cglib/2.1_3/cglib-2.1_3-sources.jar"/>
   <classpathentry kind="var" path="M2_REPO/commons-collections/commons-collections/2.1.1/commons-collections-2.1.1.jar" sourcepath="M2_REPO/commons-collections/commons-collections/2.1.1/commons-collections-2.1.1-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/apache-httpclient/commons-httpclient/2.0.2/commons-httpclient-2.0.2.jar"/>
+  <classpathentry kind="var" path="M2_REPO/apache-logging/commons-logging/1.1.0.jboss/commons-logging-1.1.0.jboss.jar" sourcepath="M2_REPO/apache-logging/commons-logging/1.1.0.jboss/commons-logging-1.1.0.jboss-sources.jar"/>
   <classpathentry kind="var" path="M2_REPO/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.jar" sourcepath="M2_REPO/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4-sources.jar"/>
+  <classpathentry kind="var" path="M2_REPO/oswego-concurrent/concurrent/1.3.4-jboss-update1/concurrent-1.3.4-jboss-update1.jar" sourcepath="M2_REPO/oswego-concurrent/concurrent/1.3.4-jboss-update1/concurrent-1.3.4-jboss-update1-sources.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/apache/derby/derby/10.4.1.3/derby-10.4.1.3.jar"/>
   <classpathentry kind="var" path="M2_REPO/dom4j/dom4j/1.6.1/dom4j-1.6.1.jar" sourcepath="M2_REPO/dom4j/dom4j/1.6.1/dom4j-1.6.1-sources.jar"/>
   <classpathentry kind="var" path="M2_REPO/wutka-dtdparser/dtdparser121/1.2.1/dtdparser121-1.2.1.jar"/>
   <classpathentry kind="var" path="M2_REPO/net/sf/ehcache/ehcache/1.2.3/ehcache-1.2.3.jar" sourcepath="M2_REPO/net/sf/ehcache/ehcache/1.2.3/ehcache-1.2.3-sources.jar"/>
@@ -30,7 +32,7 @@
   <classpathentry kind="var" path="M2_REPO/org/jboss/cl/jboss-classloading/2.0.0.Beta12/jboss-classloading-2.0.0.Beta12.jar" sourcepath="M2_REPO/org/jboss/cl/jboss-classloading/2.0.0.Beta12/jboss-classloading-2.0.0.Beta12-sources.jar"/>
   <classpathentry kind="var" path="M2_REPO/org/jboss/jboss-classloading-spi/5.0.0.Beta4/jboss-classloading-spi-5.0.0.Beta4.jar" sourcepath="M2_REPO/org/jboss/jboss-classloading-spi/5.0.0.Beta4/jboss-classloading-spi-5.0.0.Beta4-sources.jar"/>
   <classpathentry kind="var" path="M2_REPO/org/jboss/cl/jboss-classloading-vfs/2.0.0.Beta12/jboss-classloading-vfs-2.0.0.Beta12.jar" sourcepath="M2_REPO/org/jboss/cl/jboss-classloading-vfs/2.0.0.Beta12/jboss-classloading-vfs-2.0.0.Beta12-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/jboss-common-core/2.2.3.GA/jboss-common-core-2.2.3.GA.jar" sourcepath="M2_REPO/org/jboss/jboss-common-core/2.2.3.GA/jboss-common-core-2.2.3.GA-sources.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/jboss/jboss-common-core/2.2.7.GA/jboss-common-core-2.2.7.GA.jar" sourcepath="M2_REPO/org/jboss/jboss-common-core/2.2.7.GA/jboss-common-core-2.2.7.GA-sources.jar"/>
   <classpathentry kind="var" path="M2_REPO/jboss/jboss-common-logging-log4j/2.0.4.GA/jboss-common-logging-log4j-2.0.4.GA.jar" sourcepath="M2_REPO/jboss/jboss-common-logging-log4j/2.0.4.GA/jboss-common-logging-log4j-2.0.4.GA-sources.jar"/>
   <classpathentry kind="var" path="M2_REPO/jboss/jboss-common-logging-spi/2.0.4.GA/jboss-common-logging-spi-2.0.4.GA.jar" sourcepath="M2_REPO/jboss/jboss-common-logging-spi/2.0.4.GA/jboss-common-logging-spi-2.0.4.GA-sources.jar"/>
   <classpathentry kind="var" path="M2_REPO/org/jboss/microcontainer/jboss-dependency/2.0.0.Beta16/jboss-dependency-2.0.0.Beta16.jar" sourcepath="M2_REPO/org/jboss/microcontainer/jboss-dependency/2.0.0.Beta16/jboss-dependency-2.0.0.Beta16-sources.jar"/>
@@ -62,13 +64,15 @@
   <classpathentry kind="var" path="M2_REPO/org/jboss/javaee/jboss-transaction-api/1.0.1.20070913080910/jboss-transaction-api-1.0.1.20070913080910.jar" sourcepath="M2_REPO/org/jboss/javaee/jboss-transaction-api/1.0.1.20070913080910/jboss-transaction-api-1.0.1.20070913080910-sources.jar"/>
   <classpathentry kind="var" path="M2_REPO/org/jboss/jboss-transaction-spi/5.0.0.Beta4/jboss-transaction-spi-5.0.0.Beta4.jar" sourcepath="M2_REPO/org/jboss/jboss-transaction-spi/5.0.0.Beta4/jboss-transaction-spi-5.0.0.Beta4-sources.jar"/>
   <classpathentry kind="var" path="M2_REPO/org/jboss/jboss-vfs/2.0.0.Beta19/jboss-vfs-2.0.0.Beta19.jar" sourcepath="M2_REPO/org/jboss/jboss-vfs/2.0.0.Beta19/jboss-vfs-2.0.0.Beta19-sources.jar"/>
+  <classpathentry kind="var" path="M2_REPO/jboss/jbossts/jbossjta/4.3.0.GA/jbossjta-4.3.0.GA.jar"/>
+  <classpathentry kind="var" path="M2_REPO/jboss/jbossts/jbossts-common/4.3.0.GA/jbossts-common-4.3.0.GA.jar"/>
   <classpathentry kind="var" path="M2_REPO/org/jboss/ws/jbossws-spi/1.0.2.GA/jbossws-spi-1.0.2.GA.jar"/>
   <classpathentry kind="var" path="M2_REPO/org/jboss/jbossxb/2.0.0.CR10/jbossxb-2.0.0.CR10.jar" sourcepath="M2_REPO/org/jboss/jbossxb/2.0.0.CR10/jbossxb-2.0.0.CR10-sources.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/jboss/naming/jnpserver/5.0.0.CR1/jnpserver-5.0.0.CR1.jar" sourcepath="M2_REPO/org/jboss/naming/jnpserver/5.0.0.CR1/jnpserver-5.0.0.CR1-sources.jar"/>
   <classpathentry kind="var" path="M2_REPO/javax/transaction/jta/1.0.1B/jta-1.0.1B.jar"/>
   <classpathentry kind="var" path="M2_REPO/junit/junit/4.4/junit-4.4.jar" sourcepath="M2_REPO/junit/junit/4.4/junit-4.4-sources.jar"/>
   <classpathentry kind="var" path="M2_REPO/log4j/log4j/1.2.14/log4j-1.2.14.jar" sourcepath="M2_REPO/log4j/log4j/1.2.14/log4j-1.2.14-sources.jar"/>
   <classpathentry kind="var" path="M2_REPO/javax/xml/stream/stax-api/1.0-2/stax-api-1.0-2.jar" sourcepath="M2_REPO/javax/xml/stream/stax-api/1.0-2/stax-api-1.0-2-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/apache-slide/webdavlib/2.0/webdavlib-2.0.jar"/>
   <classpathentry kind="var" path="M2_REPO/apache-xerces/xercesImpl/2.9.1/xercesImpl-2.9.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/apache-xerces/xml-apis/2.7.1/xml-apis-2.7.1.jar"/>
+  <classpathentry kind="var" path="M2_REPO/apache-xerces/xml-apis/2.9.1/xml-apis-2.9.1.jar"/>
 </classpath>
\ No newline at end of file

Modified: projects/jpa/trunk/deployers/pom.xml
===================================================================
--- projects/jpa/trunk/deployers/pom.xml	2008-07-02 20:16:45 UTC (rev 75315)
+++ projects/jpa/trunk/deployers/pom.xml	2008-07-02 20:57:25 UTC (rev 75316)
@@ -18,13 +18,27 @@
   <name>JBoss Container Managed JPA Deployers</name>
   
   <dependencies>
+    <!-- For 'mocking' a TransactionManager we use JBossTS -->
+    <dependency>
+      <groupId>jboss.jbossts</groupId>
+      <artifactId>jbossjta</artifactId>
+      <version>4.3.0.GA</version>
+      <scope>test</scope>
+    </dependency>
   	<dependency>
       <groupId>junit</groupId>
       <artifactId>junit</artifactId>
       <version>4.4</version>
       <scope>test</scope>
     </dependency>
+    <!-- For 'mocking' a DataSource we use Derby -->
     <dependency>
+      <groupId>org.apache.derby</groupId>
+      <artifactId>derby</artifactId>
+      <version>10.4.1.3</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
       <groupId>org.hibernate</groupId>
       <artifactId>hibernate-entitymanager</artifactId>
       <version>3.3.2.GA</version>
@@ -44,7 +58,6 @@
       <groupId>org.jboss.deployers</groupId>
       <artifactId>jboss-deployers-vfs</artifactId>
       <version>2.0.0.Beta18</version>
-      <scope>test</scope>
     </dependency>
   	<dependency>
       <groupId>org.jboss.deployers</groupId>
@@ -56,5 +69,31 @@
       <artifactId>jboss-metadata</artifactId>
       <version>1.0.0.Beta26</version>
     </dependency>
+    <dependency>
+      <groupId>org.jboss.naming</groupId>
+      <artifactId>jnpserver</artifactId>
+      <version>5.0.0.CR1</version>
+      <scope>test</scope>
+    </dependency>
+    
+    <!-- For Arjuna / JBoss Transaction -->
+    <dependency>
+      <groupId>apache-logging</groupId>
+      <artifactId>commons-logging</artifactId>
+      <version>1.1.0.jboss</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>oswego-concurrent</groupId>
+      <artifactId>concurrent</artifactId>
+      <version>1.3.4-jboss-update1</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>jboss.jbossts</groupId>
+      <artifactId>jbossts-common</artifactId>
+      <version>4.3.0.GA</version>
+      <scope>test</scope>
+    </dependency>
   </dependencies>
 </project>

Modified: projects/jpa/trunk/deployers/src/main/java/org/jboss/jpa/deployers/PersistenceDeployer.java
===================================================================
--- projects/jpa/trunk/deployers/src/main/java/org/jboss/jpa/deployers/PersistenceDeployer.java	2008-07-02 20:16:45 UTC (rev 75315)
+++ projects/jpa/trunk/deployers/src/main/java/org/jboss/jpa/deployers/PersistenceDeployer.java	2008-07-02 20:57:25 UTC (rev 75316)
@@ -39,7 +39,7 @@
    
    public PersistenceDeployer()
    {
-      setComponentVisitor(new PersistenceUnitDeploymentVisitor());
+      //setComponentVisitor(new PersistenceUnitDeploymentVisitor());
       setDeploymentVisitor(new PersistenceDeploymentVisitor());
    }
 

Modified: projects/jpa/trunk/deployers/src/main/java/org/jboss/jpa/deployers/PersistenceUnitDeployer.java
===================================================================
--- projects/jpa/trunk/deployers/src/main/java/org/jboss/jpa/deployers/PersistenceUnitDeployer.java	2008-07-02 20:16:45 UTC (rev 75315)
+++ projects/jpa/trunk/deployers/src/main/java/org/jboss/jpa/deployers/PersistenceUnitDeployer.java	2008-07-02 20:57:25 UTC (rev 75316)
@@ -23,9 +23,12 @@
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Properties;
 
 import javax.naming.InitialContext;
+import javax.naming.NamingException;
 
+import org.jboss.beans.metadata.api.annotations.MapValue;
 import org.jboss.beans.metadata.plugins.AbstractBeanMetaData;
 import org.jboss.beans.metadata.spi.BeanMetaData;
 import org.jboss.beans.metadata.spi.builder.BeanMetaDataBuilder;
@@ -46,6 +49,8 @@
 {
    private static final Logger log = Logger.getLogger(PersistenceUnitDeployer.class);
    
+   private Properties defaultPersistenceProperties;
+   
    public PersistenceUnitDeployer()
    {
       super(PersistenceUnitMetaData.class);
@@ -61,20 +66,34 @@
    {
       log.debug("deploy " + metaData);
       
-      InitialContext initialContext = null;
-      PersistenceDeployment persistenceDeployment = null;
-      List<String> explicitEntityClasses = new ArrayList<String>();
-      String ear = null;
-      String jar = null;
-      boolean isScoped = false;
-      VFSDeploymentUnit deploymentUnit = (VFSDeploymentUnit) unit.getParent();
-      PersistenceUnitDeployment pu = new PersistenceUnitDeployment(initialContext, persistenceDeployment, explicitEntityClasses, metaData, ear, jar, isScoped, deploymentUnit);
-      
-      String name = "ToDo";
-      AbstractBeanMetaData beanMetaData = new AbstractBeanMetaData(name, PersistenceUnitDeployment.class.getName());
-      BeanMetaDataBuilder builder = BeanMetaDataBuilder.createBuilder(beanMetaData);
-      builder.setConstructorValue(pu);
-      
-      unit.addAttachment(BeanMetaData.class, builder.getBeanMetaData());
+      try
+      {
+         InitialContext initialContext = new InitialContext();
+         PersistenceDeployment persistenceDeployment = null;
+         List<String> explicitEntityClasses = new ArrayList<String>();
+         String ear = null;
+         String jar = null;
+         boolean isScoped = false;
+         VFSDeploymentUnit deploymentUnit = (VFSDeploymentUnit) unit.getParent();
+         PersistenceUnitDeployment pu = new PersistenceUnitDeployment(initialContext, persistenceDeployment, explicitEntityClasses, metaData, ear, jar, isScoped, deploymentUnit, defaultPersistenceProperties);
+         
+         // TODO: fix me, must match the component name in PersistenceDeployer
+         String name = metaData.getName();
+         AbstractBeanMetaData beanMetaData = new AbstractBeanMetaData(name, PersistenceUnitDeployment.class.getName());
+         BeanMetaDataBuilder builder = BeanMetaDataBuilder.createBuilder(beanMetaData);
+         builder.setConstructorValue(pu);
+         
+         unit.addAttachment(BeanMetaData.class, builder.getBeanMetaData());
+      }
+      catch(NamingException e)
+      {
+         throw new DeploymentException(e);
+      }
    }
+   
+   @MapValue(keyClass=String.class, value={}, valueClass=String.class)
+   public void setDefaultPersistenceProperties(Properties p)
+   {
+      this.defaultPersistenceProperties = p;
+   }
 }

Modified: projects/jpa/trunk/deployers/src/main/java/org/jboss/jpa/deployment/PersistenceDeployment.java
===================================================================
--- projects/jpa/trunk/deployers/src/main/java/org/jboss/jpa/deployment/PersistenceDeployment.java	2008-07-02 20:16:45 UTC (rev 75315)
+++ projects/jpa/trunk/deployers/src/main/java/org/jboss/jpa/deployment/PersistenceDeployment.java	2008-07-02 20:57:25 UTC (rev 75316)
@@ -44,6 +44,7 @@
  * @author adrian at jboss.org
  * @version $Revision$
  */
+ at Deprecated
 public class PersistenceDeployment //extends ServiceMBeanSupport
 //  implements JavaEEModule, Ejb3DeploymentMBean
 {
@@ -216,7 +217,7 @@
 //            cache_prefix = SecondLevelCacheUtil.createCacheRegionPrefix(earShortName, jarName, metaData.getName());
 //            properties.put(SecondLevelCacheUtil.HIBERNATE_CACHE_REGION_PREFIX, cache_prefix);
 //         }
-         PersistenceUnitDeployment deployment = new PersistenceUnitDeployment(initialContext, this, explicitEntityClasses, metaData, earName, unit.getSimpleName(), isScoped, getDeploymentUnit());
+         PersistenceUnitDeployment deployment = new PersistenceUnitDeployment(initialContext, this, explicitEntityClasses, metaData, earName, unit.getSimpleName(), isScoped, getDeploymentUnit(), null);
          PersistenceUnitRegistry.register(deployment);
          persistenceUnitDeployments.add(deployment);
       }

Modified: projects/jpa/trunk/deployers/src/main/java/org/jboss/jpa/deployment/PersistenceUnitDeployment.java
===================================================================
--- projects/jpa/trunk/deployers/src/main/java/org/jboss/jpa/deployment/PersistenceUnitDeployment.java	2008-07-02 20:16:45 UTC (rev 75315)
+++ projects/jpa/trunk/deployers/src/main/java/org/jboss/jpa/deployment/PersistenceUnitDeployment.java	2008-07-02 20:57:25 UTC (rev 75316)
@@ -64,8 +64,9 @@
    protected String kernelName;
    protected PersistenceDeployment deployment;
    protected boolean scoped;
+   private Properties defaultPersistenceProperties;
 
-   public PersistenceUnitDeployment(InitialContext initialContext, PersistenceDeployment deployment, List<String> explicitEntityClasses, PersistenceUnitMetaData metadata, String ear, String jar, boolean isScoped, VFSDeploymentUnit deploymentUnit)
+   public PersistenceUnitDeployment(InitialContext initialContext, PersistenceDeployment deployment, List<String> explicitEntityClasses, PersistenceUnitMetaData metadata, String ear, String jar, boolean isScoped, VFSDeploymentUnit deploymentUnit, Properties defaultPersistenceProperties)
    {
       //super(new SimpleJavaEEModule((deployment.getEar() != null ? deployment.getEar().getShortName() : null), deployment.getDeploymentUnit().getShortName()));
       
@@ -75,6 +76,8 @@
       this.di = deploymentUnit;
       this.explicitEntityClasses = explicitEntityClasses;
       this.metaData = metadata;
+      this.defaultPersistenceProperties = defaultPersistenceProperties;
+      
       kernelName = "persistence.units:";
       String name = getEntityManagerName();
       if (name == null || name.length() == 0)
@@ -231,8 +234,7 @@
       log.info("Starting persistence unit " + kernelName);
       
       Properties props = new Properties();
-      // FIXME: reinstate
-//      props.putAll(di.getDefaultPersistenceProperties());
+      props.putAll(defaultPersistenceProperties);
       props.put(HibernatePersistence.JACC_CONTEXT_ID, getJaccContextId());
 
       PersistenceUnitInfoImpl pi = new PersistenceUnitInfoImpl();

Added: projects/jpa/trunk/deployers/src/test/java/org/jboss/jpa/deployers/test/common/DerbyService.java
===================================================================
--- projects/jpa/trunk/deployers/src/test/java/org/jboss/jpa/deployers/test/common/DerbyService.java	                        (rev 0)
+++ projects/jpa/trunk/deployers/src/test/java/org/jboss/jpa/deployers/test/common/DerbyService.java	2008-07-02 20:57:25 UTC (rev 75316)
@@ -0,0 +1,77 @@
+/*
+ * 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.
+ */
+package org.jboss.jpa.deployers.test.common;
+
+import java.sql.Connection;
+
+import javax.naming.InitialContext;
+
+import org.apache.derby.jdbc.EmbeddedDataSource;
+
+/**
+ * @author <a href="mailto:cdewolf at redhat.com">Carlo de Wolf</a>
+ * @version $Revision: $
+ */
+public class DerbyService
+{
+   private String className = "org.apache.derby.jdbc.EmbeddedDataSource";
+   private String databaseName = "./target/derby.db";
+   private boolean createDatabase = true;
+   private String jndiName = "java:/DefaultDS";
+   
+   private EmbeddedDataSource ds;
+   private InitialContext ctx;
+   
+   public void create() throws Exception
+   {
+      System.setProperty("derby.stream.error.file", "target/derby.log");
+      
+      Class<? extends EmbeddedDataSource> cls = (Class<? extends EmbeddedDataSource>) Class.forName(className);
+      this.ds = cls.newInstance();
+      ds.setDatabaseName(databaseName);
+      if(createDatabase)
+         ds.setCreateDatabase("create");
+      
+      ctx = new InitialContext();
+   }
+   
+   public void destroy() throws Exception
+   {
+      ctx.close();
+      ctx = null;
+      ds = null;
+   }
+   
+   public void start() throws Exception
+   {
+      // Make sure that database is created before we go on.
+      Connection con = ds.getConnection();
+      con.close();
+      
+      ctx.bind(jndiName, ds);
+   }
+   
+   public void stop() throws Exception
+   {
+      ctx.unbind(jndiName);
+   }
+}

Modified: projects/jpa/trunk/deployers/src/test/java/org/jboss/jpa/deployers/test/common/MainDeployerTestDelegate.java
===================================================================
--- projects/jpa/trunk/deployers/src/test/java/org/jboss/jpa/deployers/test/common/MainDeployerTestDelegate.java	2008-07-02 20:16:45 UTC (rev 75315)
+++ projects/jpa/trunk/deployers/src/test/java/org/jboss/jpa/deployers/test/common/MainDeployerTestDelegate.java	2008-07-02 20:57:25 UTC (rev 75316)
@@ -41,11 +41,31 @@
       super(clazz);
    }
    
+   public KernelDeployment deploy(String resource) throws Exception
+   {
+      URL url = clazz.getResource(resource);
+      if(url == null)
+         throw new IllegalArgumentException("Can't find resource '" + resource + "'");
+      try
+      {
+         return deploy(url);
+      }
+      finally
+      {
+         validate();
+      }
+   }
+   
    public KernelDeployment deploy(URL url) throws Exception
    {
       return super.deploy(url);
    }
    
+   public <T> T getBean(Object name, Class<T> expectedType)
+   {
+      return getBean(name, ControllerState.INSTALLED, expectedType);
+   }
+   
    public MainDeployer getMainDeployer()
    {
       return mainDeployer;

Added: projects/jpa/trunk/deployers/src/test/java/org/jboss/jpa/deployers/test/common/SimpleTransactionService.java
===================================================================
--- projects/jpa/trunk/deployers/src/test/java/org/jboss/jpa/deployers/test/common/SimpleTransactionService.java	                        (rev 0)
+++ projects/jpa/trunk/deployers/src/test/java/org/jboss/jpa/deployers/test/common/SimpleTransactionService.java	2008-07-02 20:57:25 UTC (rev 75316)
@@ -0,0 +1,47 @@
+/*
+ * 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.
+ */
+package org.jboss.jpa.deployers.test.common;
+
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
+
+import com.arjuna.ats.jta.utils.JNDIManager;
+
+/**
+ * Bind a JTA TransactionManager into JNDI.
+ * 
+ * @author <a href="mailto:carlo.dewolf at jboss.com">Carlo de Wolf</a>
+ * @version $Revision: $
+ */
+public class SimpleTransactionService
+{
+   public void start() throws Exception
+   {
+      JNDIManager.bindJTAImplementation();
+   }
+   
+   public void stop() throws NamingException
+   {
+      InitialContext ctx = new InitialContext();
+      ctx.unbind("java:/TransactionManager");
+   }
+}

Modified: projects/jpa/trunk/deployers/src/test/java/org/jboss/jpa/deployers/test/deployment/DeploymentTestCase.java
===================================================================
--- projects/jpa/trunk/deployers/src/test/java/org/jboss/jpa/deployers/test/deployment/DeploymentTestCase.java	2008-07-02 20:16:45 UTC (rev 75315)
+++ projects/jpa/trunk/deployers/src/test/java/org/jboss/jpa/deployers/test/deployment/DeploymentTestCase.java	2008-07-02 20:57:25 UTC (rev 75316)
@@ -21,11 +21,14 @@
  */
 package org.jboss.jpa.deployers.test.deployment;
 
+import static org.junit.Assert.assertNotNull;
+
 import java.net.URL;
 
 import org.jboss.deployers.vfs.spi.client.VFSDeployment;
 import org.jboss.deployers.vfs.spi.client.VFSDeploymentFactory;
 import org.jboss.jpa.deployers.test.common.MainDeployerTestDelegate;
+import org.jboss.jpa.spi.PersistenceUnit;
 import org.jboss.virtual.VFS;
 import org.jboss.virtual.VirtualFile;
 import org.junit.BeforeClass;
@@ -44,6 +47,10 @@
    {
       delegate = new MainDeployerTestDelegate(DeploymentTestCase.class);
       delegate.setUp();
+      
+      delegate.deploy("/org/jboss/jpa/deployers/test/common/jndi-beans.xml");
+      delegate.deploy("/org/jboss/jpa/deployers/test/common/jbossts-beans.xml");
+      delegate.deploy("derby-beans.xml");
    }
    
    @Test
@@ -54,9 +61,12 @@
       VirtualFile file = VFS.getRoot(url);
       VFSDeployment deployment = VFSDeploymentFactory.getInstance().createVFSDeployment(file);
       delegate.getMainDeployer().deploy(deployment);
-      delegate.getMainDeployer().checkComplete(deployment);
+      //delegate.getMainDeployer().checkComplete(deployment);
       
-      // TODO:
+      // TODO: this name should be persistence.units:jar=pu,unitName=dummy
+      String name = "dummy";
+      PersistenceUnit pu = delegate.getBean(name, PersistenceUnit.class);
+      assertNotNull(pu);
       
       delegate.getMainDeployer().undeploy(deployment);
    }

Added: projects/jpa/trunk/deployers/src/test/resources/jndi.properties
===================================================================
--- projects/jpa/trunk/deployers/src/test/resources/jndi.properties	                        (rev 0)
+++ projects/jpa/trunk/deployers/src/test/resources/jndi.properties	2008-07-02 20:57:25 UTC (rev 75316)
@@ -0,0 +1,2 @@
+java.naming.factory.initial=org.jnp.interfaces.LocalOnlyContextFactory
+java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
\ No newline at end of file

Added: projects/jpa/trunk/deployers/src/test/resources/org/jboss/jpa/deployers/test/common/jbossts-beans.xml
===================================================================
--- projects/jpa/trunk/deployers/src/test/resources/org/jboss/jpa/deployers/test/common/jbossts-beans.xml	                        (rev 0)
+++ projects/jpa/trunk/deployers/src/test/resources/org/jboss/jpa/deployers/test/common/jbossts-beans.xml	2008-07-02 20:57:25 UTC (rev 75316)
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<deployment xmlns="urn:jboss:bean-deployer:2.0">
+   <bean name="TransactionManager" class="org.jboss.jpa.deployers.test.common.SimpleTransactionService">
+      <depends>NameServer</depends>
+   </bean>   
+</deployment>
\ No newline at end of file

Added: projects/jpa/trunk/deployers/src/test/resources/org/jboss/jpa/deployers/test/common/jndi-beans.xml
===================================================================
--- projects/jpa/trunk/deployers/src/test/resources/org/jboss/jpa/deployers/test/common/jndi-beans.xml	                        (rev 0)
+++ projects/jpa/trunk/deployers/src/test/resources/org/jboss/jpa/deployers/test/common/jndi-beans.xml	2008-07-02 20:57:25 UTC (rev 75316)
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<deployment xmlns="urn:jboss:bean-deployer:2.0">
+   <!-- JNDI -->
+   <bean name="NameServer" class="org.jnp.server.SingletonNamingServer"/>
+</deployment>
\ No newline at end of file

Modified: projects/jpa/trunk/deployers/src/test/resources/org/jboss/jpa/deployers/test/deployment/DeploymentTestCase.xml
===================================================================
--- projects/jpa/trunk/deployers/src/test/resources/org/jboss/jpa/deployers/test/deployment/DeploymentTestCase.xml	2008-07-02 20:16:45 UTC (rev 75315)
+++ projects/jpa/trunk/deployers/src/test/resources/org/jboss/jpa/deployers/test/deployment/DeploymentTestCase.xml	2008-07-02 20:57:25 UTC (rev 75316)
@@ -3,5 +3,14 @@
    <bean name="PersistenceParsingDeployer" class="org.jboss.jpa.deployers.PersistenceParsingDeployer"/>
 
    <bean name="PersistenceDeployer" class="org.jboss.jpa.deployers.PersistenceDeployer"/>
-   <bean name="PersistenceUnitDeployer" class="org.jboss.jpa.deployers.PersistenceUnitDeployer"/>
+   <bean name="PersistenceUnitDeployer" class="org.jboss.jpa.deployers.PersistenceUnitDeployer">
+      <property name="defaultPersistenceProperties">
+         <map keyClass="java.lang.String" valueClass="java.lang.String">
+            <entry>
+               <key>hibernate.transaction.manager_lookup_class</key>
+               <value>org.hibernate.transaction.JBossTransactionManagerLookup</value>
+            </entry>
+         </map>
+      </property>
+   </bean>
 </deployment>

Added: projects/jpa/trunk/deployers/src/test/resources/org/jboss/jpa/deployers/test/deployment/derby-beans.xml
===================================================================
--- projects/jpa/trunk/deployers/src/test/resources/org/jboss/jpa/deployers/test/deployment/derby-beans.xml	                        (rev 0)
+++ projects/jpa/trunk/deployers/src/test/resources/org/jboss/jpa/deployers/test/deployment/derby-beans.xml	2008-07-02 20:57:25 UTC (rev 75316)
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<deployment xmlns="urn:jboss:bean-deployer:2.0">
+   <!-- As a 'mock' DataSource we use Derby -->
+   <bean name="DerbyService" class="org.jboss.jpa.deployers.test.common.DerbyService"/>
+</deployment>
\ No newline at end of file

Modified: projects/jpa/trunk/deployers/src/test/resources/org/jboss/jpa/deployers/test/deployment/pu/META-INF/persistence.xml
===================================================================
--- projects/jpa/trunk/deployers/src/test/resources/org/jboss/jpa/deployers/test/deployment/pu/META-INF/persistence.xml	2008-07-02 20:16:45 UTC (rev 75315)
+++ projects/jpa/trunk/deployers/src/test/resources/org/jboss/jpa/deployers/test/deployment/pu/META-INF/persistence.xml	2008-07-02 20:57:25 UTC (rev 75316)
@@ -3,7 +3,7 @@
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
    version="1.0">
-   <persistence-unit name="ToDo">
+   <persistence-unit name="dummy">
       <jta-data-source>java:/DefaultDS</jta-data-source>
       <properties>
           <property name="hibernate.hbm2ddl.auto" value="create-drop"/>




More information about the jboss-cvs-commits mailing list