How I should point to my resource.xml when I am setting up arquillian with tomee? -


with glassfish-embedded server used following line in arquillian.xml specify resource.xml

arquillian.xml

   <container qualifier="glassfish-embedded" >     <configuration>         <property name="resourcesxml">             src/test/resources-glassfish-embedded/glassfish-resources.xml         </property>     </configuration> </container> 

glassfish-resources.xml

<resources> <jdbc-resource pool-name="arquillianembeddedderbypool"     jndi-name="jdbc/arquillian"/> <jdbc-connection-pool name="arquillianembeddedderbypool"     res-type="javax.sql.datasource"     datasource-classname="org.apache.derby.jdbc.embeddeddatasource"     is-isolation-level-guaranteed="false">     <property name="databasename" value="target/databases/derby"/>     <property name="createdatabase" value="create"/> </jdbc-connection-pool> </resources> 

now trying use tomee , couldn't connect database, because cannot point out resource.xml in same way used glassfish.

here warning indicate resourcesxml property not supported tomee (in arquillian.xml)

warning: configuration contain properties not supported backing object org.apache.openejb.arquillian.embedded.embeddedtomeeconfiguration unused property entries: {resourcesxml=             src/test/resources-glassfish-embedded/glassfish-resources.xml         } 

i want know alternative setting specifying resources in tomee arquillian.i appreciate in regards.

finally managed setup arquillian cdi, hibernate, embeded in memory h2 database on tomee. don't need resource.xml. need beans.xml cdi , persistence.xml defining datasource , persistence unit. here shrinkwrap setting files tomee , h2, cdi , hibernate.

my test class shrinkwrap

import org.apache.openejb.assembler.classic.appinfo; import org.apache.openejb.assembler.classic.assembler; import org.apache.openejb.assembler.classic.reloadableentitymanagerfactory; import org.apache.openejb.jee.jba.cmp.addcolumntemplate; import org.apache.openejb.loader.systeminstance; import org.apache.openejb.spi.containersystem; import org.apache.ziplock.jarlocation; import org.jboss.arquillian.container.test.api.deployment; import org.jboss.arquillian.junit.arquillian; import org.jboss.shrinkwrap.api.archivepaths; import org.jboss.shrinkwrap.api.shrinkwrap; import org.jboss.shrinkwrap.api.asset.emptyasset; import org.jboss.shrinkwrap.api.asset.stringasset; import org.jboss.shrinkwrap.api.spec.webarchive; import org.jboss.shrinkwrap.resolver.api.resolutionexception; import org.jboss.shrinkwrap.resolver.api.maven.maven; import org.jboss.shrinkwrap.resolver.api.maven.scopetype; import org.jboss.shrinkwrap.resolver.api.maven.strategy.acceptscopesstrategy; import org.junit.after; import org.junit.assert; import org.junit.before; import org.junit.test; import org.junit.runner.runwith;  import se.raindance.yashar.game;  import javax.inject.inject; import javax.persistence.entitymanager; import javax.persistence.entitymanagerfactory; import javax.persistence.persistencecontext; import javax.persistence.persistencecontexttype; import javax.persistence.persistenceunit; import javax.transaction.usertransaction;  import java.io.file; import java.util.arrays; import java.util.collection; import java.util.hashset; import java.util.list; import java.util.set;  import static org.junit.assert.assertnotnull; import static org.junit.assert.asserttrue;  @runwith(arquillian.class) public class hibernatetest {     @deployment     public static webarchive war() {         file[] hibernate;         try { // try offline first since faster             hibernate = maven.resolver()                     .offline(true)                     .loadpomfromfile("src/test/resources/hibernate-pom.xml")                     .importruntimeandtestdependencies(new acceptscopesstrategy(scopetype.compile, scopetype.runtime))                     .asfile();         } catch (resolutionexception re) { // try on central             hibernate = maven.resolver()                     .loadpomfromfile("src/test/resources/hibernate-pom.xml")                     .importruntimeandtestdependencies(new acceptscopesstrategy(scopetype.compile, scopetype.runtime))                     .asfile();         }          webarchive webarchive =  shrinkwrap.create(webarchive.class, "hibernate-app.war")                   .addaswebinfresource("test-persistence.xml", "classes/meta-inf/persistence.xml")                      .addaswebinfresource(emptyasset.instance, "classes/meta-inf/beans.xml")                 .addaslibraries(hibernate)                 .addaslibraries(jarlocation.jarlocation(resolutionexception.class))                 .addclasses(game.class)                 .addaslibraries(jarlocation.jarlocation(org.jboss.shrinkwrap.resolver.api.maven.filter.mavenresolutionfilter.class));           system.out.println(webarchive.tostring(true));         return webarchive;     }      private static final string[] game_titles = {         "super mario brothers",         "mario kart",         "f-zero"     };      @persistencecontext(unitname = "yasharunit")     entitymanager em;                 @inject     usertransaction utx;      @before     public void preparepersistencetest() throws exception {         cleardata();         insertdata();         starttransaction();     }      private void cleardata() throws exception {         utx.begin();         em.jointransaction();         system.out.println("dumping old records...");         em.createquery("delete game").executeupdate();         utx.commit();     }      private void insertdata() throws exception {         utx.begin();         em.jointransaction();         system.out.println("inserting records...");         (string title : game_titles) {             game game = new game(title);             em.persist(game);         }         utx.commit();         em.clear();     }      private void starttransaction() throws exception {         utx.begin();         em.jointransaction();     }      @after     public void committransaction() throws exception {         utx.commit();     }      @test     public void shouldfindallgamesusingjpqlquery() throws exception {         // given         string fetchingallgamesinjpql = "select g game g order g.id";          // when         system.out.println("selecting (using jpql)...");         list<game> games = em.createquery(fetchingallgamesinjpql, game.class).getresultlist();          //         system.out.println("found " + games.size() + " games (using jpql):");         assertcontainsallgames(games);     }       private static void assertcontainsallgames(collection<game> retrievedgames) {         assert.assertequals(game_titles.length, retrievedgames.size());         final set<string> retrievedgametitles = new hashset<string>();         (game game : retrievedgames) {             system.out.println("* " + game);             retrievedgametitles.add(game.gettitle());         }         assert.asserttrue(retrievedgametitles.containsall(arrays.aslist(game_titles)));     } } 

hibernate-pom.xml

<?xml version="1.0"?> <project xmlns="http://maven.apache.org/pom/4.0.0" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"          xsi:schemalocation="http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">   <modelversion>4.0.0</modelversion>   <groupid>org.apache.openejb.arquillian.tests</groupid>   <version>1.0.0</version>   <artifactid>codi-deps</artifactid>    <dependencies>     <dependency>       <groupid>org.hibernate</groupid>       <artifactid>hibernate-entitymanager</artifactid>       <version>4.1.6.final</version>       <exclusions>         <exclusion>           <groupid>org.hibernate.javax.persistence</groupid>           <artifactid>hibernate-jpa-2.0-api</artifactid>         </exclusion>         <exclusion>           <groupid>org.jboss.spec.javax.transaction</groupid>           <artifactid>jboss-transaction-api_1.1_spec</artifactid>         </exclusion>         <exclusion>           <groupid>org.javassist</groupid>           <artifactid>javassist</artifactid>         </exclusion>       </exclusions>     </dependency>     <dependency>       <groupid>org.hibernate</groupid>       <artifactid>hibernate-validator</artifactid>       <version>4.3.0.final</version>   <exclusions>         <exclusion>           <groupid>javax.validation</groupid>           <artifactid>validation-api</artifactid>         </exclusion>       </exclusions>     </dependency>    </dependencies> </project> 

persistence.xml

<persistence xmlns="http://java.sun.com/xml/ns/persistence"     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_2_0.xsd"     version="2.0">     <persistence-unit name="yasharunit" transaction-type="jta">      <jta-data-source>yashardatasource</jta-data-source>      <non-jta-data-source>yasharunmanageddatasource</non-jta-data-source>         <provider>org.hibernate.ejb.hibernatepersistence</provider>          <class>se.raindance.yashar.game</class>         <properties>             <property name="hibernate.connection.username" value="sa" />             <property name="hibernate.connection.driver_class" value="org.h2.driver" />             <property name="hibernate.connection.password" value="" />             <property name="hibernate.connection.url" value="jdbc:h2:~/test;auto_server=true" />             <property name="hibernate.dialect" value="org.hibernate.dialect.h2dialect" />             <property name="hibernate.show_sql" value="true" />             <property name="hibernate.hbm2ddl.auto" value="create-drop" />              <property name="openjpa.jdbc.synchronizemappings" value="buildschema(foreignkeys=true)"/>         </properties>     </persistence-unit> </persistence> 

and our sample game entity

import java.io.serializable;  import javax.persistence.entity; import javax.persistence.generatedvalue; import javax.persistence.id; import javax.validation.constraints.notnull; import javax.validation.constraints.size;  /**  * @author yashar bizhanzadeh  *  */  @entity public class game implements serializable {     private long id;     private string title;      public game() {}      public game(string title) {         this.title = title;     }      @id @generatedvalue     public long getid() {         return id;     }      public void setid(long id) {         this.id = id;     }      @notnull     @size(min = 3, max = 50)     public string gettitle() {         return title;     }      public void settitle(string title) {         this.title = title;     }      @override     public string tostring() {         return "game@" + hashcode() +             "[id = " + id + "; title = " + title + "]";     } } 

arquillian.xml

<?xml version="1.0" encoding="utf-8" standalone="yes"?> <arquillian xmlns="http://jboss.org/schema/arquillian"             xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"             xsi:schemalocation="http://jboss.org/schema/arquillian http://jboss.org/schema/arquillian/arquillian_1_0.xsd">    <container qualifier="tomee-embedded" default="true">     <configuration>       <property name="httpport">-1</property>       <property name="stopport">-1</property>       <property name="dir">target/tomee-embedded</property>       <property name="appworkingdir">target/arquillian-embedded-working-dir</property>       <property name="portrange">20001-30000</property>      </configuration>   </container>   </arquillian> 

and empty beans.xml.


Comments

Popular posts from this blog

Change php variable from jquery value using ajax (same page) -

Pull out data related to my apps from Android Play Store and iOS App Store -

How can I fetch data from a web server in an android application? -