Announcing SmartFrog 3.12.000 stable release

Steve Loughran <[email protected]> Fri, 17 Aug 2007 11:51:18 +0100
Newsgroups gmane.comp.java.smartfrog.devel,gmane.comp.java.smartfrog.user
Message-ID <[email protected]>
Hello everyone.

I am pleased to announce that we have what we consider to be a stable
SmartFrog release, numbered 3.12.000.

What we are shipping this week is just last week's beta release with
some bug fixes on sideline components.

1. Improvements to the www liveness components -things you deploy to keep
an eye on local/remote web pages, components that report failure when
the web page they are monitoring goes away. They fail, an action you can
catch in a container with some other workflow (e.g rollback and retry
your deployment).

2. Feature creep in the XMPP componentry. Now a single Xmpplistener
supports an unlimited number of handlers, each of which can get
forwarded messages that they are interested in. There aren't many built
in handlers; one to log messages, and another to relay messages to a
list of other recipients. I plan to do full jabberbot functionality
though; regexps for sender and message matching, and custom actions when
a message is received, so you can build a sequence of handlers for
different IM messages. For testing all of this we use talk.google.com
incidentally; someone else's infrastructure is always easier to
maintain.

3. We've also flipped the Java1.5+ only switch. There's no change in the
code, and I think you could get away with rebuilding the core for
Java1.4. Its just we aren't going to support it if you do. Its not just
the cost of testing, its the fact that the concurrency model in Java1.4
is wrong. There are no guarantees about the ordering of volatile data
access, so the JVMs can reorder them, leading to bad, bad things
happening. If you stay in synchronized blocks this doesn't matter, but
you cannot use RMI and stay synchronized; there's too much risk of
re-entrant calls on different threads.

Please grab the release from SourceForge, under
http://sourceforge.net/project/showfiles.php?group_id=87384&package_id=108447

I recommend the .JAR distribution for developers (it now includes the 
whole source tree), and the RPMs for people planning on production 
deployment on Linux systems.

-steve


SmartFrog 3.12.000
======================

This is a new release of SmartFrog, the Java-based, LPGL-licensed
distributed deployment framework developed by HP Laboratories. SmartFrog
enables applications to be deployed across multiple machines,
configuring different aspects of the system so that they are all
consistently configured, and managing the life-cycle of the application
as a whole. The project's home page is http://smartfrog.org/

The release artifacts are available at

http://sourceforge.net/project/showfiles.php?group_id=87384&package_id=108447

This release is 3.12.000; built from revision 5030
of the SVN repository. This release has an extended language
with the ability to tag attributes, and includes the following items:

* Core smartfrog daemon, including services to manage files, start and stop
   Java and native programs.
* Example components and applications.
* Ant support: ant tasks to deploy and terminate applications from a build.
* Ant components: the ability to execute ant tasks in a deployment.
* Anubis: a partition aware tuple-space that can be used to implement fault
   tolerant systems.
* Database: components to issue database commands, and deploy HSLDB and 
MySQL.
* JMX: the ability to configure and manage JMX components, and to manage
   SmartFrog components over JMX.
* Logging: integration with Apache commons-logging and Log4J
* Networking: email, FTP, SSH, DNS support.
* Quartz: scheduled operations using Quartz libraries.
* Scripting: support for BSF-hosted scripting languages
* Testing: Distributed JUnit and component testing with SFUnit.
* WWW: deployment of WAR and EAR files to application servers. 
deploy-by-copy
   is provided for all application servers that support it, and sample 
templates
   are provided to start and stop Tomcat and JBoss. The Jetty component can
   configure and deploy individual servlets, eliminating much of the 
need for WAR
   files and application servers.
* XML: XML support with XOM.
* XMPP: Presence and messaging over Jabber.

Packaging
=========

This release is available as:

* RPM files inside a .tar.gz file.
* a JAR installer.
* the original core smartfrog distribution as .zip and .tar.gz (deprecated)


The RPM installation is for RPM-based Linux systems. It comprises the 
RPM files:

smartfrog:        the core SmartFrog distribution.
smartfrog-daemon: the shell scripts to add the smartfrog distribution to the
                   path, and to run the daemon on start-up.
smartfrog-demo:   example code and documentation.

smartfrog-anubis: "Anubis" partition-aware tuple space.
smartfrog-logging: Enhanced logging


We recommend the RPM files for installation on deployment hosts, and the 
izpack
installation for developers.


All the JAR files are also published to a repository that is compatible with
Apache Maven and Ivy. Add http://smartfrog.sourceforge.net/repository/
to your repository list to pull SmartFrog artifacts into your Ivy- or
Maven- based build.

There are also SmartFrog components to retrieve artifacts from such a 
repository
(the Library components under /org/smartfrog/services/os/java/library.sf ),
which can be used for dynamic download of SmartFrog and other artifacts.


Security warning
================

Unless SmartFrog is configured with security, a running daemon will
listen on its configured port for incoming deployment requests, and
deploy the applications with the rights of the user running the daemon.
When the smartfrog-daemon RPM is installed, that means that a process
running as root will be listening on an open port for incoming
deployment requests. Do not deploy SmartFrog this way on any untrusted
network, not without turning security on and, ideally, recreating the
RPMs with signed JAR files.

Building SmartFrog
==================

SmartFrog requires Java 1.5 and Ant 1.7 to build. The izpack and source 
.zip and
.tar.gz distributions include a source tree adequate to build the
entire system. To build a later release, please follow the instructions at
   http://sourceforge.net/svn/?group_id=87384
to check out smartfrog/trunk/core from our repository.

This release was built with revision 5030 of the repository, which
is available under the SVN branch
https://smartfrog.svn.sourceforge.net/svnroot/smartfrog/tags/release3.12.000

We strongly encourage anyone interested in building or extending
SmartFrog to get involved in the SmartFrog developer mailing list, which
can be found from the sourceforge project page
http://sourceforge.net/projects/smartfrog/

Reporting Bugs
==============

Please file all bug reports at http://jira.smartfrog.org/

Thank you!

The SmartFrog Team        http://smartfrog.org/

Changes since last release
==========================

The 3.12.000 release is a stable release, intended for use in production
systems. All major defects that have been reported have been fixed, and
the RPM and izpack distribution packages are working well as
distribution formats.

This release is Java1.5+ only; it has been tested on Java1.5 and
Java1.6, on Linux, Windows XP, Windows Vista and OS/X systems; the
tested Linux distributions are RHEL4, RHEL5 and Ubuntu 7.04; one of the
RedHat servers is a 4-way 64-bit machine.

Very few changes have been made since the last beta, 3.11.007; apart
from the switch to Java 1.5, the only changes were to the TestCompound
(and tests that use it), and the components in the sf-www package that
test for a remote page being available.

** Bug
     * [SFOS-390] - TestCompound NPEs
     * [SFOS-393] - www waitforpage component doesnt fail abnormally 
when there is a timeout
     * [SFOS-394] - www liveness and waitfor pages uses seconds and not 
milliseconds for sleeps
                    -inconsistent with rest of the system
     * [SFOS-395] - www liveness page tries to read the error text from 
the far end after an
                    - IO exception
     * [SFOS-396] - TestCompoundImpl thinks an expected abnormal 
termination is still a failure

** Improvement
     * [SFOS-133] - stop Cruise Control javadocs from complaining about 
various things in some components
     * [SFOS-317] - Move test cases to the asynchronous event model
     * [SFOS-388] - Move to Java1.5 across the entire project
     * [SFOS-400] - include buildable source trees in the distributions

** Sub-task
     * [SFOS-372] - migrate 
org.smartfrog.services.database.test.system.core.mysql.MysqlTest to 
async tests



-----------------------
Hewlett-Packard Limited
Registered Office: Cain Road, Bracknell, Berks RG12 1HN
Registered No: 690597 England

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/