Hi, I ran into another problem with Integtests that took a long time to sort out, specifically that I had been creating db column names without the _oid suffix via the webapp, using the jpa naming mode, but I didn't have that setting in the integtests config, so it was creating new column in the db schema without me realising.
I was getting an error saying "field XXXX has no default value" when I was explicitly setting that specific property, but DN was setting the value of XXXX_oid column rather than XXXX as I was assuming. It seems sensible to me to be able read in the same set of configuration files for integtests as is in the webapp WEB-INF folder, as your standard, and then to override individual properties afterwards. On Tue, Jan 19, 2016 at 12:23 PM, Stephen Cameron < steve.cameron...@gmail.com> wrote: > 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 < > steve.cameron...@gmail.com> 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 >> >> >