Hi,

i'am facing a very odd problem. Maybe someone can help me.

I wrote this simple test class, just to verify if guice is working
(inspired by http://fabiostrozzi.eu/2011/03/27/junit-tests-easy-guice/)

@RunWith(GuiceJUnitRunner.class)
@GuiceModules({PersistenceModule.class })
public class CsvPersistTest  {


       IService service;

       @Inject
       public void setService(IService service){
               this.service = service;
       }

       @Test
       public void testCsvPersist() {
               service.persistCsvDataFrom("src/main/resources/some.csv");
               assertTrue(true);
       }


}


The module and an eager Singleton which starts the persistence service


public class PersistenceModule extends AbstractModule {

       @Override
       protected void configure() {

               JpaPersistModule persistModule = new JpaPersistModule("jpaUnit");
               install(persistModule);


               bind(JPAInitializer.class).asEagerSingleton();

               bind(IService.class).to(ServiceImpl.class);

       }

}

@Singleton
public class JPAInitializer {

       @Inject
       public JPAInitializer(final PersistService service) {
               service.start();
       }
}


In Eclipse the unit-test works fine!
Guice installs the PersitenceModule and injects the service like it should.


But when i am running this test with maven-surefire i always get this
exception message:

-------------------------------------------------------------------------------
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.387
sec <<< FAILURE!
initializationError(raw.shit.ioa.test.data.CsvPersistTest)  Time
elapsed: 0.009 sec  <<< ERROR!
com.google.inject.CreationException: Guice creation errors:

1) Error injecting constructor, java.lang.NullPointerException
 at raw.shit.ioa.data.init.JPAInitializer.<init>(JPAInitializer.java:12)
 at 
raw.shit.ioa.data.init.PersistenceModule.configure(PersistenceModule.java:20)
 while locating raw.shit.ioa.data.init.JPAInitializer

1 error
       at 
com.google.inject.internal.Errors.throwCreationExceptionIfErrorsExist(Errors.java:435)
       at 
com.google.inject.internal.InternalInjectorCreator.injectDynamically(InternalInjectorCreator.java:183)
       at 
com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:109)
       at com.google.inject.Guice.createInjector(Guice.java:95)
       at com.google.inject.Guice.createInjector(Guice.java:83)
       at 
raw.shit.ioa.test.data.GuiceJUnitRunner.createInjectorFor(GuiceJUnitRunner.java:51)
       at 
raw.shit.ioa.test.data.GuiceJUnitRunner.<init>(GuiceJUnitRunner.java:37)
       at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
       at 
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
       at 
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
       at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
       at 
org.junit.internal.builders.AnnotatedBuilder.buildRunner(AnnotatedBuilder.java:31)
       at 
org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:24)
       at 
org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:57)
       at 
org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:29)
       at 
org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:57)
       at 
org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:24)
       at 
org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:51)
       at 
org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:115)
       at 
org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:102)
       at org.apache.maven.surefire.Surefire.run(Surefire.java:180)
       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
       at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
       at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
       at java.lang.reflect.Method.invoke(Method.java:597)
       at 
org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:350)
       at 
org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:1021)
Caused by: java.lang.NullPointerException
       at 
javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:121)
       at 
javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:73)
       at 
com.google.inject.persist.jpa.JpaPersistService.start(JpaPersistService.java:94)
       at raw.shit.ioa.data.init.JPAInitializer.<init>(JPAInitializer.java:13)
       at 
raw.shit.ioa.data.init.JPAInitializer$$FastClassByGuice$$72926fbc.newInstance(<generated>)
       at 
com.google.inject.internal.cglib.reflect.$FastConstructor.newInstance(FastConstructor.java:40)
       at 
com.google.inject.internal.DefaultConstructionProxyFactory$1.newInstance(DefaultConstructionProxyFactory.java:60)
       at 
com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:85)
       at 
com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:254)
       at 
com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
       at 
com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1031)
       at 
com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
       at com.google.inject.Scopes$1$1.get(Scopes.java:65)
       at 
com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40)
       at 
com.google.inject.internal.InternalInjectorCreator$1.call(InternalInjectorCreator.java:204)
       at 
com.google.inject.internal.InternalInjectorCreator$1.call(InternalInjectorCreator.java:198)
       at 
com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1024)
       at 
com.google.inject.internal.InternalInjectorCreator.loadEagerSingletons(InternalInjectorCreator.java:198)
       at 
com.google.inject.internal.InternalInjectorCreator.injectDynamically(InternalInjectorCreator.java:179)
       ... 25 more


First i checked the classpath, but it seems fine
[DEBUG] Test Classpath :
[DEBUG]   
/home/stefan/workspace/IncomeOutcomeAnalyzer/ioa-data/target/test-classes
[DEBUG]   /home/stefan/workspace/IncomeOutcomeAnalyzer/ioa-data/target/classes
[DEBUG]   
/home/stefan/.m2/repository/org/ow2/spec/ee/ow2-jpa-2.0-spec/1.0.9/ow2-jpa-2.0-spec-1.0.9.jar
[DEBUG]   
/home/stefan/.m2/repository/org/hibernate/hibernate-core/4.0.0.CR3/hibernate-core-4.0.0.CR3.jar
[DEBUG]   /home/stefan/.m2/repository/antlr/antlr/2.7.7/antlr-2.7.7.jar
[DEBUG]   
/home/stefan/.m2/repository/org/jboss/logging/jboss-logging/3.0.0.GA/jboss-logging-3.0.0.GA.jar
[DEBUG]   
/home/stefan/.m2/repository/org/hibernate/common/hibernate-commons-annotations/4.0.0.CR2/hibernate-commons-annotations-4.0.0.CR2.jar
[DEBUG]   /home/stefan/.m2/repository/dom4j/dom4j/1.6.1/dom4j-1.6.1.jar
[DEBUG]   
/home/stefan/.m2/repository/xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.jar
[DEBUG]   
/home/stefan/.m2/repository/commons-collections/commons-collections/3.1/commons-collections-3.1.jar
[DEBUG]   
/home/stefan/.m2/repository/org/hibernate/javax/persistence/hibernate-jpa-2.0-api/1.0.1.Final/hibernate-jpa-2.0-api-1.0.1.Final.jar
[DEBUG]   
/home/stefan/.m2/repository/com/fasterxml/classmate/0.5.4/classmate-0.5.4.jar
[DEBUG]   
/home/stefan/.m2/repository/org/jboss/jandex/1.0.3.Final/jandex-1.0.3.Final.jar
[DEBUG]   
/home/stefan/.m2/repository/javassist/javassist/3.12.0.GA/javassist-3.12.0.GA.jar
[DEBUG]   /home/stefan/.m2/repository/javax/transaction/jta/1.1/jta-1.1.jar
[DEBUG]   
/home/stefan/.m2/repository/org/hibernate/hibernate-entitymanager/4.0.0.CR3/hibernate-entitymanager-4.0.0.CR3.jar
[DEBUG]   
/home/stefan/.m2/repository/org/slf4j/slf4j-log4j12/1.4.2/slf4j-log4j12-1.4.2.jar
[DEBUG]   
/home/stefan/.m2/repository/org/slf4j/slf4j-api/1.4.2/slf4j-api-1.4.2.jar
[DEBUG]   /home/stefan/.m2/repository/log4j/log4j/1.2.13/log4j-1.2.13.jar
[DEBUG]   /home/stefan/.m2/repository/com/google/inject/guice/3.0/guice-3.0.jar
[DEBUG]   
/home/stefan/.m2/repository/javax/inject/javax.inject/1/javax.inject-1.jar
[DEBUG]   
/home/stefan/.m2/repository/aopalliance/aopalliance/1.0/aopalliance-1.0.jar
[DEBUG]   
/home/stefan/.m2/repository/com/google/inject/extensions/guice-persist/3.0/guice-persist-3.0.jar
[DEBUG]   /home/stefan/.m2/repository/org/hsqldb/hsqldb/2.0.0/hsqldb-2.0.0.jar
[DEBUG]   /home/stefan/.m2/repository/junit/junit/4.9/junit-4.9.jar
[DEBUG]   
/home/stefan/.m2/repository/org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.jar
[DEBUG]   /home/stefan/.m2/repository/org/dbunit/dbunit/2.4.8/dbunit-2.4.8.jar
[DEBUG]   /home/stefan/.m2/repository/atunit/atunit/1.0.1/atunit-1.0.1.jar


versions:
Eclipse 3.5.2
jdk 1.6.0_21
maven 2.2.1


regards,
Stefan

-- 
You received this message because you are subscribed to the Google Groups 
"google-guice" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-guice?hl=en.

Reply via email to