Community
Participate
Working Groups
EclipseLink supports a RemoteSession feature through the native API, but does not support this feature through the JPA API. Remote JPA would allow a remote Java client (such as a fat client, or possibly mobile client) connect to a Java server through a communication mechanism such as RMI. The client would be able to use the full JPA API, including having access to LAZY relationships and transactional API. The Java server would process all of the database interaction. This makes the implementation of Java fat clients simpler, avoid the requirement of a data transfer layer, and having to merge objects and content with serialization issues.
Created attachment 221478 [details] some minor updates to make JPA usage compatible with remote session
Git main push: Bug#390352 - Remote JPA https://bugs.eclipse.org/bugs/show_bug.cgi?id=390352 Some minor changes to make JPA artifacts compatible with RemoteSession. Changes: - Corrected some PersistenceUnitProperties comments - Added remoteInitialize to CMPPolicy - Fixed FetchGroupManager to be serializable, marked entityFetchGroups as transient - Made Call query references transient - Made BindCallCustomParameter serializable - Fixed cache descriptor reference to be transient - Fixed JoinedAttributeManager mapping references to be transient - Moved JPAQueryBuilder up to AbstractSession - Fixed UnitOfWork merge manager references to be transient - Made fieldaccess test model classes serializable - Added performance tests for concurrent load groups and thread cursors - Fixed CMP3Policy to have transient method references - Changed EntityManager to reference AbstractSession - Added some null checks in class loader usage - Add ASM support to use reflection for JDK classes when ASM fails
Created attachment 222984 [details] initial remote jpa support
Git push master: Bug#390352 - Remote JPA https://bugs.eclipse.org/bugs/show_bug.cgi?id=390352 Adds initial support for Remote JPA. Changes: - Removed security manager from RMI tests, does not seem to be required any more - Added authentication test to Mongo NoSQL tests - Added remote JPA persistence unit properties - Declared NoSQL user/password persistence unit properties - Added user/password support for Mongo NoSQL - Change fixedObjectReferences to take DistributedSession - Made ObjectChangeListener serializable - Fixed performance monitor CacheSize info - Fixed instantiation of double serialized remote value holders - Deprecated old deleteAllObject signature taking Vector - Fixed remote merge to disable change events processing - Change change set to serialize field required for commit - Fixed up change sets after remote serialization - Change JPA OptimisticLockException to be thrown from JPA code, not core code - Fixed RepeatbleWriteUnitOfWork to keep track of merged objects correctly - Added getDescriptorForAlias to RemoteConnection/controllers - Added support for flush and serialization of change sets to RemoteUnitOfWork - Added performance monitoring of remote operations - Fixed isModifyAllQuery - Fixed remote session cache misses - Added exception handler to JTA controllers to throw JPA exceptions - Added support for local/remote meta-data to remote session - Added acquireRepeatableWriteUnitOfWork() API to Session - Added RMIServerSessionManager to spawn ClientSessions for Remote - Added remote JPA tests - Deprecated unused TransactionManagerImpl and TransactionImpl
Created attachment 224239 [details] adds remote server config, some batch fixes
Created attachment 225185 [details] adds custom serializer support for remote + some fixes
Git push main: Bug#390352 - remote serializers https://bugs.eclipse.org/bugs/show_bug.cgi?id=390352 Adds generic Serializer concept for Remote JPA and other usages. Java, XML, JSON, Kryo implementations. Changes: - Added some default constructors for Kryo serialization - Added default serializer to AbstractSession - Added backref to session from RemoteConnection - Added connected concept to RemoteConnection - Added prepare/expand callbacks to remote Transporters - Added Serializer interface, Java, XML, JSON, Kryo subclasses
support added in 2.5
The Eclipselink project has moved to Github: https://github.com/eclipse-ee4j/eclipselink