walid joseph Gedeon wrote:
Hello all, I'm new to excalibur and co. and am still reading through the available documentation. However, having read through the main pages, I still have not found what I'm looking for... maybe someone on this list can point me in the right direction?I'm looking for a relatively lightweight java application framework that supports COP, IoC, but also can run as a standalone application (i.e. with bootstrapping, start/stop scripts etc) The part that is so far missing is the bootstrapping mechanism. Before I head out and write my own, I wanted to make sure I haven't skipped over some existing thing... Excalibur? Phoenix? Merlin? Keel? Metro? Spring? so many products that seem to want to do the same thing... almost.
We use Excalibur for the MinneTAC trading agent (see tac.cs.umn.edu). I've attached the "container" module that starts everything up, and you can of course download the source and see how the configuration files work. Our experience is that once you have figured out the container and how to write config files, Excalibur stays nicely in the background and Just Works. We are very pleased with it.
Cheers John Collins University of Minnesota
/*------------------------------------------------------------------------ * TAC-SCM repository test component * $Id: TacContainer.java 1318 2005-05-26 03:07:30Z jcollins $ * Copyright (c) 2003 Regents of the University of Minnesota. * All Rights Reserved by the Regents of the University of Minnesota. * This file contains Original Code and/or Modifications of Original * Code as defined in the MAGNET Public Source License, which is * available at http://www.cs.umn.edu/magnet/source_license_v1.txt. * You may not use this file except in compliance with the License. *------------------------------------------------------------------------ * Revision History: * * Thu Mar 27 19:50:53 2003 John Collins * Initial Entry */ package edu.umn.cs.tac; import org.apache.avalon.fortress.ContainerManager; import org.apache.avalon.fortress.impl.DefaultContainerManager; import org.apache.avalon.fortress.impl.DefaultContainer; import org.apache.avalon.fortress.util.FortressConfig; import org.apache.avalon.framework.container.ContainerUtil; /** * This is a bootstrap Fortress-based container for Avalon * components. Configuration is entirely from config files. Three * configuration files are expected: * <ul> * <li>tac.roles specifies component roles and shortcuts. * <li>tac.xconf specifies components and their configurations. * <li>tac.xlog is the logger configuration file. * </ul> * @author John Collins * @version $Revision: 1318 $ */ public class TacContainer //extends DefaultContainer { private ContainerManager manager; private String configDir = "./"; private String base; private TacContainer (String baseName) { super(); base = baseName; } public ContainerManager createContainerManager() //throws Exception { // Create the fortress context configuration object final FortressConfig config = new FortressConfig(); // Read the configuration files config.setContainerClass(DefaultContainer.class); config.setRoleManagerConfiguration(configDir + base + ".roles"); config.setContainerConfiguration(configDir + base + ".xconf"); config.setLoggerManagerConfiguration(configDir + base + ".xlog"); // Set up the container manager try { manager = new DefaultContainerManager(config.getContext()); ContainerUtil.initialize(manager); } catch (Exception e) { e.printStackTrace(); } return manager; } //public void disposeContainerManager() //{ // ContainerUtil.dispose( manager ); //} //public DefaultContainer getContainer() //{ // return (DefaultContainer) manager.getContainer(); //} public static void main (String[] args) { String baseName = "tac"; if (args.length > 0) baseName = args[0]; TacContainer thing = new TacContainer(baseName); thing.createContainerManager(); } }
smime.p7s
Description: S/MIME Cryptographic Signature
