ChangeLog
Revision 4.0b (Unreleased)
  • Lots of work on JMX capability for Phoenix. (HR)

  • BeanShell debug tools for Kernel. (PH)

Revision 4.0a4 (Unreleased)
  • Added start of configuration validation framework (PR)

  • Update documentation and move to Anakia for document generation. (PD)

  • Remove deprecated functionality for deploying old style .sar files or deploying from a directory. (PD)

  • Remove deprecated Service interface. (PD)

  • Remove some deprecated methods from BlockContext. (PD)

  • Warn users if their blocks Work interfaces/Services implement any lifecycle interfaces. (PD)

  • Allow name sub-element in block section of BlockInfo. (SM)

  • Add "sar:" URL protocol handling to policy section in environment.xml file. (PD)

  • Blocks no longre need to implement Block interface. Block interface is thus deprecated as is AbstractBlock. This was done to facilitate sharing of components between multiple containers. (PD)

  • Extrace Blocks to directory based on name deployed with rather than .sar name (to support multiple deployments of same .sar). Submitted By: Ulrich Mayring (ulim@denic.de) (PD)

  • Rework deployer such that jars are extracted to a temporary work directory and then deleted when application is undeployed. This is to work around the JVM locking and caching the jars and thus allowing users to redeploy applications. Submitted By: Ulrich Mayring (ulim@denic.de) (PD)

  • Updated build script so it will work when installed in a directory with spaces. Submitted By: dsmiley@mitre.org (David Smiley) (PD)

  • Use MX4J project to provide the JMX management kernel rather than RI. (PD)

  • Make phoenix use a temporary located in its hierarchy by setting the JVM system property "java.io.tmp". By default this temporary location is $PHOENIX_HOME/temp (PD)

  • Rework Embeddor so that it instantiates kernel components from a by reading the contents of conf/kernel.xml file. Submitted By: Joerg Bauer (bauer@denic.de) (PD)

  • Add XDoclet tasks to generate the manifest and BlockInfo files based on javadoc tags inserted into Blocks java file. Originally Submitted By: vinay nair (vinayc77@yahoo.com) (PD)

  • Added javadoc to more classes and added in package.html files where appropriate. (SM)

  • Added ApplicationListener objects that implement all same funcitonality as BlockListener but also provide support for Application Starting/Stopping/Failure events and provide access to SarMetaData. Consequently deprecated BlockListener interface. (PH)

  • Enhanced DefaultManager to support authenticated connecitons. Submitted By: "Jorg Bauer/Denic" (bauer@denic.de) (PD)

  • Add support for Parameterizable blocks. Submitted by: Brian Olsen (brian@mmmanager.org) (MT)

  • Allow Blocks to declare that they are able to be exported to a Management subsystem (ie JMS) by making their blocks declare (Management-access-points/) in their BlockInfo. Blocks will be exported to JMX with names like "application=Foo,name=MrBlock,role=org.apache.MyManagementInterface" (PD)

  • Validate the assembly.xml file and any BlockInfo files if they declare the DTD correctly. (PD)

  • Add native daemon support by using the daemon created in the http://wrapper.sourceforge.net/ project. Submitted By: Leif Mortenson (leif@silveregg.co.jp) (PD)

  • Fixed bug where application names were inapropriately prefixed to log categories. Submitted By Antal Attila (atech@nolimits.ro) (PD)

  • Fixed bug where application names were inapropriately prefixed to log categories. (PD)

  • Allow jars contained within the .sar file to declare dependencies on libraries using the standard JDK1.2+ Extension mechanism. For more information about optional packages, see the document Optional Package Versioning in the documentation bundle for your Java2 Standard Edition package, in the file guide/extensions/versioning.html. (PD)

Revision 4.0a3 (November 13, 2001)
  • Add documentation describing BlockListener. (PD)

  • Fixed bug that allowed binary distributions to be built without copying xerces.jar into correct place. (PD)

Revision 4.0a2 (November 12, 2001)
  • Update Phoenix to use the new Avalon Framework Logger interface rather than directly using LogKits Logger class. This required a backwards incompatible change in BlockContext. The getLogger() methods now return the Logger interface rather than LogKits Logger class. If a Block implements Loggable then it will be passed LogKits Logger, this is required for backwards compatability. If the Block implements LogEnabled it will receive the new style Logger. (PD)

  • Add support for undeploying and unistalling applications. Add support for separating out install phase from deployment phase and persisting information about application installations. (MT)

  • Rework the application deployment format (ie .sar format) to be more in line with other specifications. See docs/creating-a-server-application.html in distribution for current format description. The old format is deprecated but will still work. (PD)

  • Created the start of a Phoenix Developers Kit (PDK) that will enable developers to rapidly become accustom to developing Phoenix applications. (PH)

  • Started to incorporate the JMX code more fully into Phoenix kernel. Started doing this by refactoring the base MBeans and testing using the RIs agent. (PD)

  • Separated code that validated assembly of application into separate classes. The validation is now much stricter and requires that Blocks conform to established patterns. The validation phase should give more reasonable explanations for violations. Extra validation checks include verifying that services offered by a Block are actually interfaces, that there is no circular dependencies, that declared Blocks and BlockListeners actually implement Block or BlockListener interface, that the names of Blocks are valid etc. (PD)

Revision 4.0a1 (September 25, 2001)
  • Too many things to enumerate here. This is the first public release, and the code is still considered alpha. In future releases, we will be much more careful to record the changes to Phoenix. (BL)

Revision 3.1a2 (Unreleased)
  • Added stylesheet to convert Stylebook markup to DocBook markup. (BL)

  • Changed the documentation build process to use Cocoon to build the site. (BL)

  • Legacy support for nested configuration elements in assembly file removed. (PD)

  • Simplified Loader and made it set ContextClassLoader before executing Main method. It will also use the System property phoenix.home if set rather than always trying to dynamically determine home directory. (PD)

  • Added SingleAppEmbeddor to launch a kernel to load a single Application. Patch supplied by "Eung-ju Park" (colus@isoft.co.kr). This is useful if you need to reuse the blocks in other contexts (such as in a Servlet). (PD)

  • Made default SystemManager a NoopSystemManager. Patch supplied by "Eung-ju Park" (colus@isoft.co.kr). To re-enable RMI manager a new command line switch "--remote-manager" was added. (PD)

  • Reworked SecurityManager setup. Instead of starting a security Manager inside the code it has been re-architectured so that the SecurityManager is set on the command line. This was to avoid a number of issues related to creating a URLClassLoader in an unprotected context before setting SecurityManager. ie As AccessControllerContext was null it is impossible to use ClassLoader.getResource(AsStream)(). This means that defining phoenix.insecure will no longer disable the SecurityManager. The replacement method is to set the native OS environment variable 'PHOENIX_SECURE=false'. (PD)

  • Separate Parsing of CLI arguements into separate class (CLISetup). This is to facilitate launching Phoenix as a native daemon using Tomcats Services API. (PD)

  • Started Localizing text strings throughout Phoenix. This is done using ResourceManager and Resources from Avalon/Excalibur project. (PD)