• About this blog

    This blog features updates, opinions, and technical notes from Caucho engineers about Caucho products, the enterprise Java industry, and PHP. Caucho Technology is the creator of the Resin Application Server and the Quercus PHP in Java engine. A leader in Java performance since 1998, Caucho is a Sun JavaEE licensee with over 9000 customers worldwide.
  • Follow Caucho on Twitter

    • Just now getting caught up from Jazoon last week, but heading to NYC soon for customer meetings... 2009/07/01
    • Nice chat with Bela Ban of JGroups, the technology behind JBossCache. Lots of interesting points from a fellow dist cache implementer. 2009/06/24
    • Exadel Flamingo supports Hessian for Flash! Live demo here: http://bit.ly/MZiwQ 2009/06/24
  • Tags

    ajaxworld apache bam candi cloud cluster comet deploy devoxx eclipse embedded facebook flash flex google app engine hessian hmtp ioc javaone javazone jms marakana messaging mule newsletter nyjug osgi php phplist pomegranate quercus remoting resin resin 4.0 robots sfjug silicon valley code camp tomcat training triad tssjs watchdog webbeans wordcamp wordpress
  • Meta

    • Register
    • Log in
    • Entries RSS
    • Comments RSS
    • WordPress.org

Quercus compilation available for Tomcat in 4.0.1

July 2nd, 2009 by nam

For version 4.0.1, we have added Quercus compilation support for other application servers including Tomcat, where before the interpreted mode was only available. The compiled mode is significantly faster than the interpreted mode (though the interpreted is still quite speedy compared to PHP on Apache). Quercus compilation will also work on Google App Engine, but there’s a requisite that files be pre-compiled.

Read the rest of this entry »

Tags: compilation, google app engine, php, quercus, tomcat
Posted in Announcements, Evangelism | No Comments »

Why OSGi is cool, but not for most enterprise apps…

June 15th, 2009 by emil

There’s been a lot of hype around OSGi over the last year or two in the enterprise space. Last year even Caucho dallied with adding OSGi support to Resin, though we’ve abandoned the idea in the meantime. In this post, I’ll tell you what’s cool about OSGi, why we were initially attracted to it, why we eventually dropped it, and what we did instead. The more I talk to enterprise developers who’ve actually used OSGi, the more I hear this same story.
Read the rest of this entry »

Tags: osgi, pomegranate
Posted in Engineering | 5 Comments »

CanDI (JSR-299) binding pattern tutorial

June 15th, 2009 by ferg

I’ve put together a CanDI binding pattern tutorial (pdf) for four major binding patterns: services, resources, startup, and plugin/extensions.

Focusing on common CanDI patterns should show how CanDI is used in full applications like SubEtha maillist manager, and avoid the temptation to focus on complicated features that only 1% of applications would ever need.

In the tutorial, the key CanDI classes are:

  • @Current - the service and unique bean binding annotation.
  • @BindingType - the resource custom binding annotation used for declarative injection.
  • Instance<T> - the extension/plugin iterator and programmatic bean factor.
  • @Any - the special annotation for extension/plugin matching of any registered beans

Tags: candi, jsr-299, tutorial
Posted in Engineering | 4 Comments »

JSR-299 (CanDI) Proposed Final Draft

June 11th, 2009 by ferg

Gavin King’s announcement is on his wiki.

Although the external annotations and classes are pretty similar (except for a major package change), the internal SPI has changed radically, so it’s quite a bit of work for me to keep up. A version based on for Resin 4.0.1 should be possible, though.

Posted in Engineering | No Comments »

pomegranate modules

June 10th, 2009 by ferg

As a quick introduction to pomegranate (I’m crushed for time today), here’s a quick diagram that shows the basic module structure for a typical pomegranate configuration.

Pomegranate is designed to solve the module versioning and classloader issues from an enterprise-application perspective. Although we’re doing a bit of classloader magic behind the scenes, the developer perspective is fairly simple and clean:

  1. remove jars from your .war
  2. drop them in Resin’s project-jars directory
  3. declare jar dependencies in Maven .pom files
  4. import them to your web-app with WEB-INF/pom.xml or in your resin-web.xml

Pomegranate resolves the module versions, and builds a classloader graph for the web-app. The module graph looks like the following:

pomegranate module usage

Tags: module, osgi, pomegranate
Posted in Engineering | 1 Comment »

Java CanDI Injection in subetha

June 8th, 2009 by ferg

Studying the source code for a full application is the best way to really understand a technology like Java Injection (CanDI, JSR-299). Fortunately, Jeff Schnitzer, Scott Hernandez, and Jon Stevens have created a subetha mail, an open-source Java implementation of a mail list manager (like mailman) using CanDI extensively. Because subetha is also a sophisticated JavaEE application using EJB @Stateless beans, JMS queues with EJB @MessageDriven beans, servlets, and Hessian remote services, it’s a great overall application to study.

Read the rest of this entry »

Tags: candi, ejb, resin
Posted in Engineering | No Comments »

Subetha on CanDI

June 5th, 2009 by ferg

The subetha mail list management system has just been released, using CanDI.

Since it’s open source, I’ve downloaded the source and starting to look at how CanDI is used in the real world.

Posted in Community | No Comments »

JavaOne Wrap up

June 4th, 2009 by emil

There’s still one more day of sessions left at JavaOne, but the Pavilion with all the booths is now closed, so I thought I’d give my impressions of some of what we saw from the booth. Almost all of the Caucho staff was at the booth at some point and because the company is mostly composed of engineers, we were able to have a lot of useful technical discussions there. These are some of the hot topics that people wanted to talk about:
Read the rest of this entry »

Tags: javaone
Posted in Industry | No Comments »

Quercus on Google App Engine

May 31st, 2009 by nam

quercusplusequalsheart-large

Ever since Google App Engine (GAE) supported Java, it has opened a slew of other languages that GAE indirectly and unofficially supports. PHP is one of them through Quercus, our 100% Java clean-room implementation of the PHP language.

Read the rest of this entry »

Tags: google app engine, google datastore, jpa, mysql, php, quercus, wordpress
Posted in Engineering | 6 Comments »

Quercus/GAE at Google I/O x2, with a cool new demo!

May 22nd, 2009 by emil

The nice folks organizing the Google I/O conference have given us an extra day to demo Quercus on the App Engine, so Nam and I’ll be there both Wednesday (12-6pm) and Thursday (12-4:45). It’s perfect timing too, because Nam has just finished an incredible demo that goes way beyond my meager efforts. He’ll be writing up a blog post about it soon, so I’ll have to just leave you in suspense until then… :-)

Tags: google app engine, quercus
Posted in Announcements | 2 Comments »

« Older Entries

Caucho Technology is proudly powered by WordPress and Quercus®
Entries (RSS) and Comments (RSS).