Re: Unexpected behaviour for ReferencePanel
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 Hairwrote: > 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
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
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