JPA, Hibernate, EJB3 and TopLink quick diagram

22 January 2008

I searched some UML diagram on JPA, Hibernate, toplink, openJPA and EJB3 to get a quick understanding on how they are related to each other. I think that I have a good understanding now, but I found some confusing comparisons along the way.

The best I have found so far is : Java Persistence, implementations, and Java EE servers.

So I bring my own here, take it as a work in progress, open to criticisms : JPA UML Diagram

Note : I used UMLet and examples.

I think that I will add the servers deployment view.

So here is the version 2, a bit more cluttered :jpa1.jpg

Fedora 8 and Java

15 January 2008

Some more informations on Fedora 8 and Java. A new hard drive was a good excuse to do a fresh Fedora install. Even with a fresh install, I had to remove all the i386 package (I have a x86_64 : no need to duplicate all package, this is a known problem of Fedora) and legacy gcj stuff.

I installed Java 7 since it is the future. But since it doesn’t have the crypto features yet, and since they are required for Glassfish, I installed the SUN JDK 6 as well.

So informations are bit misleading on the topic. Here is what I like to do :

Install jpackage-utils, then SUN JDK 6 RPM, then JPackage -compat package for the SUN rpm : java-1.6.0-sun-compat-

Manage the Java 6 / 7 switch with galternatives or (command line alternatives)

Remember Java 7 IcedTea install tips :

Mauriat Miranda tips and added the JDK as well (-devel) : sudo yum install java-1.7.0-icedtea java-1.7.0-icedtea-devel java-1.7.0-icedtea-plugin

I tested as per Gregory Gulick’s tips and it was OK.

Maven dependencies an Glassfish

12 December 2007

I am a bit new to Maven2 but it seems like I am not the only one to have problems with dependencies. Looks like stuff related to Sun Application Server (now Glassfish) and the Webservice Stack (now Glassfish Metro) has changed and the repositories moved.

References :

Spaces, shards, scalability through horizontal partitioning

21 November 2007

I just read some GigaSpaces White Paper and application examples.

They sort of applied the database horizontal partitioning (or “Shards”) paradigm  to the application server.

But they tend to alleviate the inherent problem of designing “completely self-sufficient” units. Their example is completely obvious, but in real life partitioning isn’t straightforward !

Web frameworks peaking toward obsolescence ?

20 November 2007

More than a shocking title, there is an interesting debate : See Raible Design.

InfoQ asks Does the rise of Service Oriented UI (SOUI) means the death of server-assisted MVC? A similar thread was started on JavaLobby last week: Web frameworks peaking toward obsolescence. A month ago, TSS posted a whitepaper titled Life above the Service Tier.

I will take the time to read all this !

PHP and JAVA, PHP on JAVA : Quercus

16 July 2007

Sun should have done this a long time ago, but Caucho did it : Quercus !

I quote :

100% Java implementation of PHP 5 released under the Open Source GPL license. Quercus comes with many PHP modules and extensions like PDF, PDO, MySQL, and JSON. Quercus allows for tight integration of Java services with PHP scripts, so using PHP with JMS or Grails is a quick and painless endeavor.

With Quercus, PHP applications automatically take advantage of Java application server features just as connection pooling and clustered sessions.

Quercus implements PHP 5 and a growing list of PHP extensions including APC, iconv, GD, gettext, JSON, MySQL, Oracle, PDF, and Postgres. Many popular PHP application will run as well as, if not better, than the standard PHP interpreter straight out of the box. The growing list of PHP software certified running on Quercus includes DokuWiki, Drupal, Gallery2, Joomla, Mambo, Mantis, MediaWiki, Phorum, phpBB, phpMyAdmin, PHP-Nuke, WordPress and XOOPS.

Quercus presents a new mixed Java/PHP approach to web applications and services where Java and PHP tightly integrate with each other. PHP applications can choose to use Java libraries and technologies like JMS, EJB, SOA frameworks, Hibernate, and Spring. This revolutionary capability is made possible because 1) PHP code is interpreted/compiled into Java and 2) Quercus and its libraries are written entirely in Java. This architecture allows PHP applications and Java libraries to talk directly with one another at the program level. To facilitate this new Java/PHP architecture, Quercus provides and API and interface to expose Java libraries to PHP.

The Quercus .war file can be run on Java application servers such as Glassfish, i.e. it can be run outside of Resin. This .war file includes the Quercus interpreter and the PHP libraries.

Just a few remarks : it is a .war file that can run on other application servers than Resin, this is great ! Some of the features described are only available in the “professional” non-free version of the Resin Server.

Eclipse PHP debug

16 July 2007

There are 2 plugins to do PHP development in Eclipse (obviously they are incompatible) they both should work with Eclipse 3.3 Europa.
They have almost the same features. PDT gets my preference.

There are 3 differents debug engines : DBG, xdebug and Zend_Debug (close source).

  • XDebug
    There are two different protocols to communicate with the debugger: the old GDB-like command protocol (GDB) which is implemented in Xdebug 1.3 and 2; and the DBGp protocol which is implemented in Xdebug 2.
  • DBG is a full-featured PHP Debugger and Profiler.

Profiling client KCachegrind can read XDebug Profiling files.