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();
  }
}

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

Reply via email to