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
The release artifacts are available at
This release is 3.12.014; built from revision 5649
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
- 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, and a tomcat-specific
component can communicate with Apache Tomcat. The Jetty component can
configure and deploy individual servlets, eliminating much of the need for WAR
- XML: XML support with XOM.
- XMPP: Presence and messaging over Jabber.
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 three RPM
files, smartfrog, smartfrog-daemon and smartfrog-demo:
|The core SmartFrog distribution.
|The shell scripts to add the smartfrog distribution to the
path, and to run the daemon on start-up.
|Example code and documentation
|Anubis partition-aware "tuple space"
All the JAR files are also published to a repository that is compatible with
Apache Maven and Ivy. Add
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.
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.
SmartFrog requires Java 1.5 and Ant 1.7 to build.
The distribution does not include a source tree adequate to build the entire
system. Please follow the instructions at
and check out smartfrog/trunk/core from our repository.
This release was built with revision 5645 of the repository, which
is available under the SVN branch
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
Please file all bug reports at http://jira.smartfrog.org/
The SmartFrog Team
Changes since last release
There are no major changes in this release, only ongoing bug fixes and minor
improvements, and build process tuning.
The RPMs have been improved; the javadocs for the core JARs are provided as their own RPM.
- [SFOS-560] - -x bit is set in /etc/sysconfig/smartfrog
- [SFOS-561] - sfResolveHereNonlocal does not delegate to sfResolveHere when the attribute is not in the context and the dns component overrides sfResolveHere to give a default value
- [SFOS-564] - regression in RunShell; list operations causing NPW
- [SFOS-572] - default for sfDump does not handle references with repeated names correctly
- [SFOS-574] - jjdocs target fails on CruiseControl
- [SFOS-575] - common.xml javadoc fails if there is no source
- [SFOS-265] - bits of smartfrog arent forwarding SmartFrogResolutionExceptions consistently
- [SFOS-501] - Ant component needs more tests
- [SFOS-548] - Add SFNULL to schemas template
- [SFOS-551] - add Xalan and JDom to the XML component
- [SFOS-552] - review XML component source+build; add in xalan and JDOM
- [SFOS-556] - move up to httpunit 1.6.2 for testing www componentry
- [SFOS-569] - Add attribute to filter the output of positive searches. Useful to remove the "echoExit command" from the standard output .
- [SFOS-573] - logToFile when failing to create a log file, it should try java tem dir before failing
- [SFOS-559] - Create RPMs for the other packages: ant, database, jmx, xunit, junit, net, www, quartz
- [SFOS-568] - Add a component to test the specific OS
- [SFOS-129] - incorporate ivy published documentation into the release artifacts
- [SFOS-357] - Move Jetty support up to Jetty6
- [SFOS-467] - Admin/Debug servlets are no longer in Jetty6; remove the components and their tests
- [SFOS-540] - document the Ant components
- [SFOS-473] - Add SSL support with an SSLSocketListener
- [SFOS-475] - Move realm/security config out of SFJetty and make reusable
- [SFOS-476] - Remove SFJettyAdmin as the servlet is gone