We have used Spring Roo in a web project and show how we generated an early prototype and transistioned to early development and then to production code.
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.
The Doolin framework allows the rapid development of Swing applications. It uses the Spring framework as a support for its configuration and extensibility.
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.
The point of "Graham Hacking Scala" is to share with you my knowledge of and experience with the Scala programming language. The blog will contain everything from introductions to basic features through to in-depth analysis of complex techniques and problems. When I make mistakes, you will learn from my mistakes. When I discover cool features, you will learn about them, too.
Cloud Tools is a set of tools for deploying, managing and testing Java EE applications on Amazon's Elastic Computing Cloud (EC2) and VMware environments. There are three main parts to Cloud Tools:
* EC2Deploy - the core framework. This framework manages virtual instances (e.g. EC2), configures MySQL, Tomcat, Terracotta and Apache and deploys the application. See this blog entry for an overview.
* Maven and Grails plugins that use EC2Deploy to deploy an application
* Amazon Machine Images (AMIs) that are configured to run Tomcat and work with EC2Deploy. See list of installed software.
Spring Social is an extension of the Spring Framework to enable the development of social-ready applications. With Spring Social you can create applications that interact with various social networking sites such as Twitter, Facebook, LinkedIn, and TripIt, giving the users of your application a more personal experience.
The main features of Spring Social include:
* A set of social network templates for interacting with Twitter, Facebook, LinkedIn, TripIt, and Greenhouse.
* An OAuth-aware request factory for signing RestTemplate requests with OAuth authorization details.
* A web argument resolver for extracting Facebook user ID and access token information in a Spring MVC controller.
Very nice Spring-Intro! Worth to become part of the official documentation.
"To start off with my new (Enterprise) Java Development Blog here on StSMedia.net I would like to gradually develop a sample application which demonstrates various aspects of the Spring framework and some of its related projects and products."
Spring Crypto Utils aims to provide a wrapper around Java's native cryptography API so that configuration of key stores, public and private keys, signers, message digesters, symmetric and asymmetric cipherers can be easily done via the Spring context configuration.
# Proxy Abstract Services and dynamic composition: create services using abstract classes and annotations without providing any implementation.
# Annotation inheritance, create your customs annotations from the corea annotations.
# Compose your service workflows graphically using the jBPM native support.
# Implement services using Java or Ruby.
# 100% Annotation based configuration (plus .properties files for externalization).
# Can be used as a standalone container, in a web environment or integrated with other containers.
# Spring native support (Spring/Spring MVC).
# Testing support integrated within the framework using static Assert classes.
# Monitor and manage the services through JMX (status, start, stop...).
# Spring native support (Spring/Spring MVC).
# Maven plugin.
# Several embedded services are provided out of the box and ready to use.
Here comes what a lot of people were waiting for: "Spring Roo provides interactive, lightweight, user customizable tooling that enables rapid delivery of high performance enterprise Java applications. Click here to access the latest Spring Roo resources, including downloads, forum, Subversion, Jira, Fisheye, Twitter feeds, documentation etc."
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
Impala 1.0M5 introduces a number of API and configuration improvements, making the framework easier to configure and extend, and usable in a wider range of environments. Following 1.0M5, only minor changes in internal APIs are now expected prior to the 1.0 final release.
The 1.0M5 release makes it much easier to configure Impala-based applications by supporting a property-based configuration. While Impala is still very heavily based on the Spring framework, 1.0M5 now also makes it possible to plug in other runtime frameworks into Impala's dynamic module loading mechanism.
The full list of issues for milestone 1.0M5 is here: http://code.google.com/p/impala/issues/list?q=label:Milestone-Release1.0M5&can=1.
Note that there are a number of package name and configuration changes in this release. If you are upgrading from an earlier release, you will probably wish to check the backward incompatible changes for 1.0M5 and an example migration sequence for this release.
If you're interested in getting involved in the Impala project, please take a look at this page: http://code.google.com/p/impala/wiki/GetInvolved.
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:
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
As you can probably deduce from its name, the purpose of this project is to provide an OAuth implementation for Spring Security . Support is provided for both OAuth provider developers and OAuth consumer developers.
Spring Remoting with Security and SSL
September 30th, 2008 by Mattias Hellborg Arthursson — Security, Spring
Avatar of Mattias Hellborg Arthursson
One of my favorite features of the Spring Framework is the Spring Remoting part, which enables you to expose any bean in a Spring Application Context as a remote service over HTTP. It's fast, it's easy, and it's really, really simple.
Hibernate saveOrUpdate trap for web developers and StaleStateException
Summary: Hibernate users should be aware of saveOrUpdate method if they continue to use the same persistent object even if a transaction failed at some point.
Details:
Suppose you have a persistent object bound to your web(like JSF) views. Entered some data (which will lead to a db ConstraintViolationException) and tried to save it (at your DAO service) by using saveOrUpdate method. As we expected, it will throw a ConstraintViolationException and you'll rollback the transaction.
Then, go back to the entry page, correct the wrong field value at the same object, and try to save it again. You'll get a StaleStateException since saveOrUpdate method assigned identifier values automatically to your new object when you attempt to save it first. Later, when the save operation failed, it didn't roll back your object's state to its initial state. The summary of the flow causing this error is as below;
Granite Data Services (GDS) is a free, open source (LGPL'd) alternative to Adobe® LiveCycle® (Flex™ 2+) Data Services for J2EE application servers. The primary goal of this project is to provide a framework for Flex 2+/EJB 3/Seam/Spring/Guice/POJO application development with full AMF3/RemoteObject benefits.
It also features a Comet-like data push implemention (AMF3 requests sent over HTTP) and ActionScript3 code generation tools (Ant task and Eclipse builder).
Dedicated service factories are available for:
* EJB 3 (session beans that return entity beans),
* Seam (with identity security and conversation/task support),
* Spring (with Acegi security and entity beans support),
* Guice/Warp (with entity beans support),
* Simple Java classes (aka POJO) interactions.
GDS is designed to be lightweight, robust, fast, and highly configurable.
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)
Hibernate Annotations is my preferred way to map my entity classes, since they don't require any external file (thus keeping mapping info in your Java files), is fully integrated with all Hibernate mapping capabilities and Hibernate documentation encourages us to use this kind of configuration because it's more efficient.
Annotation driven mapping in Hibernate uses the standard JPA API annotations and introduce some specific extensions to deal with some Hibernate features. You can find a full reference in the official documentation.
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.
"
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.
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.
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.
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."
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.".
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
Spring AutoMock is a test enabling framework to allow automatic exposure of Mocked beans for a Spring application. Used in conjunction with Spring autowiring of bean dependencies you can develop teired application contexts that represent the architectural tiers of your application, and thus you testing strategy. The simplest example is a separation of service beans and DAO beans into separate xml application contexts so that the services can be fully tested in isolation of the DAOs. The DAO beans are still required by the services typically as an injected property. Spring AutoMock can automatically register a Mock and a proxy of certain beans, so that the Mocks can be injected into your test cases and the matching proxy into the item under test. This reduces the need for repeated Spring test configuration.
Oranjestad Spring is a series of helper classes and extensions for use with the Spring Framework. The current extensions are as follows:
* Spring Lightweight plugins
* External Beans
* Listener Based Dependency Injerction
jSemanticService is a lightweight framework that allows to use Rules and Semantics in Services or Applications using Annotations. Features: jBoss Rules (Drools 4.0) as Business Rules Engine provider. Full support of Annotations, Spring, Flex/Blaze DS.
The framework for agile development of user interfaces with Eclipse RCP. Agile RCP is a Presenter First framework for RCP making use of OSGi services and dependency injection delivered by Spring Dynamic Modules leading to fully unit-testable UIs.
What does it do?
Given an accessible database schema, the Hibernate POJO Generator produces all the Java code necessary to access each field in each table via the Hibernate persistence framework. Additionally, the generator also creates all the necessary helper classes and test units for each component.
Welcome to JaValid
JaValid is an open source framework for validating your Java business objects. JaValid is licensed under the Eclipse Public License 1.0. JaValid 1.1-rc1 is the latest release.
JaValid is an annotation-based validation framework, which allows you to annotate your Java objects to introduce validation. JaValid can be used in any type of Java application (standalone application, web application etc). The framework currently provides full integration with the Spring Framework, Java Server Faces, Facelets, and any database. The framework can be extended easily, by means of extensions, and allows you to add your own validation constraints in addition to the ones shipping with the framework.
The framework is documented well (both the source and the general documentation), so check it out. To learn more, have a look on the documentation page.
The source and distributions are hosted on sourceforge, go to the downloads directly here. You may also want to check out the weblog, which contains some useful information, including several examples.
Have fun using JaValid!
Reverspring is a Java library that allows you to create Spring IoC XML files from POJO at runtime.
CoI stands for Control of Inversion: Reverspring just inverts the inversion of control mechanism of Spring Framework, allowing you to (re)write Spring descriptors starting from your Java objects. With Reverspring you can write process descriptors on XML files without re-inventing a new DTD or XML-Schema, but just using the well known Spring IoC syntax.
Changing Log4j logging levels dynamically
Simple problem and may seem oh-not-so-cool. Make the log4j level dynamically configurable. You should be a able to change from DEBUG to INFO or any of the others. All this in a running application server.
The mock-object testing pattern has commonly been used to test an individual unit of code without testing its dependencies. While this pattern works well for interaction-based testing, it can be overkill for state-based testing. Learn how to streamline your unit-testing using stubs and the pseudo-objects testing pattern.
The Spring Framework's applicability in the context of Swing seems to be underhighlighted, at least when one looks around on the web. What does Spring have to offer in this context? Rather than a highly theoretical discussion, let's look at a complete, compilable example, step by step, and draw our conclusions from there.
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).
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.
# 2840 Spring Portfolio resources classified in several categories...
# Over 400 unique visitors per day to SpringHub.com...
# Thanks to all subscribers to SpringHub.com from all over the world...
The "Clustered Remoting For Spring Framework" (or Cluster4Spring) is alternative implementation of remoting subsystem included into Spring framework.
Clustered remoting scheme
While implementation of remoting in Spring is great, it has several limitations that are quite important and must be taken into consideration when building large enterprise-level distributed system.
Briefly, these limitations relate to the point-to-point model of remoting supported by Spring - generally speaking, the client may use only one instance of remote service. It is obvious that having only such a scheme of remoting, it is hard to develop fault-tolerant systems and implement some kinds of load balancing.
Another feature, which is currently missing in remoting subsystem offered by Spring framework, is lack of the ability to dynamically discover remote services.
The main purpose of Cluster4Spring is to extend remoting system of Spring framework and overcome limitations mentioned above.
Welcome to the home of Skyway Visual Perspectives, a set of Eclipse-based modeling tools for rapidly producing highly-scalable JEE web applications and services using the Spring Framework. Using a model-centric approach to development, testing and deployment, Skyway Visual Perspectives increases developer productivity and application quality.
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.