Hi, Just got back to this and found that there is an initialization error
but that the exception is being reported by JUnit only, not in the log file.
IsisSystem.init() has logging but it will only trap and log a
IsisSystemException. In my case I have unenhanced persistent classes so a
java.lang.IllegalStateException results thrown, but it doesn't get logged.
This is a Isis metamodel validation exception I assume.
java.lang.IllegalStateException: Non-enhanced @PersistenceCapable classes
found, will abort. The classes in error are:
...
Did the DataNucleus enhancer run correctly?
Maybe the relevant code should be:
} catch (final IsisSystemException ex) {
LOG.error("failed to initialise", ex);
throw new RuntimeException(ex);
} catch (final Exception e) {
LOG.debug("initialisation error", e);
throw e;
}
I'll create a JIRA issue if this is worthwhile.
On Thu, Jan 14, 2016 at 11:48 AM, Stephen Cameron <
[email protected]> wrote:
> Hi,
>
> I want to run some integtests against a local MYSQL database. I cannot get
> the Isis system configured correctly, or so it appears.
>
> I am following the documentation reasonably well, but the tests I have
> defined don't execute, so I am assuming that something is going astray in
> setting up the Isis system intially.
>
> I have the following in my initialisation:
>
>
> public class DomainAppSystemInitializer {
>
> public static void initIsft() {
> IsisSystemForTest isft = IsisSystemForTest.getElseNull();
>
> IsisConfigurationForJdoIntegTests config = new
> IsisConfigurationForJdoIntegTests();
>
> config.put("isis.persistor.datanucleus.install-fixtures","false");
>
> config.put("isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionDriverName",
> "com.mysql.jdbc.Driver");
>
> config.put("isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionURL",
>
> "jdbc:mysql://localhost:3306/chats?zeroDateTimeBehavior=convertToNull");
>
> config.put("isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionUserName",
> "chats");
>
> config.put("isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionPassword",
> "password");
>
> if (isft == null) {
> isft = new
> IsisSystemForTest.Builder().withLoggingAt(org.apache.log4j.Level.DEBUG)
> .with(new DomainAppAppManifest()).with(config).build()
> .setUpSystem();
> IsisSystemForTest.set(isft);
> }
> }
>
> In terms of console output I see very little
>
>
> 11:38:16,632 [IsisConfigurationDefault main INFO ] adding
> isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionURL=jdbc:hsqldb:mem:test
> 11:38:16,633 [IsisConfigurationDefault main INFO ] adding
> isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionDriverName=org.hsqldb.jdbcDriver
> 11:38:16,633 [IsisConfigurationDefault main INFO ] adding
> isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionUserName=sa
> 11:38:16,633 [IsisConfigurationDefault main INFO ] adding
> isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionPassword=
> 11:38:16,633 [IsisConfigurationDefault main INFO ] adding
> isis.persistor.datanucleus.impl.datanucleus.schema.autoCreateAll=true
> 11:38:16,633 [IsisConfigurationDefault main INFO ] adding
> isis.persistor.datanucleus.impl.datanucleus.schema.validateAll=false
> 11:38:16,633 [IsisConfigurationDefault main INFO ] adding
> isis.persistor.datanucleus.impl.datanucleus.persistenceByReachabilityAtCommit=false
> 11:38:16,633 [IsisConfigurationDefault main INFO ] adding
> isis.persistor.datanucleus.impl.datanucleus.identifier.case=MixedCase
> 11:38:16,633 [IsisConfigurationDefault main INFO ] adding
> isis.persistor.datanucleus.impl.datanucleus.cache.level2.type=none
> 11:38:16,634 [IsisConfigurationDefault main INFO ] adding
> isis.persistor.datanucleus.impl.datanucleus.cache.level2.mode=ENABLE_SELECTIVE
> 11:38:16,634 [IsisConfigurationDefault main INFO ] adding
> isis.persistor.datanucleus.install-fixtures=true
> 11:38:16,634 [IsisConfigurationDefault main INFO ] adding
> isis.persistor.enforceSafeSemantics=false
> 11:38:16,634 [IsisConfigurationDefault main INFO ] adding
> isis.deploymentType=server_prototype
> 11:38:16,634 [IsisConfigurationDefault main INFO ] adding
> isis.services.eventbus.allowLateRegistration=true
> 11:38:16,635 [IsisConfigurationDefault main INFO ] overwriting
> isis.persistor.datanucleus.install-fixtures=false (previous value was true)
> 11:38:16,635 [IsisConfigurationDefault main INFO ] overwriting
> isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionDriverName=com.mysql.jdbc.Driver
> (previous value was org.hsqldb.jdbcDriver)
> 11:38:16,635 [IsisConfigurationDefault main INFO ] overwriting
> isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionURL=jdbc:mysql://localhost:3306/chats?zeroDateTimeBehavior=convertToNull
> (previous value was jdbc:hsqldb:mem:test)
> 11:38:16,635 [IsisConfigurationDefault main INFO ] overwriting
> isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionUserName=chats
> (previous value was sa)
> 11:38:16,635 [IsisConfigurationDefault main INFO ] overwriting
> isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionPassword=password
> (previous value was )
> 11:38:24,573 [IsisConfigurationDefault main INFO ] adding
> isis.appManifest=domainapp.app.DomainAppAppManifest
> 11:38:25,051 [Reflections main INFO ] Reflections took
> 388 ms to scan 11 urls, producing 302 keys and 1708 values
> 11:38:25,255 [IsisConfigurationDefault main INFO ] adding
> isis.services.ServicesInstallerFromAnnotation.packagePrefix=au.com.scds.chats.dom,au.com.scds.chats.fixture,domainapp.app,org.isisaddons.module.security,org.isisaddons.wicket.gmap3.cpt.service,org.incode.module.note.dom
> 11:38:25,255 [IsisConfigurationDefault main INFO ] adding
> isis.persistor.datanucleus.RegisterEntities.packagePrefix=au.com.scds.chats.dom,au.com.scds.chats.fixture,domainapp.app,org.isisaddons.module.security,org.isisaddons.wicket.gmap3.cpt.service,org.incode.module.note.dom
> 11:38:25,258 [IsisConfigurationDefault main INFO ] adding
> isis.services=org.isisaddons.module.security.dom.password.PasswordEncryptionServiceUsingJBcrypt,org.isisaddons.module.security.dom.permission.PermissionsEvaluationServiceAllowBeatsVeto
> 11:38:25,267 [IsisConfigurationDefault main INFO ] adding
> isis.reflector.facets.include=org.isisaddons.module.security.facets.TenantedAuthorizationFacetFactory
> 11:38:25,280 [ServicesInstallerFromConfigurationAndAnnotation main
> INFO ] installing
> org.apache.isis.core.runtime.services.ServicesInstallerFromConfigurationAndAnnotation
> 11:38:25,493 [IsisConfigurationDefault main INFO ] adding
> isis.fixtures=
> 11:38:25,609 [IsisSystem main INFO ] initialising Isis
> System
> 11:38:25,610 [IsisSystem main INFO ] working directory:
> D:\temp\isis-chats\integtests\.
> 11:38:25,610 [IsisSystem main INFO ] resource stream
> source: null
> 11:38:32,464 [PersistenceSessionFactory main INFO ] did *not* find
> config properties to use JNDI datasource; will use JDBC
> 11:38:32,475 [IsisSystem Thread-0 INFO ] shutting down system
> 11:38:32,477 [IsisContext Thread-0 INFO ] closing all
> instances
> 11:38:32,477 [ObjectReflectorDefault Thread-0 INFO ] shutting down
> org.apache.isis.core.metamodel.specloader.ObjectReflectorDefault@407b6263
>
>
> If I set the default logging level to DEBUG in logging.properties, I get
> allot of info related to system initialisation, but nothing more is seen
> related to database connection failing or being attempted.
>
> I've tried to debug this but so far have not produced any more
> information. I might have to go to 1.12.0-SNAPSHOT to get much further with
> that approach.
>
> Hoping there is something obvious that i cannot see.
>
> Thanks
>
>