isis-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dan Haywood <...@haywood-associates.co.uk>
Subject Re: Integration of Apache Isis and Ignite
Date Thu, 09 Nov 2017 08:32:49 GMT
Hi Nikhil,

I finally got the chance to look into your example app, thanks again, and
to learn a tiny bit about Apache Ignite.

In your email you talk about using Ignite as an L2 cache, and I see that
Ignite has an integration with Hibernate's L2 cache SPIs.

However, in your example app you seem to be trying to attach to Ignite as a
persistent datastore: from what I can see you've basically just changed the
JDBC connection properties in isis.properties.

If you wanted an L2 cache, then I think that would require instead
implementing DataNucleus' similar L2 cache SPI, [1]

FWIW, I did manage to adapt your example app to bootstrap an Ignite node in
an Spring container.  Haven't tried updating the JDBC URLs to use it, but
looks promising.    I've pushed to [2] so you can take a look.

HTH
Dan

[1] http://www.datanucleus.org/products/accessplatform_4_1/jdo/cache.html
[2] https://github.com/danhaywood/ISIS-1760-example-app



On Wed, 25 Oct 2017 at 23:50 Dan Haywood <dan@haywood-associates.co.uk>
wrote:

> Hi Nikhil,
>
> I'm afraid I haven't had time to look into this, but I do appreciate you
> taking the time to create a repo.
>
> I've raised a ticket [1] to track the requirement, if you have any further
> info then please add to it.
>
> Thanks
> Dan
>
> [1]  https://issues.apache.org/jira/browse/ISIS-1760
>
> On Wed, 27 Sep 2017 at 05:32 Nikhil Dhamapurkar <
> nikhil.dhamapurkar@healthengine.com.au> wrote:
>
>> Hi Dan,
>>
>> Were you able to get some time to look at the integration Issue. I have
>> uploaded a sample code [1] which throws the exception.
>> I believe its when Ignite-core artefact is added in the pom then the
>> exception start generating.
>>
>> If you have some pointers that I can try I’ll be happy to give them a try.
>>
>> [1] https://bitbucket.org/dhamapurkar/isisignitesample
>>
>> Regards
>> Nikhil
>>
>> From: Nikhil Dhamapurkar
>> Sent: 11 September 2017 16:04
>> To: users@isis.apache.org
>> Subject: RE: Integration of Apache Isis and Ignite
>>
>> Hi Dan,
>>
>> I have taken the Apache ISIS Simple Archetype and based on the Pet Clinic
>> example which deals with one to many relationship created my Sample app.
>>
>> I have shared my application git repo below[1], if you can please find
>> some time and give me some pointers it  will be very helpful.
>>
>> This sample works well with Postgres, but when I replace Ignite
>> dependencies and L2 cache information I am not able to get it working.
>>
>> [1] https://bitbucket.org/dhamapurkar/isisignitesample
>>
>> Regards
>> Nikhil
>>
>> From: Dan Haywood
>> Sent: 11 September 2017 12:19
>> To: users@isis.apache.org
>> Subject: Re: Integration of Apache Isis and Ignite
>>
>> Hi Nikhil,
>>
>> You add dependencies to the webapp module in the usual way, to the
>> <dependencies> tag.
>>
>> But the Jetty mavenmixin isn't mandatory, - it's just a way to remove some
>> boilerplate. You can always just inline that mavenmixin pom's content into
>> your webapp's and then tinker away.
>>
>> If you want to upload a sample app to github then that would help us get
>> you going.
>>
>> Cheers,
>> Dan
>>
>> On Sun, 10 Sep 2017, 19:16 Nikhil Dhamapurkar <
>> nikhil.dhamapurkar@healthengine.com.au> wrote:
>>
>> > Hi Martin,
>> >
>> > I have been trying to make ignite and apache ISIS work but I have not
>> been
>> > able to.
>> >
>> > I agree, that the issue seems to be Ignite using java.util.logging, as
>> you
>> > suggested I searched Ignite on how to add slf4j for logging and as per
>> the
>> > Ignite doc all one needs to do is add the ignite-log4j artefact in the
>> > classpath to enable log4j I have also added ignite-slf4j artefact in the
>> > classpath but I still get the error.
>> >
>> > I have a feeling that even if I see the dependencies correctly present
>> in
>> > eclipse they are not getting added or available to war.
>> >
>> > Is there a way to pass additional jars in the classpath to jetty mixin
>> in
>> > Apache  ISIS ?
>> >
>> >
>> > Regards
>> > Nikhil
>> >
>> > From: Martin Grigorov
>> > Sent: 06 September 2017 18:57
>> > To: users
>> > Subject: Re: Integration of Apache Isis and Ignite
>> >
>> > Hi,
>> >
>> >
>> > On Wed, Sep 6, 2017 at 4:13 PM, Nikhil Dhamapurkar <
>> > nikhil.dhamapurkar@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.<init>(JavaLogger.
>> > > java:170)
>> > >         at org.apache.ignite.logger.java.JavaLogger.<init>(JavaLogger.
>> > > java:126)
>> > >         at org.apache.ignite.IgniteJdbcDriver.<clinit>(
>> > > 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.<init>(
>> > > RDBMSStoreManager.java:398)
>> > >         at sun.reflect.NativeConstructorAccessorImpl.newInstanc
>> > >
>> > > Any pointers will be greatly appreciated.
>> > >
>> > > Regards
>> > > Nikhil
>> > >
>> > >
>> >
>> >
>>
>>
>>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message