SlideShare a Scribd company logo
1 of 50
Download to read offline
PEJ-5303
OpenJPA and EclipseLink
Usage Scenarios Explained
Kevin Sutter, STSM
WebSphere Java EE and JPA Architect
Twitter: @kwsutter
LinkedIn: https://www.linkedin.com/in/kevinwsutter
Cindy High, Senior Software Engineer
WebSphere Migration Toolkit
Twitter: @CTHigh
LinkedIn: http://www.linkedin.com/in/cindyhigh
Please Note:
2
•  IBM’s statements regarding its plans, directions, and intent are subject to change or withdrawal without notice at IBM’s sole
discretion.
•  Information regarding potential future products is intended to outline our general product direction and it should not be relied on in
making a purchasing decision.
•  The information mentioned regarding potential future products is not a commitment, promise, or legal obligation to deliver any
material, code or functionality. Information about potential future products may not be incorporated into any contract.
•  The development, release, and timing of any future features or functionality described for our products remains at our sole discretion.
•  Performance is based on measurements and projections using standard IBM benchmarks in a controlled environment. The actual
throughput or performance that any user will experience will vary depending upon many factors, including considerations such as the
amount of multiprogramming in the user’s job stream, the I/O configuration, the storage configuration, and the workload processed.
Therefore, no assurance can be given that an individual user will achieve results similar to those stated here.
Agenda
•  OpenJPA and EclipseLink
•  JPA version comparisons
•  OpenJPA to EclipseLink Migration
•  High level concepts
•  OpenJPA to EclipseLink Investigation
•  Specific differences
•  Migration Toolkit
•  Summary
•  Q & A
3
OpenJPA and
EclipseLink
OpenJPA and EclipseLink
•  Apache OpenJPA
•  Basis for WebSphere’s JPA solution for JPA 1.0 and JPA
2.0
•  EclipseLink
•  JPA Reference Implementation – “gospel”
•  Basis for WebSphere Liberty’s JPA solution for JPA 2.1
•  Moving forward…
•  OpenJPA will continue to be supported in WebSphere for
many, many years
•  At least until JPA 2.0 is deprecated…
•  Both WebSphere traditional and Liberty
5
Multiple JPA Providers
•  Do I have to switch providers?
•  Absolutely not!
•  If you are happy with the current OpenJPA offering, there is
no need to move to EclipseLink
•  If you want to use the JPA 2.1 features, you may need to
change…
•  Many of the JPA 2.1 features have corresponding OpenJPA
proprietary solutions
•  Apache OpenJPA (ie. JPA 2.0) is compatible with other Java EE 7
features
•  Allows for an easier, more gradual JPA migration
6
Key JPA 2.1 Features available in OpenJPA
•  Schema Generation (JPA 2.1 Spec, Section 9.4)
•  Generates DDL or interacts directly with database to define table schemas
based on JPA Entity definitions
•  Similar functionality provided by OpenJPA’s schema mapper
•  Entity Graphs (JPA 2.1 Spec, Section 3.7)
•  Allows for specified fetching or processing of a graph of Entity objects
•  Similar functionality provided by OpenJPA’s FetchPlan and FetchGroup
•  Stored Procedure Queries (JPA 2.1 Spec, Section 3.10.17)
•  Ability to invoke database stored procedures
•  Similar functionality provided by OpenJPA’s Query invocation
7
Additional JPA 2.1 Features available in OpenJPA
•  Basic Attribute Type Conversion (JPA 2.1 Spec, Section 3.8)
•  Similar functionality support provided by OpenJPA’s Externalizer feature
•  @Index and @ForeignKey annotations (JPA 2.1 Spec, Sections 11.1.19 and 11.1.23)
•  Similar functionality provided by OpenJPA’s annotations
•  Unwrap utility methods for EntityManager, Cache, etc (JPA 2.1 Spec Sections 3.1.1 and 7.10)
•  Similar functionality provided by OpenJPA’s implementation --
EntityManagerImpl.unwrap() and OpenJPAPersistence.cast()
•  Object construction when mapping results from native SQL (JPA 2.1 Spec, Section 3.10.16.2.2)
•  Similar functionality provided by OpenJPA’s internal ResultShape object
8
Additional JPA 2.1 Features NOT available in OpenJPA
•  Criteria API Updates (JPA 2.1 Spec, Sections 6.5.15 and 6.5.7)
•  Bulk update/delete
•  Support for TREAT, ON, and FUNCTION operators
•  Unsynchronized Persistence Contexts (JPA 2.1 Spec, Section 7.6.1)
•  Provides more control over when Persistence Contexts are synchronized
with a transaction. Useful for mobile applications.
•  EntityListeners and CDI (JPA 2.1 Spec, Section 3.5.1)
•  EntityListeners can now use CDI for injection of objects
•  JPQL Updates for JPA 2.1 (JPA 2.1 Spec, Chapter 4)
•  Several extensions to JPQL in support of the other features
•  OpenJPA’s JPQL will stay at the JPA 2.0 level
9
Feature Comparison Chart
10
Key JPA 2.1 Features Available in current OpenJPA solution?
Schema Generation Yes, SynchronizeMappings
Entity Graphs Yes, FetchPlans and FetchGroups
Stored Procedures Yes, Query interface
Basic Attribute Type Conversion Yes, Externalizer (and Factory)
@Index and @ForeignKey annotations Yes, proprietary @Index and @ForeignKey annotations
Unwrap utility functions Yes, EntityManagerImpl.unwrap() and OpenJPAPersistence.cast()
Object construction when mapping results with native SQL Yes, ResultShape (internal OpenJPA implementation)
Criteria API updates No
Unsynchronized PersistenceContexts No
EntityListeners and CDI No
JPQL Updates in support of JPA 2.1 No
Bottom Line
•  YOU DO NOT NEED TO MIGRATE
•  Our Advice
•  Continue using OpenJPA for your existing applications
•  Use EclipseLink for your new applications
•  But… If you want to use EclipseLink with existing applications,
the following slides will discuss what to look out for when
migrating existing applications
11
OpenJPA to
EclipseLink
Migration
Cache
•  DataCache
•  OpenJPA's L2 cache is disabled out of the box. EclipseLink's L2 cache
is enabled by default.
•  If you are migrating an application that isn't using the OpenJPA cache,
it is highly recommended to disable the EclipseLink cache using:
<shared-cache-mode>NONE</shared-cache-mode>
•  Query (Results) Cache
•  If QueryCache is enabled for OpenJPA, it will cache all Named Queries
and JPQL Statement Results
•  EclipseLink only caches Named Queries Results
•  More information on EclipseLink QueryCache here
13
Weaving/enhancement/transformation
•  OpenJPA: Entities must be enhanced
•  EclipseLink: Entities do not have to be enhanced
•  Documented missing features (lazy loading, performance
gains, etc)
•  WebSphere container automatically weaves/enhances Entities
for both OpenJPA and EclipseLink
•  Applications packaged with entities pre-enhanced by OpenJPA
must be recompiled and repackaged
•  Removes OpenJPA specific enhancement bytecode
14
OpenJPA to
EclipseLink
Investigation
Investigation
•  Goal
•  Find differences in behavior between OpenJPA and EclipseLink
•  OpenJPA → EclipseLink migration issues
•  Data
•  Entities from OpenJPA's testing framework (>700 entities)
•  Process
•  Auto generate databases tables using both providers
•  Use tables created by OpenJPA for verification
•  Database: DB2
•  Results
•  Errors (fix EclipseLink)
•  Table differences
16
Private Accessor Methods
•  JPA 2.1 Spec: property accessor methods must be public or
protected
•  OpenJPA: ignores “private” fields
•  EclipseLink: persists “private” fields
•  Migrating issue: missing database column error
•  Solution: Add @Transient to the method
•  Forces EclipseLink to ignore the field
17
Add @Transient
Getter/Setter accessor methods
•  Annotated getter method with no corresponding setter
•  OpenJPA: silently ignores the field
•  EclipseLink: throws an error during entity validation
•  Solution: remove annotation
18
Missing setVersion method
No-arg Constructor
•  JPA 2.1 Spec: an entity must have a no-arg constructor
•  OpenJPA: if missing, generates a no-arg constructor.
•  EclipseLink: throws an error only if the no-arg constructor is missing,
but other constructors exist.
•  Solution: Add an empty no-arg constructor
19
Add no-arg
constructor
Unannotated Collections
•  Unannotated fields of type java.util.Collection or any of it’s
subinterfaces (List<E>, Queue<E>, Set<E>, etc)
•  OpenJPA: ignores fields
•  EclipseLink: persists fields
•  Solution: Add @javax.persistence.Transient
20
Add @Transient
@javax.persistence.ElementCollection
•  @ElementCollection generates a Separate table
•  Two columns: id, value
•  Different value column name
•  OpenJPA: 'element’
•  CREATE TABLE EntityA_LISTOFSTRINGS (ENTITYA_ID INTEGER,
element VARCHAR(254))
•  EclipseLink: field name
•  CREATE TABLE EntityA_LISTOFSTRINGS (EntityA_ID INTEGER,
LISTOFSTRINGS VARCHAR(255))
•  Solution: Add @javax.persistence.Column
21
Add @Column
Behavior Mismatch: @GeneratedValue
•  Generate values for primary keys
•  Strategies: TABLE, SEQUENCE, IDENTITY, AUTO
•  No Strategy or 'AUTO': JPA provider picks the strategy
•  Good news: OpenJPA and EclipseLink default to 'TABLE' strategy
•  Bad news: different table schemas are created
•  Solution
•  Change entity to explicitly use 'TABLE' strategy
•  Map to existing OpenJPA table
22
Java Persistence Query Language (JPQL)
•  @NamedQuery: specify named query in JPQL
•  OpenJPA: ignores invalid unused JPQL statements
•  EclipseLink: validates all JPQL statement by default
•  Solutions
•  Solution 1: fix JPQL statements
•  Solution 2: set eclipselink's invalid JPQL tolerance property to
true
23
Unique Names
•  Tables, NamedQuery, SQLResultSetMapping must have unique
names
•  OpenJPA behavior is undefined
•  Example: tables with same name are combined
•  EclipseLink throws an error during entity validation
•  Solution: review entities (manual process) 24
Summary
Summary
•  Do I want to utilize my existing database tables?
•  Modifications to the entities may be necessary
•  Database tables previously created (by OpenJPA) may
not match EclipseLink’s generated tables
•  OpenJPA may have been more lenient with spec
violations than Eclipselink is
•  Recommendation
•  Continue using OpenJPA for existing applications
•  Migrate to EclipseLink only for new applications
26
Migration Toolkit
Do you need to migrate?
Best practice is to
•  Use OpenJPA for your existing applications
•  Use EclipseLink for your new applications
But…
If you need to migrate, we have tools to assist.
28
An Overview of WebSphere Migration Tools
A set of tools help you:
- Migrate from third-party application servers to WebSphere Application Server
- Migrate between versions of WebSphere Application Server
- Migrate to WebSphere Application Server to the Cloud
29
Migration discovery Binaries analysis Source migration Config migration
On-line tool that helps you
•  Estimate the effort required to
migrate your application to
WebSphere Application Server
from third-party application
servers
•  Select the IBM cloud platform
suited to host your application
and estimate migration to that
platform
Command-line analysis of application
binaries that provides
•  High level evaluation report
showing the Java EE
technologies your application
uses
•  Detailed analysis for migration
between versions of
WebSphere traditional, Liberty,
and Liberty Core
•  Cloud migration for instant
runtimes differences
•  Java EE 7 differences
•  Cloud connectivity analysis
Eclipse plugins that scans application
source to provide
•  High level evaluation report
•  A line-by-line analysis of code
changes required
•  Detailed analysis for migrating
from third-party applications
servers
•  Detailed analysis for migration
between versions of WebSphere
traditional, Liberty, and Liberty
Core
•  Java EE 7 differences
•  Cloud migration for instant
runtimes differences
•  Cloud connectivity analysis
Eclipse plugin that helps migrate
server configuration
•  From third-party application
servers to WebSphere
Application Server
•  Between versions of
WebSphere Application Server
including WebSphere traditional
to Liberty.
How can the migration toolkit help?
•  Scan for OpenJPA to EclipseLink differences
•  The Eclipse-based, source scanning migration tool
•  Contains 19 Java rules with 9 quick fixes
•  Contains 5 XML rules with 2 quick fixes
•  Focuses on annotated JPA applications
•  Provides some configuration support
•  The binary scanning tool
•  Detects Entities enhanced for OpenJPA
•  Contains 2 Java rules
•  Contains 5 XML rules
30
Where can I get the migration tools?
•  http://wasdev.net
31
•  Eclipse Marketplace
How do I use the Eclipse migration tool?
Select Run > Analysis… to configure the JPA related rules.
• Choose the OpenJPA to EclipseLink JPA Migration rule set if you are only
interested in the JPA rules.
32
How do I use the Eclipse migration tool?
•  Select Run > Analysis to configure JPA related rules.
•  Choose the WebSphere
Application Server Version
Migration rule set if you want
to do more analysis.
•  Select Java EE 7 as the
target Java EE version
•  Select JPA
33
34
See the code to change
•  After running Analysis, use the Software Analyzer Results view to
interpret the scan.
35
See the proposed fix before applying the change
When you need more help
36
•  Each rule has help that you can view from the results or from the
configuration dialog.
37
What can I expect? -- Java rules
38
What can I expect? -- XML rules
Note: The rule Mapping files are not processed during OpenJPA to
EclipseLink migration is a reminder that most of the rules are Java
annotation rules. If define your Entities in mapping files rather than using
JPA annotations, you will need to make manual mapping file changes.
What if I don’t have source code?
The binary scanner detects
•  Enhanced Java code – only in the binary scanner
•  the XML issues
•  org.apache.openjpa packages in use
39
How do I use the binary scanner?
•  java -jar binaryAppScanner.jar --help
40
Resources
Other Tools: Integrity Checker
•  EclipseLink provides a way to verify descriptor's metadata against database
metadata
•  Setup the integrity checker using a session customizer (link)
•  Catches missing tables or columns without having to persist
•  Example: private getter methods
•  setShouldCatchExceptions(true) - find all entities with missing columns
•  Cons: doesn't catch everything or maybe anything…
•  Failed to catch @ElementColumn resulting in a different column name
in the separate table, @GeneratedValue looking for a different table
•  Doesn't compare column types
•  Better than nothing, but it missed many common issues
42
Useful Links
•  EclipseLink JPA provider for Liberty profile article
https://developer.ibm.com/wasdev/blog/2014/05/28/
eclipselink-jpa-provider-liberty-profile/
•  EclipseLink Migration Wiki Page
https://wiki.eclipse.org/EclipseLink/Examples/JPA/Migration/
OpenJPA
43
Useful Links
•  WebSphere Application Server Migration Toolkit
•  wasdev.net download and links to the documentation
•  https://developer.ibm.com/wasdev/downloads/#asset/tools-WebSphere_Application_Server_Migration_Toolkit
•  Eclipse Marketplace
•  https://marketplace.eclipse.org/content/ibm-websphere-application-server-migration-toolkit
•  Migration Toolkit for Application Binaries
•  wasdev.net download and links to the documentation
•  https://developer.ibm.com/wasdev/downloads/#asset/tools-Migration_Toolkit_for_Application_Binaries
44
Sampling of Related Sessions…
•  PEJ-5296: Java EE 7 Overview
–  Monday, 10:30am-11:30am, Mandalay Bay North, South Pacific Ballroom A
•  PEJ-2876: Configuring WebSphere Application Server for Enterprise Messaging Needs
–  Monday, 12:00pm-1:00pm, Mandalay Bay North, Islander Ballroom G
•  PEJ-2139: Technical Deep Dive into IBM WebSphere Liberty
–  Monday, 3:00pm-4:00pm, Mandalay Bay North, South Pacific Ballroom A
•  PEJ-1603: IBM WebSphere Liberty in the Wild
–  Tuesday, 1:15pm-2:15pm, Mandalay Bay North, South Pacific Ballroom A
•  PEJ-6480: Don’t Wait! Developing Responsive Applications with Java EE 7
–  Tuesday, 1:15pm-2:15pm, Mandalay Bay North, Islander Ballroom G
•  PEJ-1979: Hands-On with the IBM WebSphere Application Server Migration Toolkit (LAB)
–  Tuesday, 01:15 PM - 02:15 PM, MGM Grand - Room 320
•  PEJ-2151: Agile Development Using Java EE 7 with WebSphere Liberty Profile (LAB)
–  Wednesday, 8:30am-9:30am, MGM Grand Room 306
•  PEJ-1973: WAS Migration: Benefits, Planning, and Best Practices
–  Wednesday, 12:00pm-1:00pm, Mandalay Bay North, South Pacific Ballroom A
•  PEJ-1902: Migrate Java EE Applications to Cloud with Cloud Migration Toolkit
–  Wednesday, 2:30pm-12:15pm, Mandalay Bay North, Islander Ballroom G
•  PEJ-5303: OpenJPA and EclipseLink Usage Scenarios Explained
–  Thursday, 11:30am-12:15pm, Mandalay Bay North, South Pacific Ballroom A
45 45
Notices and Disclaimers
46
Copyright © 2016 by International Business Machines Corporation (IBM). No part of this document may be reproduced or transmitted in any form without written permission
from IBM.
U.S. Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM.
Information in these presentations (including information relating to products that have not yet been announced by IBM) has been reviewed for accuracy as of the date of
initial publication and could include unintentional technical or typographical errors. IBM shall have no responsibility to update this information. THIS DOCUMENT IS
DISTRIBUTED "AS IS" WITHOUT ANY WARRANTY, EITHER EXPRESS OR IMPLIED. IN NO EVENT SHALL IBM BE LIABLE FOR ANY DAMAGE ARISING FROM THE
USE OF THIS INFORMATION, INCLUDING BUT NOT LIMITED TO, LOSS OF DATA, BUSINESS INTERRUPTION, LOSS OF PROFIT OR LOSS OF OPPORTUNITY. IBM
products and services are warranted according to the terms and conditions of the agreements under which they are provided.
Any statements regarding IBM's future direction, intent or product plans are subject to change or withdrawal without notice.
Performance data contained herein was generally obtained in a controlled, isolated environments. Customer examples are presented as illustrations of how those customers
have used IBM products and the results they may have achieved. Actual performance, cost, savings or other results in other operating environments may vary.
References in this document to IBM products, programs, or services does not imply that IBM intends to make such products, programs or services available in all countries in
which IBM operates or does business.
Workshops, sessions and associated materials may have been prepared by independent session speakers, and do not necessarily reflect the views of IBM. All materials and
discussions are provided for informational purposes only, and are neither intended to, nor shall constitute legal or other guidance or advice to any individual participant or
their specific situation.
It is the customer’s responsibility to insure its own compliance with legal requirements and to obtain advice of competent legal counsel as to the identification and
interpretation of any relevant laws and regulatory requirements that may affect the customer’s business and any actions the customer may need to take to comply with such
laws. IBM does not provide legal advice or represent or warrant that its services or products will ensure that the customer is in compliance with any law
Notices and Disclaimers Con’t.
47
Information concerning non-IBM products was obtained from the suppliers of those products, their published announcements or other publicly available sources. IBM has not
tested those products in connection with this publication and cannot confirm the accuracy of performance, compatibility or any other claims related to non-IBM products.
Questions on the capabilities of non-IBM products should be addressed to the suppliers of those products. IBM does not warrant the quality of any third-party products, or the
ability of any such third-party products to interoperate with IBM’s products. IBM EXPRESSLY DISCLAIMS ALL WARRANTIES, EXPRESSED OR IMPLIED, INCLUDING BUT
NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
The provision of the information contained h erein is not intended to, and does not, grant any right or license under any IBM patents, copyrights, trademarks or other intellectual
property right.
IBM, the IBM logo, ibm.com, Aspera®, Bluemix, Blueworks Live, CICS, Clearcase, Cognos®, DOORS®, Emptoris®, Enterprise Document Management System™, FASP®,
FileNet®, Global Business Services ®, Global Technology Services ®, IBM ExperienceOne™, IBM SmartCloud®, IBM Social Business®, Information on Demand, ILOG,
Maximo®, MQIntegrator®, MQSeries®, Netcool®, OMEGAMON, OpenPower, PureAnalytics™, PureApplication®, pureCluster™, PureCoverage®, PureData®,
PureExperience®, PureFlex®, pureQuery®, pureScale®, PureSystems®, QRadar®, Rational®, Rhapsody®, Smarter Commerce®, SoDA, SPSS, Sterling Commerce®,
StoredIQ, Tealeaf®, Tivoli®, Trusteer®, Unica®, urban{code}®, Watson, WebSphere®, Worklight®, X-Force® and System z® Z/OS, are trademarks of International Business
Machines Corporation, registered in many jurisdictions worldwide. Other product and service names might be trademarks of IBM or other companies. A current list of IBM
trademarks is available on the Web at "Copyright and trademark information" at: www.ibm.com/legal/copytrade.shtml.
Thank You
Your Feedback is Important!
Access the InterConnect 2016 Conference Attendee
Portal to complete your session surveys from your
smartphone,
laptop or conference kiosk.
Backup
Differences in Column Types
•  Mapping fields to columns
•  Example: java.lang.String fields
•  OpenJPA: VARCHAR(254)
•  EclipseLink: VARCHAR(255)
•  Mostly non-problematic
•  Exception: java.util.Locale fields
•  OpenJPA: VARCHAR(254)
•  EclipseLink: BLOB(64000)
•  Solution
•  Use a type converter (introduced in JPA 2.1)
•  BLOB (object) ↔ VARCHAR (database)
50

More Related Content

What's hot

Contributors Guide to the Jakarta EE 10 Galaxy
Contributors Guide to the Jakarta EE 10 GalaxyContributors Guide to the Jakarta EE 10 Galaxy
Contributors Guide to the Jakarta EE 10 GalaxyJakarta_EE
 
Why jakarta ee matters (ConFoo 2021)
Why jakarta ee matters (ConFoo 2021)Why jakarta ee matters (ConFoo 2021)
Why jakarta ee matters (ConFoo 2021)Ryan Cuprak
 
What’s expected in Spring 5
What’s expected in Spring 5What’s expected in Spring 5
What’s expected in Spring 5Gal Marder
 
A Tour of the Modern Java Platform
A Tour of the Modern Java PlatformA Tour of the Modern Java Platform
A Tour of the Modern Java PlatformVMware Tanzu
 
Scaladays 2010 - The Scala IDE for Eclipse - Retrospect and Prospect for 2.8 ...
Scaladays 2010 - The Scala IDE for Eclipse - Retrospect and Prospect for 2.8 ...Scaladays 2010 - The Scala IDE for Eclipse - Retrospect and Prospect for 2.8 ...
Scaladays 2010 - The Scala IDE for Eclipse - Retrospect and Prospect for 2.8 ...Miles Sabin
 
How and why to upgrade to java 16 or 17
How and why to upgrade to java 16 or 17How and why to upgrade to java 16 or 17
How and why to upgrade to java 16 or 17Johan Janssen
 
Java 9 Module System Introduction
Java 9 Module System IntroductionJava 9 Module System Introduction
Java 9 Module System IntroductionDan Stine
 
Database Migrations with Gradle and Liquibase
Database Migrations with Gradle and LiquibaseDatabase Migrations with Gradle and Liquibase
Database Migrations with Gradle and LiquibaseDan Stine
 
20180518 QNAP Seminar - Introduction to React Native
20180518 QNAP Seminar - Introduction to React Native20180518 QNAP Seminar - Introduction to React Native
20180518 QNAP Seminar - Introduction to React NativeEric Deng
 
Oracle Fuson Middleware Diagnostics, Performance and Troubleshoot
Oracle Fuson Middleware Diagnostics, Performance and TroubleshootOracle Fuson Middleware Diagnostics, Performance and Troubleshoot
Oracle Fuson Middleware Diagnostics, Performance and TroubleshootMichel Schildmeijer
 
Java Database Connectivity (JDBC)
Java Database Connectivity (JDBC)Java Database Connectivity (JDBC)
Java Database Connectivity (JDBC)Pooja Talreja
 
Reactive Relational Database Connectivity
Reactive Relational Database ConnectivityReactive Relational Database Connectivity
Reactive Relational Database ConnectivityVMware Tanzu
 
Fun with Kubernetes and Payara Micro 5
Fun with Kubernetes and Payara Micro 5Fun with Kubernetes and Payara Micro 5
Fun with Kubernetes and Payara Micro 5Payara
 
R2DBC Reactive Relational Database Connectivity
R2DBC Reactive Relational Database ConnectivityR2DBC Reactive Relational Database Connectivity
R2DBC Reactive Relational Database ConnectivityMaarten Smeets
 
The Scala IDE for Eclipse - Retrospect and Prospect for 2.8.0
The Scala IDE for Eclipse - Retrospect and Prospect for 2.8.0The Scala IDE for Eclipse - Retrospect and Prospect for 2.8.0
The Scala IDE for Eclipse - Retrospect and Prospect for 2.8.0Miles Sabin
 
The Making of the Oracle R2DBC Driver and How to Take Your Code from Synchron...
The Making of the Oracle R2DBC Driver and How to Take Your Code from Synchron...The Making of the Oracle R2DBC Driver and How to Take Your Code from Synchron...
The Making of the Oracle R2DBC Driver and How to Take Your Code from Synchron...VMware Tanzu
 
Java database connectivity with MySql
Java database connectivity with MySqlJava database connectivity with MySql
Java database connectivity with MySqlDhyey Dattani
 

What's hot (20)

Contributors Guide to the Jakarta EE 10 Galaxy
Contributors Guide to the Jakarta EE 10 GalaxyContributors Guide to the Jakarta EE 10 Galaxy
Contributors Guide to the Jakarta EE 10 Galaxy
 
Why jakarta ee matters (ConFoo 2021)
Why jakarta ee matters (ConFoo 2021)Why jakarta ee matters (ConFoo 2021)
Why jakarta ee matters (ConFoo 2021)
 
What’s expected in Spring 5
What’s expected in Spring 5What’s expected in Spring 5
What’s expected in Spring 5
 
A Tour of the Modern Java Platform
A Tour of the Modern Java PlatformA Tour of the Modern Java Platform
A Tour of the Modern Java Platform
 
Scaladays 2010 - The Scala IDE for Eclipse - Retrospect and Prospect for 2.8 ...
Scaladays 2010 - The Scala IDE for Eclipse - Retrospect and Prospect for 2.8 ...Scaladays 2010 - The Scala IDE for Eclipse - Retrospect and Prospect for 2.8 ...
Scaladays 2010 - The Scala IDE for Eclipse - Retrospect and Prospect for 2.8 ...
 
How and why to upgrade to java 16 or 17
How and why to upgrade to java 16 or 17How and why to upgrade to java 16 or 17
How and why to upgrade to java 16 or 17
 
Jdbc
JdbcJdbc
Jdbc
 
Java 9 Module System Introduction
Java 9 Module System IntroductionJava 9 Module System Introduction
Java 9 Module System Introduction
 
JDBC ppt
JDBC pptJDBC ppt
JDBC ppt
 
Database Migrations with Gradle and Liquibase
Database Migrations with Gradle and LiquibaseDatabase Migrations with Gradle and Liquibase
Database Migrations with Gradle and Liquibase
 
20180518 QNAP Seminar - Introduction to React Native
20180518 QNAP Seminar - Introduction to React Native20180518 QNAP Seminar - Introduction to React Native
20180518 QNAP Seminar - Introduction to React Native
 
Oracle Fuson Middleware Diagnostics, Performance and Troubleshoot
Oracle Fuson Middleware Diagnostics, Performance and TroubleshootOracle Fuson Middleware Diagnostics, Performance and Troubleshoot
Oracle Fuson Middleware Diagnostics, Performance and Troubleshoot
 
Servlet programming
Servlet programmingServlet programming
Servlet programming
 
Java Database Connectivity (JDBC)
Java Database Connectivity (JDBC)Java Database Connectivity (JDBC)
Java Database Connectivity (JDBC)
 
Reactive Relational Database Connectivity
Reactive Relational Database ConnectivityReactive Relational Database Connectivity
Reactive Relational Database Connectivity
 
Fun with Kubernetes and Payara Micro 5
Fun with Kubernetes and Payara Micro 5Fun with Kubernetes and Payara Micro 5
Fun with Kubernetes and Payara Micro 5
 
R2DBC Reactive Relational Database Connectivity
R2DBC Reactive Relational Database ConnectivityR2DBC Reactive Relational Database Connectivity
R2DBC Reactive Relational Database Connectivity
 
The Scala IDE for Eclipse - Retrospect and Prospect for 2.8.0
The Scala IDE for Eclipse - Retrospect and Prospect for 2.8.0The Scala IDE for Eclipse - Retrospect and Prospect for 2.8.0
The Scala IDE for Eclipse - Retrospect and Prospect for 2.8.0
 
The Making of the Oracle R2DBC Driver and How to Take Your Code from Synchron...
The Making of the Oracle R2DBC Driver and How to Take Your Code from Synchron...The Making of the Oracle R2DBC Driver and How to Take Your Code from Synchron...
The Making of the Oracle R2DBC Driver and How to Take Your Code from Synchron...
 
Java database connectivity with MySql
Java database connectivity with MySqlJava database connectivity with MySql
Java database connectivity with MySql
 

Viewers also liked

InterConnect 2016 Java EE 7 Overview (PEJ-5296)
InterConnect 2016 Java EE 7 Overview (PEJ-5296)InterConnect 2016 Java EE 7 Overview (PEJ-5296)
InterConnect 2016 Java EE 7 Overview (PEJ-5296)Kevin Sutter
 
WebSphere Application Server - Meeting Your Cloud and On-Premise Demands
WebSphere Application Server - Meeting Your Cloud and On-Premise DemandsWebSphere Application Server - Meeting Your Cloud and On-Premise Demands
WebSphere Application Server - Meeting Your Cloud and On-Premise DemandsIan Robinson
 
IBM MQ - Comparing Distributed and z/OS platforms
IBM MQ - Comparing Distributed and z/OS platformsIBM MQ - Comparing Distributed and z/OS platforms
IBM MQ - Comparing Distributed and z/OS platformsMarkTaylorIBM
 
MQ Security Overview
MQ Security OverviewMQ Security Overview
MQ Security OverviewMarkTaylorIBM
 
IBM MQ - Monitoring and Managing Hybrid Messaging Environments
IBM MQ - Monitoring and Managing Hybrid Messaging EnvironmentsIBM MQ - Monitoring and Managing Hybrid Messaging Environments
IBM MQ - Monitoring and Managing Hybrid Messaging EnvironmentsMarkTaylorIBM
 
Big Data: InterConnect 2016 Session on Getting Started with Big Data Analytics
Big Data:  InterConnect 2016 Session on Getting Started with Big Data AnalyticsBig Data:  InterConnect 2016 Session on Getting Started with Big Data Analytics
Big Data: InterConnect 2016 Session on Getting Started with Big Data AnalyticsCynthia Saracco
 
IBM MQ - Comparing Distributed and z/OS platforms
IBM MQ - Comparing Distributed and z/OS platformsIBM MQ - Comparing Distributed and z/OS platforms
IBM MQ - Comparing Distributed and z/OS platformsMarkTaylorIBM
 
IBM MQ - better application performance
IBM MQ - better application performanceIBM MQ - better application performance
IBM MQ - better application performanceMarkTaylorIBM
 
MQ What's New Beyond V8 - V8003 level
MQ What's New Beyond V8 - V8003 levelMQ What's New Beyond V8 - V8003 level
MQ What's New Beyond V8 - V8003 levelMarkTaylorIBM
 
IBM WebSphere application server
IBM WebSphere application serverIBM WebSphere application server
IBM WebSphere application serverIBM Sverige
 
What's new in IBM MQ Messaging
What's new in IBM MQ MessagingWhat's new in IBM MQ Messaging
What's new in IBM MQ MessagingMarkTaylorIBM
 
IBM InterConnect 2016: Security for DevOps in an Enterprise
IBM InterConnect 2016: Security for DevOps in an Enterprise IBM InterConnect 2016: Security for DevOps in an Enterprise
IBM InterConnect 2016: Security for DevOps in an Enterprise Sanjeev Sharma
 
Understanding mq deployment choices and use cases
Understanding mq deployment choices and use casesUnderstanding mq deployment choices and use cases
Understanding mq deployment choices and use casesLeif Davidsen
 
Iib v10 performance problem determination examples
Iib v10 performance problem determination examplesIib v10 performance problem determination examples
Iib v10 performance problem determination examplesMartinRoss_IBM
 
IBM MQ - High Availability and Disaster Recovery
IBM MQ - High Availability and Disaster RecoveryIBM MQ - High Availability and Disaster Recovery
IBM MQ - High Availability and Disaster RecoveryMarkTaylorIBM
 
Expanding your options with the IBM MQ Appliance - IBM InterConnect 2016
Expanding your options with the IBM MQ Appliance - IBM InterConnect 2016Expanding your options with the IBM MQ Appliance - IBM InterConnect 2016
Expanding your options with the IBM MQ Appliance - IBM InterConnect 2016Leif Davidsen
 
InterConnect 2017 HBP-2884-IBM BPM upgrade and migration made easy
InterConnect 2017 HBP-2884-IBM BPM upgrade and migration made easyInterConnect 2017 HBP-2884-IBM BPM upgrade and migration made easy
InterConnect 2017 HBP-2884-IBM BPM upgrade and migration made easyBrian Petrini
 
DevOps & Continuous Test for IIB and IBM MQ
DevOps & Continuous Test for IIB and IBM MQDevOps & Continuous Test for IIB and IBM MQ
DevOps & Continuous Test for IIB and IBM MQStuart Feasey
 
IBM Messaging Security - Why securing your environment is important : IBM Int...
IBM Messaging Security - Why securing your environment is important : IBM Int...IBM Messaging Security - Why securing your environment is important : IBM Int...
IBM Messaging Security - Why securing your environment is important : IBM Int...Leif Davidsen
 
IBM MQ Disaster Recovery
IBM MQ Disaster RecoveryIBM MQ Disaster Recovery
IBM MQ Disaster RecoveryMarkTaylorIBM
 

Viewers also liked (20)

InterConnect 2016 Java EE 7 Overview (PEJ-5296)
InterConnect 2016 Java EE 7 Overview (PEJ-5296)InterConnect 2016 Java EE 7 Overview (PEJ-5296)
InterConnect 2016 Java EE 7 Overview (PEJ-5296)
 
WebSphere Application Server - Meeting Your Cloud and On-Premise Demands
WebSphere Application Server - Meeting Your Cloud and On-Premise DemandsWebSphere Application Server - Meeting Your Cloud and On-Premise Demands
WebSphere Application Server - Meeting Your Cloud and On-Premise Demands
 
IBM MQ - Comparing Distributed and z/OS platforms
IBM MQ - Comparing Distributed and z/OS platformsIBM MQ - Comparing Distributed and z/OS platforms
IBM MQ - Comparing Distributed and z/OS platforms
 
MQ Security Overview
MQ Security OverviewMQ Security Overview
MQ Security Overview
 
IBM MQ - Monitoring and Managing Hybrid Messaging Environments
IBM MQ - Monitoring and Managing Hybrid Messaging EnvironmentsIBM MQ - Monitoring and Managing Hybrid Messaging Environments
IBM MQ - Monitoring and Managing Hybrid Messaging Environments
 
Big Data: InterConnect 2016 Session on Getting Started with Big Data Analytics
Big Data:  InterConnect 2016 Session on Getting Started with Big Data AnalyticsBig Data:  InterConnect 2016 Session on Getting Started with Big Data Analytics
Big Data: InterConnect 2016 Session on Getting Started with Big Data Analytics
 
IBM MQ - Comparing Distributed and z/OS platforms
IBM MQ - Comparing Distributed and z/OS platformsIBM MQ - Comparing Distributed and z/OS platforms
IBM MQ - Comparing Distributed and z/OS platforms
 
IBM MQ - better application performance
IBM MQ - better application performanceIBM MQ - better application performance
IBM MQ - better application performance
 
MQ What's New Beyond V8 - V8003 level
MQ What's New Beyond V8 - V8003 levelMQ What's New Beyond V8 - V8003 level
MQ What's New Beyond V8 - V8003 level
 
IBM WebSphere application server
IBM WebSphere application serverIBM WebSphere application server
IBM WebSphere application server
 
What's new in IBM MQ Messaging
What's new in IBM MQ MessagingWhat's new in IBM MQ Messaging
What's new in IBM MQ Messaging
 
IBM InterConnect 2016: Security for DevOps in an Enterprise
IBM InterConnect 2016: Security for DevOps in an Enterprise IBM InterConnect 2016: Security for DevOps in an Enterprise
IBM InterConnect 2016: Security for DevOps in an Enterprise
 
Understanding mq deployment choices and use cases
Understanding mq deployment choices and use casesUnderstanding mq deployment choices and use cases
Understanding mq deployment choices and use cases
 
Iib v10 performance problem determination examples
Iib v10 performance problem determination examplesIib v10 performance problem determination examples
Iib v10 performance problem determination examples
 
IBM MQ - High Availability and Disaster Recovery
IBM MQ - High Availability and Disaster RecoveryIBM MQ - High Availability and Disaster Recovery
IBM MQ - High Availability and Disaster Recovery
 
Expanding your options with the IBM MQ Appliance - IBM InterConnect 2016
Expanding your options with the IBM MQ Appliance - IBM InterConnect 2016Expanding your options with the IBM MQ Appliance - IBM InterConnect 2016
Expanding your options with the IBM MQ Appliance - IBM InterConnect 2016
 
InterConnect 2017 HBP-2884-IBM BPM upgrade and migration made easy
InterConnect 2017 HBP-2884-IBM BPM upgrade and migration made easyInterConnect 2017 HBP-2884-IBM BPM upgrade and migration made easy
InterConnect 2017 HBP-2884-IBM BPM upgrade and migration made easy
 
DevOps & Continuous Test for IIB and IBM MQ
DevOps & Continuous Test for IIB and IBM MQDevOps & Continuous Test for IIB and IBM MQ
DevOps & Continuous Test for IIB and IBM MQ
 
IBM Messaging Security - Why securing your environment is important : IBM Int...
IBM Messaging Security - Why securing your environment is important : IBM Int...IBM Messaging Security - Why securing your environment is important : IBM Int...
IBM Messaging Security - Why securing your environment is important : IBM Int...
 
IBM MQ Disaster Recovery
IBM MQ Disaster RecoveryIBM MQ Disaster Recovery
IBM MQ Disaster Recovery
 

Similar to InterConnect 2016, OpenJPA and EclipseLink Usage Scenarios (PEJ-5303)

Haj 4308-open jpa, eclipselink, and the migration toolkit
Haj 4308-open jpa, eclipselink, and the migration toolkitHaj 4308-open jpa, eclipselink, and the migration toolkit
Haj 4308-open jpa, eclipselink, and the migration toolkitKevin Sutter
 
AAI-2235 Open JPA and EclipseLink Usage Scenarios Explained
AAI-2235 Open JPA and EclipseLink Usage Scenarios ExplainedAAI-2235 Open JPA and EclipseLink Usage Scenarios Explained
AAI-2235 Open JPA and EclipseLink Usage Scenarios ExplainedWASdev Community
 
Java Webinar #12: "Java Versions and Features: Since JDK 8 to 16"
Java Webinar #12: "Java Versions and Features: Since JDK 8 to 16"Java Webinar #12: "Java Versions and Features: Since JDK 8 to 16"
Java Webinar #12: "Java Versions and Features: Since JDK 8 to 16"GlobalLogic Ukraine
 
Overview of Java EE 6 by Roberto Chinnici at SFJUG
Overview of Java EE 6 by Roberto Chinnici at SFJUGOverview of Java EE 6 by Roberto Chinnici at SFJUG
Overview of Java EE 6 by Roberto Chinnici at SFJUGMarakana Inc.
 
Migrating to Jakarta EE 10
Migrating to Jakarta EE 10Migrating to Jakarta EE 10
Migrating to Jakarta EE 10Josh Juneau
 
Java EE 6, Eclipse @ EclipseCon
Java EE 6, Eclipse @ EclipseConJava EE 6, Eclipse @ EclipseCon
Java EE 6, Eclipse @ EclipseConLudovic Champenois
 
JavaOne 2014 Java EE 8 Booth Slides
JavaOne 2014 Java EE 8 Booth SlidesJavaOne 2014 Java EE 8 Booth Slides
JavaOne 2014 Java EE 8 Booth SlidesEdward Burns
 
OTN Developer Days - Java EE 6
OTN Developer Days - Java EE 6OTN Developer Days - Java EE 6
OTN Developer Days - Java EE 6glassfish
 
Tools Coverage for the Java EE Platform @ Silicon Valley Code Camp 2010
Tools Coverage for the Java EE Platform @ Silicon Valley Code Camp 2010Tools Coverage for the Java EE Platform @ Silicon Valley Code Camp 2010
Tools Coverage for the Java EE Platform @ Silicon Valley Code Camp 2010Arun Gupta
 
Utilizing JSF Front Ends with Microservices
Utilizing JSF Front Ends with MicroservicesUtilizing JSF Front Ends with Microservices
Utilizing JSF Front Ends with MicroservicesJosh Juneau
 
Basic React Knowledge.
Basic React Knowledge.Basic React Knowledge.
Basic React Knowledge.jacobryne
 
Basic React Knowledge.
Basic React Knowledge.Basic React Knowledge.
Basic React Knowledge.jacobryne
 
Deep Dive Hands-on in Java EE 6 - Oredev 2010
Deep Dive Hands-on in Java EE 6 - Oredev 2010Deep Dive Hands-on in Java EE 6 - Oredev 2010
Deep Dive Hands-on in Java EE 6 - Oredev 2010Arun Gupta
 
Java EE 7 Recipes for Concurrency - JavaOne 2014
Java EE 7 Recipes for Concurrency - JavaOne 2014Java EE 7 Recipes for Concurrency - JavaOne 2014
Java EE 7 Recipes for Concurrency - JavaOne 2014Josh Juneau
 
OpenNTF Webinar 2022-08 - XPages Jakarta EE Support in Practice
OpenNTF Webinar 2022-08 - XPages Jakarta EE Support in PracticeOpenNTF Webinar 2022-08 - XPages Jakarta EE Support in Practice
OpenNTF Webinar 2022-08 - XPages Jakarta EE Support in PracticeJesse Gallagher
 
Java EE8 - by Kito Mann
Java EE8 - by Kito Mann Java EE8 - by Kito Mann
Java EE8 - by Kito Mann Kile Niklawski
 
MVC + ORM (with project implementation)
MVC + ORM (with project implementation)MVC + ORM (with project implementation)
MVC + ORM (with project implementation)Prateek Chauhan
 

Similar to InterConnect 2016, OpenJPA and EclipseLink Usage Scenarios (PEJ-5303) (20)

Haj 4308-open jpa, eclipselink, and the migration toolkit
Haj 4308-open jpa, eclipselink, and the migration toolkitHaj 4308-open jpa, eclipselink, and the migration toolkit
Haj 4308-open jpa, eclipselink, and the migration toolkit
 
AAI-2235 Open JPA and EclipseLink Usage Scenarios Explained
AAI-2235 Open JPA and EclipseLink Usage Scenarios ExplainedAAI-2235 Open JPA and EclipseLink Usage Scenarios Explained
AAI-2235 Open JPA and EclipseLink Usage Scenarios Explained
 
Java Webinar #12: "Java Versions and Features: Since JDK 8 to 16"
Java Webinar #12: "Java Versions and Features: Since JDK 8 to 16"Java Webinar #12: "Java Versions and Features: Since JDK 8 to 16"
Java Webinar #12: "Java Versions and Features: Since JDK 8 to 16"
 
Overview of Java EE 6 by Roberto Chinnici at SFJUG
Overview of Java EE 6 by Roberto Chinnici at SFJUGOverview of Java EE 6 by Roberto Chinnici at SFJUG
Overview of Java EE 6 by Roberto Chinnici at SFJUG
 
Migrating to Jakarta EE 10
Migrating to Jakarta EE 10Migrating to Jakarta EE 10
Migrating to Jakarta EE 10
 
Java EE 6, Eclipse @ EclipseCon
Java EE 6, Eclipse @ EclipseConJava EE 6, Eclipse @ EclipseCon
Java EE 6, Eclipse @ EclipseCon
 
JavaOne 2014 Java EE 8 Booth Slides
JavaOne 2014 Java EE 8 Booth SlidesJavaOne 2014 Java EE 8 Booth Slides
JavaOne 2014 Java EE 8 Booth Slides
 
OTN Developer Days - Java EE 6
OTN Developer Days - Java EE 6OTN Developer Days - Java EE 6
OTN Developer Days - Java EE 6
 
Tools Coverage for the Java EE Platform @ Silicon Valley Code Camp 2010
Tools Coverage for the Java EE Platform @ Silicon Valley Code Camp 2010Tools Coverage for the Java EE Platform @ Silicon Valley Code Camp 2010
Tools Coverage for the Java EE Platform @ Silicon Valley Code Camp 2010
 
Utilizing JSF Front Ends with Microservices
Utilizing JSF Front Ends with MicroservicesUtilizing JSF Front Ends with Microservices
Utilizing JSF Front Ends with Microservices
 
Java9to19Final.pptx
Java9to19Final.pptxJava9to19Final.pptx
Java9to19Final.pptx
 
Basic React Knowledge.
Basic React Knowledge.Basic React Knowledge.
Basic React Knowledge.
 
Basic React Knowledge.
Basic React Knowledge.Basic React Knowledge.
Basic React Knowledge.
 
Deep Dive Hands-on in Java EE 6 - Oredev 2010
Deep Dive Hands-on in Java EE 6 - Oredev 2010Deep Dive Hands-on in Java EE 6 - Oredev 2010
Deep Dive Hands-on in Java EE 6 - Oredev 2010
 
Java EE 7 Recipes for Concurrency - JavaOne 2014
Java EE 7 Recipes for Concurrency - JavaOne 2014Java EE 7 Recipes for Concurrency - JavaOne 2014
Java EE 7 Recipes for Concurrency - JavaOne 2014
 
Functional java 8
Functional java 8Functional java 8
Functional java 8
 
OpenNTF Webinar 2022-08 - XPages Jakarta EE Support in Practice
OpenNTF Webinar 2022-08 - XPages Jakarta EE Support in PracticeOpenNTF Webinar 2022-08 - XPages Jakarta EE Support in Practice
OpenNTF Webinar 2022-08 - XPages Jakarta EE Support in Practice
 
Protractor survival guide
Protractor survival guideProtractor survival guide
Protractor survival guide
 
Java EE8 - by Kito Mann
Java EE8 - by Kito Mann Java EE8 - by Kito Mann
Java EE8 - by Kito Mann
 
MVC + ORM (with project implementation)
MVC + ORM (with project implementation)MVC + ORM (with project implementation)
MVC + ORM (with project implementation)
 

More from Kevin Sutter

DevNexus 2019: MicroProfile and Jakarta EE - What's Next?
DevNexus 2019:  MicroProfile and Jakarta EE - What's Next?DevNexus 2019:  MicroProfile and Jakarta EE - What's Next?
DevNexus 2019: MicroProfile and Jakarta EE - What's Next?Kevin Sutter
 
Implementing Microservices with Jakarta EE and MicroProfile
Implementing Microservices with Jakarta EE and MicroProfileImplementing Microservices with Jakarta EE and MicroProfile
Implementing Microservices with Jakarta EE and MicroProfileKevin Sutter
 
Bmc 4286-micro profile-a programming model for microservices-based applications
Bmc 4286-micro profile-a programming model for microservices-based applicationsBmc 4286-micro profile-a programming model for microservices-based applications
Bmc 4286-micro profile-a programming model for microservices-based applicationsKevin Sutter
 
Ham 4393-micro profile, java ee, and the application server
Ham 4393-micro profile, java ee, and the application serverHam 4393-micro profile, java ee, and the application server
Ham 4393-micro profile, java ee, and the application serverKevin Sutter
 
Haj 4328-java ee 7 overview
Haj 4328-java ee 7 overviewHaj 4328-java ee 7 overview
Haj 4328-java ee 7 overviewKevin Sutter
 
Haj 4344-java se 9 and the application server-1
Haj 4344-java se 9 and the application server-1Haj 4344-java se 9 and the application server-1
Haj 4344-java se 9 and the application server-1Kevin Sutter
 
Bas 5676-java ee 8 introduction
Bas 5676-java ee 8 introductionBas 5676-java ee 8 introduction
Bas 5676-java ee 8 introductionKevin Sutter
 
AAI 2236-Using the New Java Concurrency Utilities with IBM WebSphere
AAI 2236-Using the New Java Concurrency Utilities with IBM WebSphereAAI 2236-Using the New Java Concurrency Utilities with IBM WebSphere
AAI 2236-Using the New Java Concurrency Utilities with IBM WebSphereKevin Sutter
 
AAI 1713-Introduction to Java EE 7
AAI 1713-Introduction to Java EE 7AAI 1713-Introduction to Java EE 7
AAI 1713-Introduction to Java EE 7Kevin Sutter
 

More from Kevin Sutter (9)

DevNexus 2019: MicroProfile and Jakarta EE - What's Next?
DevNexus 2019:  MicroProfile and Jakarta EE - What's Next?DevNexus 2019:  MicroProfile and Jakarta EE - What's Next?
DevNexus 2019: MicroProfile and Jakarta EE - What's Next?
 
Implementing Microservices with Jakarta EE and MicroProfile
Implementing Microservices with Jakarta EE and MicroProfileImplementing Microservices with Jakarta EE and MicroProfile
Implementing Microservices with Jakarta EE and MicroProfile
 
Bmc 4286-micro profile-a programming model for microservices-based applications
Bmc 4286-micro profile-a programming model for microservices-based applicationsBmc 4286-micro profile-a programming model for microservices-based applications
Bmc 4286-micro profile-a programming model for microservices-based applications
 
Ham 4393-micro profile, java ee, and the application server
Ham 4393-micro profile, java ee, and the application serverHam 4393-micro profile, java ee, and the application server
Ham 4393-micro profile, java ee, and the application server
 
Haj 4328-java ee 7 overview
Haj 4328-java ee 7 overviewHaj 4328-java ee 7 overview
Haj 4328-java ee 7 overview
 
Haj 4344-java se 9 and the application server-1
Haj 4344-java se 9 and the application server-1Haj 4344-java se 9 and the application server-1
Haj 4344-java se 9 and the application server-1
 
Bas 5676-java ee 8 introduction
Bas 5676-java ee 8 introductionBas 5676-java ee 8 introduction
Bas 5676-java ee 8 introduction
 
AAI 2236-Using the New Java Concurrency Utilities with IBM WebSphere
AAI 2236-Using the New Java Concurrency Utilities with IBM WebSphereAAI 2236-Using the New Java Concurrency Utilities with IBM WebSphere
AAI 2236-Using the New Java Concurrency Utilities with IBM WebSphere
 
AAI 1713-Introduction to Java EE 7
AAI 1713-Introduction to Java EE 7AAI 1713-Introduction to Java EE 7
AAI 1713-Introduction to Java EE 7
 

Recently uploaded

HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendArshad QA
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfCionsystems
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 

Recently uploaded (20)

HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and Backend
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdf
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 

InterConnect 2016, OpenJPA and EclipseLink Usage Scenarios (PEJ-5303)

  • 1. PEJ-5303 OpenJPA and EclipseLink Usage Scenarios Explained Kevin Sutter, STSM WebSphere Java EE and JPA Architect Twitter: @kwsutter LinkedIn: https://www.linkedin.com/in/kevinwsutter Cindy High, Senior Software Engineer WebSphere Migration Toolkit Twitter: @CTHigh LinkedIn: http://www.linkedin.com/in/cindyhigh
  • 2. Please Note: 2 •  IBM’s statements regarding its plans, directions, and intent are subject to change or withdrawal without notice at IBM’s sole discretion. •  Information regarding potential future products is intended to outline our general product direction and it should not be relied on in making a purchasing decision. •  The information mentioned regarding potential future products is not a commitment, promise, or legal obligation to deliver any material, code or functionality. Information about potential future products may not be incorporated into any contract. •  The development, release, and timing of any future features or functionality described for our products remains at our sole discretion. •  Performance is based on measurements and projections using standard IBM benchmarks in a controlled environment. The actual throughput or performance that any user will experience will vary depending upon many factors, including considerations such as the amount of multiprogramming in the user’s job stream, the I/O configuration, the storage configuration, and the workload processed. Therefore, no assurance can be given that an individual user will achieve results similar to those stated here.
  • 3. Agenda •  OpenJPA and EclipseLink •  JPA version comparisons •  OpenJPA to EclipseLink Migration •  High level concepts •  OpenJPA to EclipseLink Investigation •  Specific differences •  Migration Toolkit •  Summary •  Q & A 3
  • 5. OpenJPA and EclipseLink •  Apache OpenJPA •  Basis for WebSphere’s JPA solution for JPA 1.0 and JPA 2.0 •  EclipseLink •  JPA Reference Implementation – “gospel” •  Basis for WebSphere Liberty’s JPA solution for JPA 2.1 •  Moving forward… •  OpenJPA will continue to be supported in WebSphere for many, many years •  At least until JPA 2.0 is deprecated… •  Both WebSphere traditional and Liberty 5
  • 6. Multiple JPA Providers •  Do I have to switch providers? •  Absolutely not! •  If you are happy with the current OpenJPA offering, there is no need to move to EclipseLink •  If you want to use the JPA 2.1 features, you may need to change… •  Many of the JPA 2.1 features have corresponding OpenJPA proprietary solutions •  Apache OpenJPA (ie. JPA 2.0) is compatible with other Java EE 7 features •  Allows for an easier, more gradual JPA migration 6
  • 7. Key JPA 2.1 Features available in OpenJPA •  Schema Generation (JPA 2.1 Spec, Section 9.4) •  Generates DDL or interacts directly with database to define table schemas based on JPA Entity definitions •  Similar functionality provided by OpenJPA’s schema mapper •  Entity Graphs (JPA 2.1 Spec, Section 3.7) •  Allows for specified fetching or processing of a graph of Entity objects •  Similar functionality provided by OpenJPA’s FetchPlan and FetchGroup •  Stored Procedure Queries (JPA 2.1 Spec, Section 3.10.17) •  Ability to invoke database stored procedures •  Similar functionality provided by OpenJPA’s Query invocation 7
  • 8. Additional JPA 2.1 Features available in OpenJPA •  Basic Attribute Type Conversion (JPA 2.1 Spec, Section 3.8) •  Similar functionality support provided by OpenJPA’s Externalizer feature •  @Index and @ForeignKey annotations (JPA 2.1 Spec, Sections 11.1.19 and 11.1.23) •  Similar functionality provided by OpenJPA’s annotations •  Unwrap utility methods for EntityManager, Cache, etc (JPA 2.1 Spec Sections 3.1.1 and 7.10) •  Similar functionality provided by OpenJPA’s implementation -- EntityManagerImpl.unwrap() and OpenJPAPersistence.cast() •  Object construction when mapping results from native SQL (JPA 2.1 Spec, Section 3.10.16.2.2) •  Similar functionality provided by OpenJPA’s internal ResultShape object 8
  • 9. Additional JPA 2.1 Features NOT available in OpenJPA •  Criteria API Updates (JPA 2.1 Spec, Sections 6.5.15 and 6.5.7) •  Bulk update/delete •  Support for TREAT, ON, and FUNCTION operators •  Unsynchronized Persistence Contexts (JPA 2.1 Spec, Section 7.6.1) •  Provides more control over when Persistence Contexts are synchronized with a transaction. Useful for mobile applications. •  EntityListeners and CDI (JPA 2.1 Spec, Section 3.5.1) •  EntityListeners can now use CDI for injection of objects •  JPQL Updates for JPA 2.1 (JPA 2.1 Spec, Chapter 4) •  Several extensions to JPQL in support of the other features •  OpenJPA’s JPQL will stay at the JPA 2.0 level 9
  • 10. Feature Comparison Chart 10 Key JPA 2.1 Features Available in current OpenJPA solution? Schema Generation Yes, SynchronizeMappings Entity Graphs Yes, FetchPlans and FetchGroups Stored Procedures Yes, Query interface Basic Attribute Type Conversion Yes, Externalizer (and Factory) @Index and @ForeignKey annotations Yes, proprietary @Index and @ForeignKey annotations Unwrap utility functions Yes, EntityManagerImpl.unwrap() and OpenJPAPersistence.cast() Object construction when mapping results with native SQL Yes, ResultShape (internal OpenJPA implementation) Criteria API updates No Unsynchronized PersistenceContexts No EntityListeners and CDI No JPQL Updates in support of JPA 2.1 No
  • 11. Bottom Line •  YOU DO NOT NEED TO MIGRATE •  Our Advice •  Continue using OpenJPA for your existing applications •  Use EclipseLink for your new applications •  But… If you want to use EclipseLink with existing applications, the following slides will discuss what to look out for when migrating existing applications 11
  • 13. Cache •  DataCache •  OpenJPA's L2 cache is disabled out of the box. EclipseLink's L2 cache is enabled by default. •  If you are migrating an application that isn't using the OpenJPA cache, it is highly recommended to disable the EclipseLink cache using: <shared-cache-mode>NONE</shared-cache-mode> •  Query (Results) Cache •  If QueryCache is enabled for OpenJPA, it will cache all Named Queries and JPQL Statement Results •  EclipseLink only caches Named Queries Results •  More information on EclipseLink QueryCache here 13
  • 14. Weaving/enhancement/transformation •  OpenJPA: Entities must be enhanced •  EclipseLink: Entities do not have to be enhanced •  Documented missing features (lazy loading, performance gains, etc) •  WebSphere container automatically weaves/enhances Entities for both OpenJPA and EclipseLink •  Applications packaged with entities pre-enhanced by OpenJPA must be recompiled and repackaged •  Removes OpenJPA specific enhancement bytecode 14
  • 16. Investigation •  Goal •  Find differences in behavior between OpenJPA and EclipseLink •  OpenJPA → EclipseLink migration issues •  Data •  Entities from OpenJPA's testing framework (>700 entities) •  Process •  Auto generate databases tables using both providers •  Use tables created by OpenJPA for verification •  Database: DB2 •  Results •  Errors (fix EclipseLink) •  Table differences 16
  • 17. Private Accessor Methods •  JPA 2.1 Spec: property accessor methods must be public or protected •  OpenJPA: ignores “private” fields •  EclipseLink: persists “private” fields •  Migrating issue: missing database column error •  Solution: Add @Transient to the method •  Forces EclipseLink to ignore the field 17 Add @Transient
  • 18. Getter/Setter accessor methods •  Annotated getter method with no corresponding setter •  OpenJPA: silently ignores the field •  EclipseLink: throws an error during entity validation •  Solution: remove annotation 18 Missing setVersion method
  • 19. No-arg Constructor •  JPA 2.1 Spec: an entity must have a no-arg constructor •  OpenJPA: if missing, generates a no-arg constructor. •  EclipseLink: throws an error only if the no-arg constructor is missing, but other constructors exist. •  Solution: Add an empty no-arg constructor 19 Add no-arg constructor
  • 20. Unannotated Collections •  Unannotated fields of type java.util.Collection or any of it’s subinterfaces (List<E>, Queue<E>, Set<E>, etc) •  OpenJPA: ignores fields •  EclipseLink: persists fields •  Solution: Add @javax.persistence.Transient 20 Add @Transient
  • 21. @javax.persistence.ElementCollection •  @ElementCollection generates a Separate table •  Two columns: id, value •  Different value column name •  OpenJPA: 'element’ •  CREATE TABLE EntityA_LISTOFSTRINGS (ENTITYA_ID INTEGER, element VARCHAR(254)) •  EclipseLink: field name •  CREATE TABLE EntityA_LISTOFSTRINGS (EntityA_ID INTEGER, LISTOFSTRINGS VARCHAR(255)) •  Solution: Add @javax.persistence.Column 21 Add @Column
  • 22. Behavior Mismatch: @GeneratedValue •  Generate values for primary keys •  Strategies: TABLE, SEQUENCE, IDENTITY, AUTO •  No Strategy or 'AUTO': JPA provider picks the strategy •  Good news: OpenJPA and EclipseLink default to 'TABLE' strategy •  Bad news: different table schemas are created •  Solution •  Change entity to explicitly use 'TABLE' strategy •  Map to existing OpenJPA table 22
  • 23. Java Persistence Query Language (JPQL) •  @NamedQuery: specify named query in JPQL •  OpenJPA: ignores invalid unused JPQL statements •  EclipseLink: validates all JPQL statement by default •  Solutions •  Solution 1: fix JPQL statements •  Solution 2: set eclipselink's invalid JPQL tolerance property to true 23
  • 24. Unique Names •  Tables, NamedQuery, SQLResultSetMapping must have unique names •  OpenJPA behavior is undefined •  Example: tables with same name are combined •  EclipseLink throws an error during entity validation •  Solution: review entities (manual process) 24
  • 26. Summary •  Do I want to utilize my existing database tables? •  Modifications to the entities may be necessary •  Database tables previously created (by OpenJPA) may not match EclipseLink’s generated tables •  OpenJPA may have been more lenient with spec violations than Eclipselink is •  Recommendation •  Continue using OpenJPA for existing applications •  Migrate to EclipseLink only for new applications 26
  • 28. Do you need to migrate? Best practice is to •  Use OpenJPA for your existing applications •  Use EclipseLink for your new applications But… If you need to migrate, we have tools to assist. 28
  • 29. An Overview of WebSphere Migration Tools A set of tools help you: - Migrate from third-party application servers to WebSphere Application Server - Migrate between versions of WebSphere Application Server - Migrate to WebSphere Application Server to the Cloud 29 Migration discovery Binaries analysis Source migration Config migration On-line tool that helps you •  Estimate the effort required to migrate your application to WebSphere Application Server from third-party application servers •  Select the IBM cloud platform suited to host your application and estimate migration to that platform Command-line analysis of application binaries that provides •  High level evaluation report showing the Java EE technologies your application uses •  Detailed analysis for migration between versions of WebSphere traditional, Liberty, and Liberty Core •  Cloud migration for instant runtimes differences •  Java EE 7 differences •  Cloud connectivity analysis Eclipse plugins that scans application source to provide •  High level evaluation report •  A line-by-line analysis of code changes required •  Detailed analysis for migrating from third-party applications servers •  Detailed analysis for migration between versions of WebSphere traditional, Liberty, and Liberty Core •  Java EE 7 differences •  Cloud migration for instant runtimes differences •  Cloud connectivity analysis Eclipse plugin that helps migrate server configuration •  From third-party application servers to WebSphere Application Server •  Between versions of WebSphere Application Server including WebSphere traditional to Liberty.
  • 30. How can the migration toolkit help? •  Scan for OpenJPA to EclipseLink differences •  The Eclipse-based, source scanning migration tool •  Contains 19 Java rules with 9 quick fixes •  Contains 5 XML rules with 2 quick fixes •  Focuses on annotated JPA applications •  Provides some configuration support •  The binary scanning tool •  Detects Entities enhanced for OpenJPA •  Contains 2 Java rules •  Contains 5 XML rules 30
  • 31. Where can I get the migration tools? •  http://wasdev.net 31 •  Eclipse Marketplace
  • 32. How do I use the Eclipse migration tool? Select Run > Analysis… to configure the JPA related rules. • Choose the OpenJPA to EclipseLink JPA Migration rule set if you are only interested in the JPA rules. 32
  • 33. How do I use the Eclipse migration tool? •  Select Run > Analysis to configure JPA related rules. •  Choose the WebSphere Application Server Version Migration rule set if you want to do more analysis. •  Select Java EE 7 as the target Java EE version •  Select JPA 33
  • 34. 34 See the code to change •  After running Analysis, use the Software Analyzer Results view to interpret the scan.
  • 35. 35 See the proposed fix before applying the change
  • 36. When you need more help 36 •  Each rule has help that you can view from the results or from the configuration dialog.
  • 37. 37 What can I expect? -- Java rules
  • 38. 38 What can I expect? -- XML rules Note: The rule Mapping files are not processed during OpenJPA to EclipseLink migration is a reminder that most of the rules are Java annotation rules. If define your Entities in mapping files rather than using JPA annotations, you will need to make manual mapping file changes.
  • 39. What if I don’t have source code? The binary scanner detects •  Enhanced Java code – only in the binary scanner •  the XML issues •  org.apache.openjpa packages in use 39
  • 40. How do I use the binary scanner? •  java -jar binaryAppScanner.jar --help 40
  • 42. Other Tools: Integrity Checker •  EclipseLink provides a way to verify descriptor's metadata against database metadata •  Setup the integrity checker using a session customizer (link) •  Catches missing tables or columns without having to persist •  Example: private getter methods •  setShouldCatchExceptions(true) - find all entities with missing columns •  Cons: doesn't catch everything or maybe anything… •  Failed to catch @ElementColumn resulting in a different column name in the separate table, @GeneratedValue looking for a different table •  Doesn't compare column types •  Better than nothing, but it missed many common issues 42
  • 43. Useful Links •  EclipseLink JPA provider for Liberty profile article https://developer.ibm.com/wasdev/blog/2014/05/28/ eclipselink-jpa-provider-liberty-profile/ •  EclipseLink Migration Wiki Page https://wiki.eclipse.org/EclipseLink/Examples/JPA/Migration/ OpenJPA 43
  • 44. Useful Links •  WebSphere Application Server Migration Toolkit •  wasdev.net download and links to the documentation •  https://developer.ibm.com/wasdev/downloads/#asset/tools-WebSphere_Application_Server_Migration_Toolkit •  Eclipse Marketplace •  https://marketplace.eclipse.org/content/ibm-websphere-application-server-migration-toolkit •  Migration Toolkit for Application Binaries •  wasdev.net download and links to the documentation •  https://developer.ibm.com/wasdev/downloads/#asset/tools-Migration_Toolkit_for_Application_Binaries 44
  • 45. Sampling of Related Sessions… •  PEJ-5296: Java EE 7 Overview –  Monday, 10:30am-11:30am, Mandalay Bay North, South Pacific Ballroom A •  PEJ-2876: Configuring WebSphere Application Server for Enterprise Messaging Needs –  Monday, 12:00pm-1:00pm, Mandalay Bay North, Islander Ballroom G •  PEJ-2139: Technical Deep Dive into IBM WebSphere Liberty –  Monday, 3:00pm-4:00pm, Mandalay Bay North, South Pacific Ballroom A •  PEJ-1603: IBM WebSphere Liberty in the Wild –  Tuesday, 1:15pm-2:15pm, Mandalay Bay North, South Pacific Ballroom A •  PEJ-6480: Don’t Wait! Developing Responsive Applications with Java EE 7 –  Tuesday, 1:15pm-2:15pm, Mandalay Bay North, Islander Ballroom G •  PEJ-1979: Hands-On with the IBM WebSphere Application Server Migration Toolkit (LAB) –  Tuesday, 01:15 PM - 02:15 PM, MGM Grand - Room 320 •  PEJ-2151: Agile Development Using Java EE 7 with WebSphere Liberty Profile (LAB) –  Wednesday, 8:30am-9:30am, MGM Grand Room 306 •  PEJ-1973: WAS Migration: Benefits, Planning, and Best Practices –  Wednesday, 12:00pm-1:00pm, Mandalay Bay North, South Pacific Ballroom A •  PEJ-1902: Migrate Java EE Applications to Cloud with Cloud Migration Toolkit –  Wednesday, 2:30pm-12:15pm, Mandalay Bay North, Islander Ballroom G •  PEJ-5303: OpenJPA and EclipseLink Usage Scenarios Explained –  Thursday, 11:30am-12:15pm, Mandalay Bay North, South Pacific Ballroom A 45 45
  • 46. Notices and Disclaimers 46 Copyright © 2016 by International Business Machines Corporation (IBM). No part of this document may be reproduced or transmitted in any form without written permission from IBM. U.S. Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM. Information in these presentations (including information relating to products that have not yet been announced by IBM) has been reviewed for accuracy as of the date of initial publication and could include unintentional technical or typographical errors. IBM shall have no responsibility to update this information. THIS DOCUMENT IS DISTRIBUTED "AS IS" WITHOUT ANY WARRANTY, EITHER EXPRESS OR IMPLIED. IN NO EVENT SHALL IBM BE LIABLE FOR ANY DAMAGE ARISING FROM THE USE OF THIS INFORMATION, INCLUDING BUT NOT LIMITED TO, LOSS OF DATA, BUSINESS INTERRUPTION, LOSS OF PROFIT OR LOSS OF OPPORTUNITY. IBM products and services are warranted according to the terms and conditions of the agreements under which they are provided. Any statements regarding IBM's future direction, intent or product plans are subject to change or withdrawal without notice. Performance data contained herein was generally obtained in a controlled, isolated environments. Customer examples are presented as illustrations of how those customers have used IBM products and the results they may have achieved. Actual performance, cost, savings or other results in other operating environments may vary. References in this document to IBM products, programs, or services does not imply that IBM intends to make such products, programs or services available in all countries in which IBM operates or does business. Workshops, sessions and associated materials may have been prepared by independent session speakers, and do not necessarily reflect the views of IBM. All materials and discussions are provided for informational purposes only, and are neither intended to, nor shall constitute legal or other guidance or advice to any individual participant or their specific situation. It is the customer’s responsibility to insure its own compliance with legal requirements and to obtain advice of competent legal counsel as to the identification and interpretation of any relevant laws and regulatory requirements that may affect the customer’s business and any actions the customer may need to take to comply with such laws. IBM does not provide legal advice or represent or warrant that its services or products will ensure that the customer is in compliance with any law
  • 47. Notices and Disclaimers Con’t. 47 Information concerning non-IBM products was obtained from the suppliers of those products, their published announcements or other publicly available sources. IBM has not tested those products in connection with this publication and cannot confirm the accuracy of performance, compatibility or any other claims related to non-IBM products. Questions on the capabilities of non-IBM products should be addressed to the suppliers of those products. IBM does not warrant the quality of any third-party products, or the ability of any such third-party products to interoperate with IBM’s products. IBM EXPRESSLY DISCLAIMS ALL WARRANTIES, EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. The provision of the information contained h erein is not intended to, and does not, grant any right or license under any IBM patents, copyrights, trademarks or other intellectual property right. IBM, the IBM logo, ibm.com, Aspera®, Bluemix, Blueworks Live, CICS, Clearcase, Cognos®, DOORS®, Emptoris®, Enterprise Document Management System™, FASP®, FileNet®, Global Business Services ®, Global Technology Services ®, IBM ExperienceOne™, IBM SmartCloud®, IBM Social Business®, Information on Demand, ILOG, Maximo®, MQIntegrator®, MQSeries®, Netcool®, OMEGAMON, OpenPower, PureAnalytics™, PureApplication®, pureCluster™, PureCoverage®, PureData®, PureExperience®, PureFlex®, pureQuery®, pureScale®, PureSystems®, QRadar®, Rational®, Rhapsody®, Smarter Commerce®, SoDA, SPSS, Sterling Commerce®, StoredIQ, Tealeaf®, Tivoli®, Trusteer®, Unica®, urban{code}®, Watson, WebSphere®, Worklight®, X-Force® and System z® Z/OS, are trademarks of International Business Machines Corporation, registered in many jurisdictions worldwide. Other product and service names might be trademarks of IBM or other companies. A current list of IBM trademarks is available on the Web at "Copyright and trademark information" at: www.ibm.com/legal/copytrade.shtml.
  • 48. Thank You Your Feedback is Important! Access the InterConnect 2016 Conference Attendee Portal to complete your session surveys from your smartphone, laptop or conference kiosk.
  • 50. Differences in Column Types •  Mapping fields to columns •  Example: java.lang.String fields •  OpenJPA: VARCHAR(254) •  EclipseLink: VARCHAR(255) •  Mostly non-problematic •  Exception: java.util.Locale fields •  OpenJPA: VARCHAR(254) •  EclipseLink: BLOB(64000) •  Solution •  Use a type converter (introduced in JPA 2.1) •  BLOB (object) ↔ VARCHAR (database) 50