EasyBeans is an open-source Enterprise Java Beans (EJB) container hosted by the OW2 consortium. The License used by EasyBeans is the LGPL.
EasyBeans main goal is to ease the development of Enterprise Java Beans. It uses some new architecture design like the bytecode injection (with ASM ObjectWeb tool), IoC, POJO and can be embedded in OSGi bundles or other frameworks (Spring, Eclipse plugins, etc.).
It aims to provide an EJB3 container as specified in the Java Platform Enterprise Edition (Java EE) in its fifth version. It means that Session beans (Stateless or Stateful), Message Driven Beans (MDB) are available on EasyBeans.
The new persistence layer used by EJB 3.0 is now called Java Persistence API (or JPA). It replaces the CMP (Container Managed Persistence) model used by EJB 2.x. The default persistence provider used in EasyBeans is Hibernate Entity Manager or Apache OpenJPA but other JPA providers have been tested like for example Oracle TopLink Essentials.
MINA is a simple yet full-featured network application framework which provides:
* Unified API for various transport types:
o TCP/IP & UDP/IP via Java NIO
o Serial communication (RS232) via RXTX
o In-VM pipe communication
o You can implement your own!
* Filter interface as an extension point; similar to Servlet filters
* Low-level and high-level API:
o Low-level: uses ByteBuffers
o High-level: uses user-defined message objects and codecs
* Highly customizable thread model:
o Single thread
o One thread pool
o More than one thread pools (i.e. SEDA)
* Out-of-the-box SSL · TLS · StartTLS support using Java 5 SSLEngine
* Overload shielding & traffic throttling
* Unit testability using mock objects
* JMX managability
* Stream-based I/O support via StreamIoHandler
* Integration with well known containers such as PicoContainer and Spring
* Smooth migration from Netty, an ancestor of Apache MINA.
AtUnit minimizes boilerplate code in unit tests and guides test development by enforcing good practices.
* mark exactly one field with @Unit to indicate the object under test.
* mark fields with @Mock or @Stub to obtain mock objects
* inject your tests, and your test subjects, using your favorite IoC container
Mock Objects Integration
AtUnit integrates with JMock or EasyMock to provide mock objects:
* obtain a JMock context simply by declaring a field
* annotate fields with @Mock to obtain JMock or EasyMock mock objects
* annotate fields with @Stub to obtain a JMock or EasyMock stub object
... or you can use your own mock objects plug-in with two easy steps:
* implement the MockFramework interface
* annotate your tests with @MockFrameworkClass(MyMockFramework.class)
Container Integration
AtUnit integrates with Guice or Spring to take all of the work out of dependency-injected tests.
With Guice:
* never see the Injector, never write bootstrapping boilerplate!
* @Inject test class fields without even defining a Module
* declaratively obtain mock objects with @Inject @Mock
* if you need more binding flexibility, simply have your test class implement Module
With Spring:
* annotate fields with @Bean to get them from the Spring context
* fields annotated with @Bean which do not appear in your Spring context are added to it automatically! (This includes @Mock and @Stub fields.)
* AtUnit looks for a Spring XML file with the same name as your test, or you can specify the location yourself with @Context("filename")
* Most of the time, you don't even need a Spring XML file!
You can easily plug in other containers in two steps:
* implement the Container interface
* annotate your tests with @ContainerClass(MyContainer.class)
A common requirement in developing enterprise applications is to ensure audit logs are available for data security and traceability–who made the changes, when they were made, and what files or sections were changed. This requirement is not only dictated by corporate IT policies, but also required by government laws. Considering that most enterprise applications have at least 50 domain objects, implementing audit logs on each of them can be time-consuming. So, a generic solution must be established to minimize coding when creating audit logs.
About
AutoDAO is a Generic DAO on steroids implementation for Java.
This project was inspired by Don't repeat the DAO! article by Per Mellqvist.
Main features
* Ready to use CRUD operations
* Zero persistence code for common DAO queries
* Annotation-driven auto-configuration
* Spring Framework custom namespace for easy to use configuration
* Hibernate/JPA support
Beet records user behavior and performance data for your Spring-based Java application. It can thus help you to analyze usage patterns and research production performance issues. Beet requires Spring framework 2.0 and the Quartz Scheduler.
Visit the Downloads page to grab a copy, and then read the Quick Start chapter of the User Guide to enable it in your application.
Beet is freely available to use under the terms of the Mozilla Public License, v1.1. It was developed and is maintained by Mantis Technology Group, Inc.
Features
* Record Java method calls, SQL statements, and HTTP requests, or add your own events
* Simple configuration, zero code modification required
* Know immediately which user and session caused each event and when
* JMX administration and diagnostic tools
* Record data as XML, compressed binary XML, directly to an RDBMS, or write your own storage
* Flexible ETL and log manipulation tools for compressed binary XML
* Low resource overhead, appropriate for production systems
Many enterprise business applications have such requirements that they should log their users' operations; who performs and when, records that are inserted into, deleted from database, or are changed during those operations, with a meaningful description about current state of those records. Hibernate already provides an interceptor mechanism at SessionFactory level. Hibernate fires events indicating new records are inserted, old ones are deleted, detection of updates, and other events related with transaction status, session flush etc. By that way one can easily track changes on persistent entities in his application.
Basically, its an RDF-based web annotations system.
Three JISC-funded projects have a requirement to allow people to annotate events and other things. The projects are:
* Collaborative Research on the Web (CREW) - University of Bristol and University of Manchester
* Semantic Tools for Screen Arts Research (STARS) - University of Bristol
* Integration Project (CIP) - University of Bristol
The Caboto project was setup to create a collaborative effort to fulfill the requirements of CREW, STARS and CIP.
The requirements from the JISC projects:
* CREW Events Requirements
* CIP Requirements
* STARS Requirements
The project is in the early stages but its is possible to obtain and run the project:
With the addition of generics in Java 5, writing a custom DAO for each domain object is no longer required. There are a wide variety of articles on creating generic DAOs, but my current project uses the approach from this IBM DeveloperWorks article. This approach was choses mainly because of the clearly written article and the integration with Spring. You should be able to extend any generic DAO based on Spring to implement the stored procedure configuration.
Chariot Solutions is a software development and consulting firm focused on helping clients achieve greater success through the intelligent application of established and emerging technologies. Emphasizing the use of agile architectures based upon open standards, we deliver solutions that allow clients to react more quickly to competitive pressures and market opportunities.
Post in the Spring Forum:
"
The following is a solution to the circular dependency issue. It's especially useful when you have 3 or more services locked in a circular dependency. The solution involves breaking the circular dependency and instead using a custom injector to inject the dependency. This is achieved by using a BeanPostProcessor and some custom Annotations.
"
Spring out of the box provides little support for loading property attributes based on environments and/or server contexts. Many projects work around this by creating custom ant builds. With Configleon you can build one war file that can be deployed to every location.
Configleon really shines is in it's ability to cascade the property attributes. This allows the common attributes to be defined in a global file and then overridden at the environment and server context.
If we consider the development of a web application, it typically starts in a local environment. The application will then be deployed to various environments including dev, qa, test, and production. Within a given environment, you may be deploying the same application to different server contexts.
For example, say we are deploying the JMesa example web application to the test environment. But we also have two different versions of the application. One is deployed to mycompany.com/jmesa and the other is deployed to mycompany.com/jmesa2. In this example that same war file can use different properties based on both environment and context. In this example, the environment is test and the server context is jmesa and jmesa2.
As also described in the Hibernate book from King and Bauer: "With the adoption of Java™ 5 generics, the idea of a generic typesafe Data Access Object (DAO) implementation has become feasible. In this article, system architect Per Mellqvist presents a generic DAO implementation class based on Hibernate. He then shows you how to use Spring AOP introductions to add a typesafe interface to the class for query execution."
Thought I've bookmarked this a long time ago... "With the adoption of Java™ 5 generics, the idea of a generic typesafe Data Access Object (DAO) implementation has become feasible. In this article, system architect Per Mellqvist presents a generic DAO implementation class based on Hibernate. He then shows you how to use Spring AOP introductions to add a typesafe interface to the class for query execution."
The Doolin framework allows the rapid development of Swing applications. It uses the Spring framework as a support for its configuration and extensibility.
The Eclipse Persistence Services Project (EclipseLink) project's goal is to provide a complete persistence framework that is both comprehensive and universal. It will run in any Java environment and read and write objects to virtually any type of data source, including relational databases, XML, or EIS systems. EclipseLink will focus on providing leading edge support, including advanced feature extensions, for the dominant persistence standards for each target data source; Java Persistence API (JPA) for relational databases, Java Architecture for XML Binding (JAXB) for XML, J2EE Connector Architecture (JCA) for EIS and other types of legacy systems, and Service Data Objects (SDO).
Business process management (BPM) – while also its own independent practice / school of thought – is an application of technology that is served by many products, not the least of which is jBPM. The best definition of BPM that I've found is: "Business Process Management (BPM) is the concept of shepherding work items through a multi-step process. The items are identified and tracked as they move through each step, with either specified people or applications processing the information. The process flow is determined by process logic and the applications (or processes) play virtually no role in determining where the messages are sent.".
The Firewater Framework lets you create sophisticated REST based web APIs for your Java and Flash/Flex based web applications. Features include:
* Spring based declarative architecture (zero code web services)
* extensible framework
* supports GET, PUT, POST, OPTIONS and DELETE HTTP methods and matches incoming URL patterns
* supports JDBC back-ends with templated SQL mappings
* supports secured web services using Acegi Spring Security
* supports paging, full-text search, sorting and filtering
* flexible cacheing strategy based on OSCache
* custom Spring schema for easy configuration
JSF-Spring-JPA is the popular stack of choice these days, mostly to be used in my consulting and training purposes I’ve created a base project called MovieStore demonstrating the annotation-driven integration of JSF-Spring-JPA. JSF backing beans, spring service level beans and DAO’s are configured and integrated with annotations. Only the core infrastructure like datasource, entityManagerFactory or transactionManager are configured with xml.
The traditional way to integrate JSF and Spring was to define JSF beans in faces-config as managed beans and refer to the spring beans using the managed-property configuration. With the help of the spring’s delegatingvariableresolver the managed property is resolved from spring application context and JSF’s IOC injects the bean to the JSF Managed bean instance. I’ve written an article it about this way before.First approach is modelled as follows