Hi all,
For fun I've been trying to get Cayenne running on Google App Engine (GAE) using the in-memory
HSQLDB database. GAE has quite a number of restrictions such as disallowing creation of new threads.
More importantly GAE isn't backed by a RDBMS and so JDBC isn't supported, however in-memory
databases could work (in theory at least).
Anyway trying to get the app running throws the stackTrace below because Cayenne's EventManager
starts new threads. Is this a deal breaker or are there perhaps a workaround?
kind regards
bob
org.apache.cayenne.conf.Configuration initializeSharedConfiguration: Error creating shared
Configuration:
java.security.AccessControlException: access denied (java.lang.RuntimePermission modifyThreadGroup)
at java.security.AccessControlContext.checkPermission(Unknown Source)
at java.security.AccessController.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPermission(Unknown Source)
at
com.google.apphosting.utils.security.SecurityManagerInstaller$CustomSecurityManager.checkAccess(SecurityManagerInstaller.java:72)
at java.lang.ThreadGroup.checkAccess(Unknown Source)
at java.lang.Thread.init(Unknown Source)
at java.lang.Thread.<init>(Unknown Source)
at org.apache.cayenne.event.EventManager$DispatchThread.<init>(EventManager.java:457)
at org.apache.cayenne.event.EventManager.<init>(EventManager.java:97)
at org.apache.cayenne.event.EventManager.<init>(EventManager.java:76)
at org.apache.cayenne.conf.Configuration.<init>(Configuration.java:193)
at org.apache.cayenne.conf.DefaultConfiguration.<init>(DefaultConfiguration.java:58)
at org.apache.cayenne.conf.DefaultConfiguration.<init>(DefaultConfiguration.java:46)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at java.lang.Class.newInstance0(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at org.apache.cayenne.conf.Configuration.initializeSharedConfiguration(Configuration.java:133)
at org.apache.cayenne.conf.Configuration.initializeSharedConfiguration(Configuration.java:121)
at org.apache.cayenne.conf.Configuration.getSharedConfiguration(Configuration.java:91)
at org.apache.cayenne.access.DataContext.createDataContext(DataContext.java:145)
at org.apache.click.extras.cayenne.CayenneTemplate.getDataContext(CayenneTemplate.java:169)
at org.apache.click.extras.cayenne.CayenneTemplate.performQuery(CayenneTemplate.java:276)
at com.mycorp.service.CustomerService.getCustomers(CustomerService.java:29)
at com.mycorp.page.ViewCustomers.onRender(ViewCustomers.java:76)
at org.apache.click.ClickServlet.performOnRender(ClickServlet.java:666)
at org.apache.click.ClickServlet.processPage(ClickServlet.java:521)
at org.apache.click.ClickServlet.handleRequest(ClickServlet.java:339)
at org.apache.click.ClickServlet.doGet(ClickServlet.java:257)
This archive was generated by hypermail 2.0.0 : Sat Jul 04 2009 - 08:52:52 EDT