From: Steve L. <ste...@hp...> - 2007-10-25 15:46:59
|
Hello everyone. I'm pleased to announce the latest release of SmartFrog, 3.12.008, which has successfully moved up the versions of jetty and jsch used by the Jetty and SSH components respectively, and which adds a new reference type, CONSTANT, to extract the value of a static constant in a Java class. As usual, please let us know of any problems, especially with the changes to the Jetty and SSH components. There is a risk that things have broken there, so get in touch if things are not behaving as expected. Be aware that I have one more change to SSHExec planned for the next release: the commands will all be executed asynchronously. -Steve SmartFrog 3.12.008 ====================== 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=176308 This release is 3.12.008; built from revision 5390 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 three RPM files, smartfrog, smartfrog-daemon and smartfrog-demo: 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. 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 5390 of the repository, which is available under the SVN branch https://smartfrog.svn.sourceforge.net/svnroot/smartfrog/tags/release3.12.008 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 ========================== There have been various bug fixes and enhancements to the core, and to the Anubis, Jetty and SSH components SFOS-506 new reference type: CONSTANT There is a new reference type which can extract the value of a static field in a Java class. This is useful for extracting text strings from existing code: ExpectedText CONSTANT "org.smartfrog.example.Test.ErrorText"; In this example, ExpectedText is set to the string constant ErrorText in the class org.smartfrog.example.Text. The type of the resolved reference is that of the static object, such as string or integer. LAZY CONSTANT references are evaluated on the SmartFrog host; non-LAZY references during preflight. SFOS-512 rpmlint gives warnings and errors There have been some changes to the RPM packaging, so rpmlint raises no errors and less warnings. Specifically -the .el4 suffix indicates the RPMs are compatible with RedHat Enterprise Linux 4 -the symbolic links from /opt/smartfrog/links to versionned artifacts are now managed by the rpm tools, instead of created and deleted by custom scripts. -the permissions on some files have been tightened. SFOS-357: Move Jetty support up to Jetty 6 (ongoing) The migration of the Jetty components to Jetty 6 is now complete. Jetty HTTP/HTTPS servers can be deployed, and web application and servlet contexts deployed atop them. Jetty 6 security is higher than before, with two consequences -it is no longer possible to export a directory tree, and have Jetty create index pages. Explicit index.html pages are required. Otherwise, a 403 forbidden or 404 not-found response is generated -Web applications must explicitly list their welcome files in a section of web.xml. Consult the servlet documentation for the specifics of this. In our own testing, these security changes create the appearance that Jetty is not deploying some web applications. It is deploying them, only more securely than before. SFOS-519 Move up to jsch 0.1.31 The SSH components have moved up to Jsch-0.1.31, and rewritten internally -all implementation classes share the same base class and template descriptor -authentication policy (key or password) is now controlled via an attribute, "authentication". -the components use the standard workflow attributes to control their termination policy. -all the configuration options are checked before a connection is attempted. This finds problems early, rather than late -private key files for scp and sshexec, and the list of local files for scp, are now enhanced to take references to components implementing the FileIntf interface, as well as simple strings. This makes it easier to use components as sources of files. Release Notes - SmartFrog - Version 3.12.008 ** Bug * [SFOS-356] - NPE when Jetty terminates * [SFOS-488] - LogFactory.LogFactory.infinite loop in getLog if a Prim cast to an Object is passed down * [SFOS-491] - LogFactory.getLog(Object) always returns null instead of a log * [SFOS-492] - LogFactory doesnt register all logs using the same keys * [SFOS-507] - scp component does not check the transfer type before connecting * [SFOS-512] - rpmlint gives warnings and errors ** Improvement * [SFOS-487] - the LogFactory should catch .class files being sent in, and use the name of the class for creating logs * [SFOS-490] - Add static method to FileSystem to check for existence/type and size of a file * [SFOS-502] - SSH components should not implement their auth policy by subclassing * [SFOS-503] - SSH components should support File components as a source of keyfile * [SFOS-508] - scp component could improve its handling of local/remote file lists * [SFOS-509] - scp operation should be asynchronous * [SFOS-510] - extract a method to apply the resolution of filenames to a single object, such as may be returned from a remote call, or found in a vector * [SFOS-511] - FileSystem should catch when a FileIntf instance returns a null path, so callers don't have to ** New Feature * [SFOS-506] - new reference type: CONSTANT ** Task * [SFOS-423] - Move up to Ant 1.7 * [SFOS-496] - code review the Ant component * [SFOS-517] - Create Release 3.12.008 * [SFOS-519] - Move up to jsch 0.1.31 ** Sub-task * [SFOS-474] - add SLF4J support to logging services * [SFOS-513] - rpmlint expects .el4 or later endings on RPMs * [SFOS-514] - set up symlinks in the rpm tar, instead of doing it in scripts afterwards ----------------------- Hewlett-Packard Limited Registered Office: Cain Road, Bracknell, Berks RG12 1HN Registered No: 690597 England |