Studs MVC Framework+ contains a port of Apache's Jakarta Struts to PHP, though the libraries included in the rest of the project are much more vast. In order to implement the Struts port, it was necessary to build a core, object-oriented API in the style of the JDK and the Jakarta Commons, a servlet container to handle HTTP requests and to invoke servlet classes, and finally, a parsing engine for JSP-style template pages. In the end, the result is an environment which is very similar to that provided by a J2EE Web Container, only everything is implemented in PHP. While it was possible to carry over many of the concepts, designs and mechanisms from J2EE, some limitations do exist due to the nature of the PHP programming language, such as the lack of checked exceptions (runtime only).
Google Gadgets for Linux provides a platform for running Google Gadgets under Linux, catering to the unique needs of Linux users. It's compatible with the gadgets written for Google Desktop for Windows as well as the Universal Gadgets on iGoogle. There are two main components to the application: one is a common gadget library responsible for running and presenting a gadget, and the other is a host program that allows the user to choose gadgets and run them on the desktop. Currently it has hosts written for GTK+ and Qt, with the GTK+ host offering a sidebar similiar to that of Google Desktop for Windows.
jmemcached is a fast network available cache daemon. It is protocol-compatible with memcached, but written in Java and suitable for applications with portability concerns, where Java is the preferred solution, or for using the memcached protocol in embedded applications with alternate storage engines. Existing clients for memcache work unmodified. It can run as a standalone daemon or be embedded inside an existing Java application.
VRaptor 2 is a Web-based MVC and IOC framework based on many frameworks and ideas (Seam, Stripes, Webwork, Hibernate Annotations, etc). It makes full use of Java 5 Annotations. It favors convention over configuration, because configuration in XML/properties/annotations is always easy to make mistakes and repetitive (aka copy and paste in many places). This framework uses a more imperative approach, instead of having many XML files to configure lifecycle and other properties. Most of the settings go inside plain Java objects (POJO), so the team knows exactly what is going on and where.