Introducing Spring Batch Admin

Engineering | Dave Syer | November 10, 2009 | ...

Spring Batch Admin provides a web-based user interface that features an admin console for Spring Batch applications and systems. It is a new open-source project from SpringSource. A milestone release 1.0.0.M1 will be available soon with all the features below, and we hope to get to a 1.0.0 final release early in 2010.

Main Use Cases

The easiest way to get a quick overview of Spring Batch Admin is to see some screenshots of the main use cases. The user interface is a web application (built with Spring MVC).

Inspect Jobs

Jobs View The user can inspect the jobs that are known to the system. Jobs are either launchable or non-launchable (in the screenshot they are all launchable). The distinction is that a launchable job is defined and configured in the application itself, whereas a non-launchable job is detected as state left by the execution of a job in another process. (Spring Batch uses a relational database to track the state of jobs and steps, so historic executions can be queried to show the non-launchable jobs.)

Launch Job

Launch Job View Launchable jobs can be launched from the user interface with job parameters provided as name value pairs, or by an incrementer configured into the application.

Inspect Executions

Job Executions View Once a job is executing, or has executed, this view can be used to see the most recent executions, and a brief summary of their status (STARTED, COMPLETED, FAILED, etc.). Job Execution View Each individual execution has a more detailed view (shown above), and from there the user can click down to a view of each of the step executions in the job (only one in this case). A common reason for wanting to do this is to see the cause of a failure. Step Execution (Top) View The top of the step execution detail view shows the history of the execution of this step across all job executions. This is useful for getting a statistical feel for performance characteristics. A developer running a job in an integration test environment might use the statistics here to compare different parameterisations of a job, to see what effect is of changing (for instance) the commit interval in an item processing step. Step Execution (Bottom) View The bottom of the step execution view has the detailed meta-data for the step (status, read count, write count, commit count, etc.) as well as an extract of the stack trace from any exception that caused a failure of the step (as in the example shown above).

Stop an Execution

Stop Job Execution View A job that is executing can be stopped by the user (whether or not it is launchable). The stop signal is sent via the database and once detected by Spring Batch in whatever process is running the job, the job is stopped (status moves from STOPPING to STOPPED) and no further processing takes place.

Where to get it

The best place to start is the SpringSource community download page. There is also a snapshot download attached to this article, or you can get the source code from subversion and compile it yourself. Snapshot builds also go up to S3 to the Maven repository every night:
<repository>
	<id>spring-snapshots</id>
	<name>Spring Maven Snapshot Repository</name>
	<url>http://s3.amazonaws.com/maven.springframework.org/snapshot</url>
</repository>

There are two JAR artifacts and a WAR sample (org.springframework.batch:spring-batch-admin…

Cloud Foundry integrated into developer tools

Engineering | Charles Lee | November 10, 2009 | ...

Thanks to the efforts of a number of other SpringSource project teams, we are excited to have integrations of three developer tools with Cloud Foundry, namely SpringSource Tool Suite, Grails, and Roo.  The result of this is that you can create and develop your Spring or Grails applications, and run them in the cloud without having to leave your favorite IDE or command-line interface.  These tools utilize the Cloud Foundry client web services API (to be published soon) and leverage additional intelligence and SpringSource artifact repositories in the cloud for optimized, efficient uploads of…

dm Server 2.0.0.M6

Engineering | Ben Hale | October 27, 2009 | ...

dm Server 2.0.0.M6 is now available and can be downloaded from here.

This release follows quickly on the M5 release as we close in on the first 2.0.0 release candidate. This time we've focused very heavily on fixing outstanding defects and added just a handful of new features. Take a look at the M6 release notes for the full details of the defects that we've fixed and the features we've added. Please keep your feedback coming as comments on our blog, in the forums, and on the JIRA.

New and Noteworthy

Running dm Kernel and dm Server as a Service

The dm Kernel and dm Server can now be started as a service on windows and UNIX machines. To install the service on windows you need to edit the $HOME/bin/service/conf/wrapper.conf file to properly list the path of the kernel or server. Then you run the $HOME/bin/service/windows.bat install. There are other commands to be run and the dm Server documentation addresses the others.

UNIX users have it even easier as the $HOME/bin/service directory contains a number of init.d compatible…

dm Admin Console Demo Screencast

Engineering | Christopher Frost | October 21, 2009 | ...

Here is a screencast showing the dm Admin Console for the dm Server. It gives a brief tour of the dm Admin Console and then shows some of the features by deploying a simple demo application. The application consists of a configuration file, a web bundle and a content bundle. When deployed the application simply shows the contents of the configuration file in a web browser. The application is installed in parts for the purpose of this demo, in reality you would group the application together with either a 'par' or a 'plan', to see how this is done with a 'plan' file another screencast is…

Introducing tc Server Developer Edition - with Spring Insight

Engineering | Jon Travis | October 21, 2009 | ...

We are proud to present the Spring community with a new tool which helps get their applications to production even faster: tc Server Developer Edition is the standard 100% Tomcat you know and love, plus a new Spring Insight console.

Spring Insight gives deep visibility into your application’s real activity on a request-by-request basis. For any request you can see all the JDBC queries it made, how much time it took to render, or timings for any of your major Spring beans.

This fine grained information is very valuable when you are looking at a specific request in isolation, but it can be…

dm Kernel

Engineering | Steve Powell | October 19, 2009 | ...

In Milestone M5, for the first time, dm Kernel is available standalone. You can get it from here.

What is dm Kernel?

Basically, dm Kernel is everything good about dm Server except support for web applications. So, there are no web apps supplied (not even Admin Console or Splash) and no Tomcat —just the kernel.

Essentially, dm Kernel provides you with all that is good about dm Server’s OSGi support, including:

  • scoping
  • hot deployment
  • pars
  • bundles
  • plans
  • configuration properties
  • auto-provisioning
  • repositories
    • all repository types: watched, external and remote
    • chain support (the chain is empty by default)
  • easy configurability
  • the user region
  • full system and application tracing and dump support
  • oh, and of course, Spring beans and Spring DM support as usual,
but no web stuff.

If you want OSGi modular support for your system apps, but don’t want or need to host web applications, then dm Kernel is what you want.

This is exactly the same kernel that is shipped with a full dm Server—no modifications or adaptations. Being able to deploy and run the kernel by itself is yet another demonstration of the clean, modular design of dm Server.

Small print

How do I administer a dm Kernel without the Admin Console? (I can almost hear you ask.) Well, the answer is also provided in M5—use the Shell either locally or remotely (over ssh). You’d think we planned this, or something.

Enjoy.

The dm Shell

Engineering | Christopher Frost | October 15, 2009 | ...

The dm Server has a new command line shell. It is currently available along with the existing Equinox shell and will replace it for the 2.0 release. Improvements over the Equinox shell include basic tab completion and a command history.

The dm Shell is available both locally and remotely over ssh. When used locally by starting the server with the './startup.sh -shell' option it will take over the console output once the dm Kernel has started. Console output will still be viewable in the event log. Either way the first thing to be produced is an ASCII art splash image followed by the command prompt ':> '

Regions

Engineering | Steve Powell | October 13, 2009 | ...

(updated 15Oct2009) Beginning in milestone M5, dm Server 2.0 employs regions to isolate the kernel from users’ applications. This means that the kernel implementation is almost completely invisible to applications and to application management.

Also in milestone M5, support for cloning is completely removed. Region isolation and scoped plans between them offer much simpler and more manageable solutions to the most common problems that cloning was intended to address.

In the following two sections I outline these changes, and the reasons we made them.

The regional news

A Region is just like an OSGi framework—it is where applications are installed, resolved and run.

dm Kernel creates a single User Region in which to run applications and all applications (including the ones that dm Server supplies—Splash, Admin, Web and Hosted Repository) are deployed into the User Region

dm Server 2.0.0.M5

Engineering | Ben Hale | October 12, 2009 | ...

dm Server 2.0.0.M5 is now available and can be downloaded from here.

We’re getting towards the end of the 2.0.0 release cycle so most of the work in this milestone is focused on locking down the user interaction model. Take a look at the M5 release notes for the full details of what we’ve been working on. Please keep your feedback coming as comments on our blog, in the forums and on JIRA.

Please also watch the blog for detailed posts on many of the new features referenced in this New and Noteworthy.

New and Noteworthy

Deploying Configuration Files

Properties files can now be deployed in either the pickup directory or in any configured repository. The content of these files is then accessible in OSGi’s ConfigurationAdmin at a PID specified as the file’s name without the .properties extension.

Plan Attributes and Properties

Plans can now have globally defined attributes used for substitution.

<attributes>
	<attribute name="version" value="[1.0.0, 2.0.0)"/>
</attributes>

<artifact type="bundle" name="org.springframework.context.support" version="${version}"/>

Artifacts within plans can have properties defined which are translated into Bundle manifest headers at deployment time.

<artifact type="bundle" name="my.webapp" version="[1.0.0, 2.0.0)">
	<property name="Web-ContextPath" value="/foo"/>
</artifact>

Admin Console

The Artifacts page of the admin console has been spruced up to render the dependencies of user installed artifacts as trees. In addition, each level of these trees is lazily loaded improving load-time performance.

Admin Console

Command-line Shell

dm Server now ships with a command line shell to replace the Equinox console that was previously used. This console is accessible locally with the -shell startup command.

$ bin/startup.sh -shell
<KE0001I> Kernel starting.
<KE0002I> Kernel started.
<SH0001I> dm Kernel ssh shell available on port 2402.

     @@@ ***
    @@@ *****            .__.                  .__.            .__.  .__.
   @@@@ ******         __|  |  _____     _____.|  |__    ___…

Drawing Spring into the Blueprint

Engineering | Costin Leau | October 08, 2009 | ...

Last month, almost 4 years after the initial 4.0 release, OSGi Alliance officially approved the OSGi service platform 4.2 release. The announcement headline featured the Blueprint Container Service, a new addition to the Compendium specification based on the programming model promoted by the Spring Dynamic Modules (also known as Spring OSGi) project. To quickly summarize Blueprint, I will just blatantly quote the OSGi spec:

(Blueprint Container) [...] defines a dependency injection framework, specifically for OSGi bundles, that understands the unique dynamic nature of services. It provides an OSGi bundle programming model with minimal implementation dependencies and virtually no accidental complexity in the Java code.

Users familiar with IoC concepts or Spring and Spring DM configuration, will find the Blueprint specification easy to grasp. In fact, being derived from Spring DM, many of…

Get the Spring newsletter

Stay connected with the Spring newsletter

Subscribe

Get ahead

VMware offers training and certification to turbo-charge your progress.

Learn more

Get support

Tanzu Spring offers support and binaries for OpenJDK™, Spring, and Apache Tomcat® in one simple subscription.

Learn more

Upcoming events

Check out all the upcoming events in the Spring community.

View all