Re: Unexpected behaviour for ReferencePanel

2017-09-06 Thread Dan Haywood
Hi Erik,

just encountered this issue with our app as well, in 1.15.0.

As you say, if the choices list returns a set that does not include the
value of the field, then the first choice is taken.  I think that the
correct behaviour is that the value of the field should be shown; the
choices only comes into play if the user attempts to change the value.

I guess until I sort this out the partial workaround is to programmatically
ensure that the choices DOES include the current value.

I've raised ISIS-1711 [1] for this

As it happens, in 1.15.0 we also upgraded to Wicket 7.8.0, and Wicket are
in the process of releasing a Wicket 7.8.1 patch for a serious issue.  So
I'll push this fix out (when I've done it) in an Isis 1.15.1 release.

Thx
Dan

[1] https://issues.apache.org/jira/browse/ISIS-1711




On Tue, 5 Sep 2017 at 10:32 Erik de Hair  wrote:

> Hi,
>
> We have a strange case for a subscription's property referencing a
> Contact (Apache Isis 1.14.x).
>
> The database tells me it has a reference to Contact with id 1, but
> Contact with id 5 is displayed in the Wicket viewer. So when I ask the
> subscription for it's contact programmatically it will return Contact 1
> but the Wicket viewer displays number 5. In this case an email was sent
> to the contact as referenced in the database, while a user expected an
> email to be sent to the other Contact.
>
> This happens when Contact number 1 is not present in the choices for
> editing the Contact property (probably because of changed business rules
> or another system updating the same database). Before [1] the entityLink
> has a reference to the right Contact but after [1] it is overwritten by
> the first item of the choices.
>
> It probably  depends on the use case what the behaviour should be, but
> in this case I expected Contact number 1. The question is: should the
> current selected item always be in the list of choices or should it be
> ignored if it doesn't comply with the business rules? The last case can
> give unexpected behaviour for people clicking the popup away using OK,
> without noticing the selected item was different from the item that was
> actually set. What happens in this case with inline editing?
>
> Erik
>
> [1]
>
> https://github.com/apache/isis/blob/rel/isis-1.14.0/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java#L128
>


Re: Integration of Apache Isis and Ignite

2017-09-06 Thread Martin Grigorov
Hi,


On Wed, Sep 6, 2017 at 4:13 PM, Nikhil Dhamapurkar <
nikhil.dhamapur...@healthengine.com.au> wrote:

> Hi ,
>
> I am trying to integrate  apache Ignite as the L2 Cache for apache isis. I
> have added Apache ignite JDBC connection to the persistor.properties in
> isis.
>
> When I am trying to compile my webapp I am getting ignite logger
> exception, along with exception that says validate datasource connection
> details of ignite and username and password which I have given in
> persistor.properties
>
> Can ISIS be integrated with Ignite as the L2 Cache with a persistent
> database under Ignite, I can not able to find much documentation which
> talks about ignite configuration with isis ?
>

Better search for Ignite + Datanucleus.


>
> While compiling the simple module to work with Ignite I get logger error
> form Ignite I am not sure if I should consult Ignite or Isis experts. I am
> getting the stack trace in [1] I have gone through forum for ignite and
> added ignite-log4j and ignite-core still I get ClassNotFound somehow the
> webapp is not able to find the jar in runtime.
>
> While the later exception is [2]
>
> The properties that I have listed in persistor.properties file are
>
> isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionDriverName=org.
> apache.ignite.IgniteJdbcThinDriver
> isis.persistor.datanucleus.impl.javax.jdo.option.
> ConnectionURL=jdbc:ignite:thin://localhost:10800
> isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionUserName=
> isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionPassword=
>
>
> [ 1]
> 5:53:35,153  [PersistenceSessionFactory main   INFO ]  did *not* find
> config properties to use JNDI datasource; will use JDBC
> Can't load log handler "org.apache.ignite.logger.
> java.JavaLoggerFileHandler"
> java.lang.ClassNotFoundException: org.apache.ignite.logger.java.
> JavaLoggerFileHandler
> java.lang.ClassNotFoundException: org.apache.ignite.logger.java.
> JavaLoggerFileHandler
>

This class is in ignite-core. And I have the feeling it uses
java.util.logging.
Better check how to tell Ignite to log via SLF4J.


> at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
> at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
> at java.util.logging.LogManager$5.run(LogManager.java:965)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.util.logging.LogManager.loadLoggerHandlers(LogManager.
> java:958)
> at java.util.logging.LogManager.initializeGlobalHandlers(
> LogManager.java:1578)
> at java.util.logging.LogManager.access$1500(LogManager.java:145)
> at java.util.logging.LogManager$RootLogger.accessCheckedHandlers(
> LogManager.java:1667)
> at java.util.logging.Logger.getHandlers(Logger.java:1777)
> at org.apache.ignite.logger.java.JavaLogger.findHandler(
> JavaLogger.java:399)
> at org.apache.ignite.logger.java.JavaLogger.configure(
> JavaLogger.java:229)
> at org.apache.ignite.logger.java.JavaLogger.(JavaLogger.
> java:170)
> at org.apache.ignite.logger.java.JavaLogger.(JavaLogger.
> java:126)
> at org.apache.ignite.IgniteJdbcDriver.(
> IgniteJdbcDriver.java:369)
> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
> Method)
> at sun.reflect.NativeConstructorAccessorImpl.newInstance(
> NativeConstructorAccessorImpl.java:62)
> at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(
> DelegatingConstructorAccessorImpl.java:45)
> at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
> at java.lang.Class.newInstance(Class.java:442)
>
> [2]
> Error in custom provider, javax.jdo.JDOFatalUserException: Failed
> initialising database. Please check that your database JDBC driver is
> accessible, and the database URL a
> nd username/password are correct. Exception : null
> java.lang.NullPointerException
> at org.datanucleus.store.rdbms.ConnectionFactoryImpl$
> ManagedConnectionImpl.release(ConnectionFactoryImpl.java:320)
> at org.datanucleus.store.rdbms.RDBMSStoreManager.(
> RDBMSStoreManager.java:398)
> at sun.reflect.NativeConstructorAccessorImpl.newInstanc
>
> Any pointers will be greatly appreciated.
>
> Regards
> Nikhil
>
>


Integration of Apache Isis and Ignite

2017-09-06 Thread Nikhil Dhamapurkar
Hi ,

I am trying to integrate  apache Ignite as the L2 Cache for apache isis. I have 
added Apache ignite JDBC connection to the persistor.properties in isis.

When I am trying to compile my webapp I am getting ignite logger exception, 
along with exception that says validate datasource connection details of ignite 
and username and password which I have given in persistor.properties

Can ISIS be integrated with Ignite as the L2 Cache with a persistent database 
under Ignite, I can not able to find much documentation which talks about 
ignite configuration with isis ?

While compiling the simple module to work with Ignite I get logger error form 
Ignite I am not sure if I should consult Ignite or Isis experts. I am getting 
the stack trace in [1] I have gone through forum for ignite and added 
ignite-log4j and ignite-core still I get ClassNotFound somehow the webapp is 
not able to find the jar in runtime.

While the later exception is [2]

The properties that I have listed in persistor.properties file are  

isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionDriverName=org.apache.ignite.IgniteJdbcThinDriver
isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionURL=jdbc:ignite:thin://localhost:10800
isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionUserName=
isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionPassword=


[ 1]
5:53:35,153  [PersistenceSessionFactory main   INFO ]  did *not* find 
config properties to use JNDI datasource; will use JDBC
Can't load log handler "org.apache.ignite.logger.java.JavaLoggerFileHandler"
java.lang.ClassNotFoundException: 
org.apache.ignite.logger.java.JavaLoggerFileHandler
java.lang.ClassNotFoundException: 
org.apache.ignite.logger.java.JavaLoggerFileHandler
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.util.logging.LogManager$5.run(LogManager.java:965)
at java.security.AccessController.doPrivileged(Native Method)
at java.util.logging.LogManager.loadLoggerHandlers(LogManager.java:958)
at 
java.util.logging.LogManager.initializeGlobalHandlers(LogManager.java:1578)
at java.util.logging.LogManager.access$1500(LogManager.java:145)
at 
java.util.logging.LogManager$RootLogger.accessCheckedHandlers(LogManager.java:1667)
at java.util.logging.Logger.getHandlers(Logger.java:1777)
at 
org.apache.ignite.logger.java.JavaLogger.findHandler(JavaLogger.java:399)
at 
org.apache.ignite.logger.java.JavaLogger.configure(JavaLogger.java:229)
at org.apache.ignite.logger.java.JavaLogger.(JavaLogger.java:170)
at org.apache.ignite.logger.java.JavaLogger.(JavaLogger.java:126)
at 
org.apache.ignite.IgniteJdbcDriver.(IgniteJdbcDriver.java:369)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at 
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at 
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at java.lang.Class.newInstance(Class.java:442)

[2]
Error in custom provider, javax.jdo.JDOFatalUserException: Failed initialising 
database. Please check that your database JDBC driver is accessible, and the 
database URL a
nd username/password are correct. Exception : null
java.lang.NullPointerException
at 
org.datanucleus.store.rdbms.ConnectionFactoryImpl$ManagedConnectionImpl.release(ConnectionFactoryImpl.java:320)
at 
org.datanucleus.store.rdbms.RDBMSStoreManager.(RDBMSStoreManager.java:398)
at sun.reflect.NativeConstructorAccessorImpl.newInstanc

Any pointers will be greatly appreciated.

Regards
Nikhil