User:Michael.f.obrien.eclipselink.org
bugzilla id: michael.f.obrien(at)eclipselink.org
committer id: mobrien (F. Michael O'Brien)
Location: Ottawa, Canada - Eastern Standard Time
- Committer on Eclipse Persistence Services project - EclipseLink
Profession: Overly enthusiastic and optimistic Enterprise Software Developer
Currently working with CIRA since Jan 2014 after a very good 5 years with Oracle Corporation on their TopLink product and the Eclipse Foundation on their EclipseLink product. Specialized in Application Server Container deployments, JMX and the Metamodel API in the latest JSR-317 JPA 2.0 API RI for the JEE6 specification.
Contents
- 1 References
- 1.1 Misc
- 1.2 EE Tutorial Pages
- 1.3 EclipseLink related Forums
- 1.4 Software References
- 1.5 Hardcover
- 1.6 Experimental
- 1.7 Activity
- 1.8 Specifications
- 1.9 Theory
- 1.10 Links
- 1.11 Log
References
- Michael O'Brien raised bugs/enhancements
- Michael's Currently assigned EclipseLink bugs/Enhancements
- EclipseLink Summit 2010 presentation of the JPA 2.0 Metamodel (Microsoft PPT format)
Misc
- EclipseLink Main | New Bug | 2010 Summit | Oracle Wiki | Eclipse.org Wiki | OTN | Design Docs
- EclipseLink bugs/Target FishEye
EE Tutorial Pages
- Radar Tracking Application | Distributed EE Application Case Study | Application Server EAR Tutorials | JPA 2.0 on WebLogic 10.3.3
- EclipseLink RT : Users : Dev
- Oracle TopLink/JPA : TopLink/EclipseLink : JPA with TL/EL : WebLogic Server - EJB : GlassFish : OTN TopLink/EclipseLink
Software References
- 20110301 Java 6 update 24 SDK has an compilation issue with certain parameterized generics that is fixed in update 25
- Oracle WebLogic Server @ Wikipedia
- Terracotta
Hardcover
Experimental
- Any EclipseLink Bugs or Enhancements I am currently working on can be viewed on my LED display board on my cubicle wall - In case I forget over the weekend. The bug numbers are automatically downloaded from an eclipse web query every 15 min and downloaded both to the display controller (an 8 core parallel processor - 1 core/line and the 5th core for USB comms) and a server-side Derby database via an EclipseLink JPA based SE network application.
Activity
Official
Indirectly/Adjacent/Followup/Assist
- eclipselink-users persistence.xml in standalone app and enterprise beans
- OTN forum post JPA delete involving @PrivateOwned, CascadeType, orphanRemoval
- TopLink/EclipseLink forum posts on OpenJPA 2140287 JPA 2.0 2150419 DDL generation
- eclipselink-users PDE/OSGI dependency issue with ANTLR in 333320
- Concurrency.acquire() hangs when toString() is overriden to print a lazy IndirectList with 3+ elements where the @OneToMany is LAZY and the owning side of the bidirectional relationship @ManyToOne is EAGER - Also verify not related to 312110 or 312462
- Expand on 3 scenarios for EclipseLink logging on WebLogic in http://wiki.eclipse.org/EclipseLink/Examples/JPA/Logging#Server_Logging
- Respond to 1 2 posts and expand WebLogic JPA 2.0 tutorial wikis for 310849
- Take care of updating all pending Oracle WebLogic 10.3.4 11gR1 PS3 outstanding code issues, tutorial content, bugs, wiki pages and newsgroup items that were on hold until WebLogic 10.3.4 released on 20110115
- Respond to SpringSource serialization issue with EclipseLink in http://forum.springsource.org/archive/index.php/t-59443.html
Interest
- http://dev.eclipse.org/mhonarc/lists/eclipselink-users/msg05724.html
- 333602: Amazon Elastic Compute Cloud ECC AMS instances running EclipseLink JPA as the ORM layer
- http://en.wikipedia.org/wiki/Technical_debt
- This UML diagram represents a portion of the internal and external classes and interface hierarchy of the EclipseLink 2.0 API (specifically JPA 2.0 Metamodel classes)UML Source : Microsoft Visio 2000 VSD format hosted on the Amazon S3 cloud
Dynamic Persistence
Architecture Aware Computing
SaaS | PaaS | IaaS
- EclipseLink MultiTenancy | Extensibility - Reviewing from Tom
Concurrency Issues
UnOfficial
- Investigate EJB 3.x equivalent to cascade=CascadeType.SAVE_UPDATE? Is MERGE better than PERSIST? - see https://forum.hibernate.org/viewtopic.php?f=9&t=963665&start=0 and http://forum.springsource.org/showthread.php?t=85108
- How can we use @PrivateOwned - discussed this with Guy - we need to managed the non-defaults for all CascadeType=, @OrphanRemoval=false and the opposite @PrivateOwned=false
- Then respond to http://forums.oracle.com/forums/thread.jspa?threadID=2152045&tstart=0
- What exactly are the differences between @EmbeddedId and @IdClass?
Deferred but Very Important
- I would like to get some scheduled time to finally resolve the remaining workarounds for WebLogic 10.3.3.0 and JPA 2.0 for EclipseLink, Hibernate and Spring in http://wiki.eclipse.org/EclipseLink/Development/JPA_2.0/weblogic#TODO
Pending
Raised
Bugs and Enhancements I am interested in
- The following have my interest, I may or may not be involved in the solution, or I may have the issue myself. Usually I add myself to the CC list on the Bug or ER.
- 336596: java.util.NoSuchElementException when using @ElementCollection for enum in Embeddable
- 336599: EclipseLink2.1.2: metadata processing: use of custom property annotaton causes: "Mapping annotations cannot be applied to fields or properties that have a @Transient specified."
Experimental
- 20110209: Distributed JPA application using multiple SE clients connected to a single EE server using various EJB/RMI, JMS, JAX-RS and WebServices technologies. Use this distributed framework to hammer the JTA container managed persistence context and observe how it handles concurrency contention.
- Concurrency
- Thread safety
- Mixed JSF/Spring/AJAX/EJB framework artifacts
- Hibernate JPA and WebLogic
To Review
- Extensibility - Dynamic Data Model (required before implementing Multi-Tenancy
- Multi-Tenancy or SaaS Features and eventually PaaS aka EC2 a quick google search will come up with Analysis work done by Frederick Chong, Gianpaolo Carraro, Roger Wolter and Paul Henry at Microsoft in 2006
- 2008 http://www.oracle.com/technetwork/articles/entarch/spring-096279.html
- 2006 http://www.oracle.com/technetwork/articles/entarch/jpa-spring-medrec-091875.html
Statistics
- https://fisheye2.atlassian.com/changelog/eclipselink
- http://svnsearch.org/svnsearch/repos/ECLIPSELINK/search
- http://svnsearch.org/svnsearch/repos/ECLIPSELINK/search?view=graph
Specifications
- JEE6 WebProfile subset of EE specifications
- JSR 315: Java Servlet 3.0
- JSR 314: JavaServer Faces (JSF) 2.0
- JSR 245: JavaServer Pages 2.2 and Expression Language (EL) 1.2
- JSR 52: A Standard Tag Library for JavaServer Pages 1.2
- JSR-45: Debugging Support for Other Languages 1.0
- JSR 317: Java Persistence API 2.0
- Traditional EJB container APIs now available to the Web container
- JSR 299: Contexts and Dependency Injection for the Java EE Platform 1.0
- JSR 330: Dependency Injection for Java
- JSR 318: Enterprise JavaBeans 3.1 (EJB Lite)
- JSR 250: Common Annotations for the Java Platform 1.1
- JSR 907: Java Transaction API (JTA) 1.1
- JSR 303: Bean Validation 1.0
- Of note is the new support for JTA, EJB 3.1 and CDI/DI for any pojo in the WAR along with JSR-303 which consolidates bean validation across the tiers and moves it up into the business layer from the presentation layer
- Note that JAX-RS 1.1 and the rest of the WebServices API's are not in Web Profile - they are still accessible via the EJB container We will need to see how we work as a container managed persistence unit in this new environment.
- JEE6 Full Specification that includes above WebProfile subset
- JSR 322: Java EE Connector Architecture 1.6
- JSR 914: Java Message Service (JMS) API 1.1
- JSR 919: JavaMail 1.4
- JSR 311: JAX-RS: The Java API for RESTful Web Services 1.1
- JSR 109: Implementing Enterprise Web Services 1.3
- JSR 224: Java API for XML-Based Web Services (JAX-WS) 2.2
- JSR 222: Java Architecture for XML Binding (JAXB) 2.2
- JSR 181: Web Services Metadata for the Java Platform
- JSR 67: Java APIs for XML Messaging 1.3
- JSR 196: Java Authentication Service Provider Interface for Containers 1.0
- JSR 115: Java Authorization Contract for Containers 1.3
- JSR 77: J2EE Management 1.1
- of note is the new JAX-RS 1.1 support for the REST pattern of get/post/put/delete URI's and the proposed JEE7 JSR-339 for JAX-RS 2.0
- Likely to be Optional or deprecated in JEE7 - see bug# 338610 for JSR-338
- JSR 101: Java APIs for XML based RPC 1.1
- JSR 93: Java API for XML Registries 1.0 (JAXR) 1.0
- JSR 153: Enterprise JavaBeans 2.0, and earlier
- JSR 88: Java EE Application Deployment 1.2
Theory
Links
- Personal technical web content entry point for F. Michael O'Brien
- Technology links mostly of interest to self.
- http://java.sun.com/developer/technicalArticles/JavaEE/JavaEE6Overview_Part3.html (The examples on the Java EE 6 main JAX-RS page do not compile - change Get to GET, Post to Post and replace the space between core UriInfo' with core.UriInfo)
- Collatz http://lanzkron.wordpress.com/2010/06/02/optimizing-collatz-for-klutzes/
- http://www.research.att.com/~njas/doc/shannon1948.pdf
- Machine Architecture - Herb Sutter Google Video | slides
- Scala|Scala WP
- http://people.csail.mit.edu/unamay/index.html
- http://blog.eisele.net/2011/02/high-performance-jpa-with-glassfish-and.html
- http://web.cecs.pdx.edu/~mm/index.html
- http://jaxlondon.com/2011s/trackssessions/?l=en&id=8&tid=1951
- http://ei.cs.vt.edu/~history/VonNeumann.html
- http://www-cs-faculty.stanford.edu/~knuth/
- http://www-robotics.usc.edu/~maja/
- Wolfram Computational Knowledge Engine online
- http://cse.ucdavis.edu/~chaos/
- http://www.cs.unm.edu/~forrest/
Log
- 20101231:3188
- 20100908: rewrite started at hit 2620
- Everybody would like to optimize computations in their spare time - but using all available capacity of your servers is not an easy thing to do. Don't let let your multicore processor sit idle or use a small percentage of it's potential - use threads and push your processor to it's limit of parallel computation and use of electrical resources. Pass this very interesting graphic to all your Java, C++, C, Assembly and even Smalltalk friends. Don't worry about locking, deadlock, thread contention, thread scheduling, finished threads waiting on slower threads, data corruption, queuing, synchronization, concurrency issues, data parallel work distribution/merging, heat dissipation, and electicity usage - as everything can be solved.