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
>>
>>
>

Reply via email to