hammett     2004/01/01 07:10:53

  Added:       avalon-net/Castle/Castle/Core Orchestrator.cs
                        OrchestratorNotificationSystem.cs
  Log:
  Castle MX Remoting infraestructure
  
  Revision  Changes    Path
  1.1                  avalon-sandbox/avalon-net/Castle/Castle/Core/Orchestrator.cs
  
  Index: Orchestrator.cs
  ===================================================================
  // ============================================================================
  //                   The Apache Software License, Version 1.1
  // ============================================================================
  // 
  // Copyright (C) 2002-2003 The Apache Software Foundation. All rights reserved.
  // 
  // Redistribution and use in source and binary forms, with or without modifica-
  // tion, are permitted provided that the following conditions are met:
  // 
  // 1. Redistributions of  source code must  retain the above copyright  notice,
  //    this list of conditions and the following disclaimer.
  // 
  // 2. Redistributions in binary form must reproduce the above copyright notice,
  //    this list of conditions and the following disclaimer in the documentation
  //    and/or other materials provided with the distribution.
  // 
  // 3. The end-user documentation included with the redistribution, if any, must
  //    include  the following  acknowledgment:  "This product includes  software
  //    developed  by the  Apache Software Foundation  (http://www.apache.org/)."
  //    Alternately, this  acknowledgment may  appear in the software itself,  if
  //    and wherever such third-party acknowledgments normally appear.
  // 
  // 4. The names "Jakarta", "Avalon", "Excalibur" and "Apache Software Foundation"  
  //    must not be used to endorse or promote products derived from this  software 
  //    without  prior written permission. For written permission, please contact 
  //    [EMAIL PROTECTED]
  // 
  // 5. Products  derived from this software may not  be called "Apache", nor may
  //    "Apache" appear  in their name,  without prior written permission  of the
  //    Apache Software Foundation.
  // 
  // THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
  // INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
  // FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
  // APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
  // INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
  // DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
  // OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
  // ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
  // (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
  // THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  // 
  // This software  consists of voluntary contributions made  by many individuals
  // on  behalf of the Apache Software  Foundation. For more  information on the 
  // Apache Software Foundation, please see <http://www.apache.org/>.
  // ============================================================================
  
  namespace Apache.Avalon.Castle.Core
  {
        using System;
  
        using Apache.Avalon.Castle.ManagementExtensions;
        using ILogger = Apache.Avalon.Framework.ILogger;
  
        /// <summary>
        /// Summary description for Orchestrator.
        /// </summary>
        [ManagedComponent]
        public class Orchestrator : ManagedService
        {
                private static readonly int LOGGER_MANAGER = 0;
                private static readonly int CONFIG_MANAGER = 1;
                private static readonly int LOOKUP_MANAGER = 2;
  
                protected ManagedObjectName[] childServices = new ManagedObjectName[3];
  
                protected ILogger logger = 
Logger.LoggerFactory.GetLogger("Orchestrator");
  
                private OrchestratorNotificationSystem notificationSystem;
  
                /// <summary>
                /// 
                /// </summary>
                public Orchestrator()
                {
                        logger.Debug("Constructor");
                }
  
                [ManagedAttribute]
                public ManagedObjectName LoggerManager
                {
                        get
                        {
                                return childServices[LOGGER_MANAGER];
                        }
                        set
                        {
                                childServices[LOGGER_MANAGER] = value;
                        }
                }
  
                [ManagedAttribute]
                public ManagedObjectName ConfigurationManager
                {
                        get
                        {
                                return childServices[CONFIG_MANAGER];
                        }
                        set
                        {
                                childServices[CONFIG_MANAGER] = value;
                        }
                }
  
                [ManagedAttribute]
                public ManagedObjectName LookupManager
                {
                        get
                        {
                                return childServices[LOOKUP_MANAGER];
                        }
                        set
                        {
                                childServices[LOOKUP_MANAGER] = value;
                        }
                }
        
                public override void Create()
                {
                        logger.Debug("Create");
  
                        base.Create();
  
                        // Start up notification system
  
                        notificationSystem = new OrchestratorNotificationSystem();
  
                        foreach(ManagedObjectName child in childServices)
                        {
                                if (child == null)
                                {
                                        continue;
                                }
  
                                logger.Debug("Invoking RegisterForPhases on {0}", 
child);
  
                                server.Invoke( 
                                        child, 
                                        "RegisterForPhases", 
                                        new object[] { notificationSystem }, 
                                        new Type[] { 
typeof(OrchestratorNotificationSystem) } );
  
                                logger.Debug("Done");
                        }
                }
        }
  }
  
  
  
  1.1                  
avalon-sandbox/avalon-net/Castle/Castle/Core/OrchestratorNotificationSystem.cs
  
  Index: OrchestratorNotificationSystem.cs
  ===================================================================
  // ============================================================================
  //                   The Apache Software License, Version 1.1
  // ============================================================================
  // 
  // Copyright (C) 2002-2003 The Apache Software Foundation. All rights reserved.
  // 
  // Redistribution and use in source and binary forms, with or without modifica-
  // tion, are permitted provided that the following conditions are met:
  // 
  // 1. Redistributions of  source code must  retain the above copyright  notice,
  //    this list of conditions and the following disclaimer.
  // 
  // 2. Redistributions in binary form must reproduce the above copyright notice,
  //    this list of conditions and the following disclaimer in the documentation
  //    and/or other materials provided with the distribution.
  // 
  // 3. The end-user documentation included with the redistribution, if any, must
  //    include  the following  acknowledgment:  "This product includes  software
  //    developed  by the  Apache Software Foundation  (http://www.apache.org/)."
  //    Alternately, this  acknowledgment may  appear in the software itself,  if
  //    and wherever such third-party acknowledgments normally appear.
  // 
  // 4. The names "Jakarta", "Avalon", "Excalibur" and "Apache Software Foundation"  
  //    must not be used to endorse or promote products derived from this  software 
  //    without  prior written permission. For written permission, please contact 
  //    [EMAIL PROTECTED]
  // 
  // 5. Products  derived from this software may not  be called "Apache", nor may
  //    "Apache" appear  in their name,  without prior written permission  of the
  //    Apache Software Foundation.
  // 
  // THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
  // INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
  // FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
  // APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
  // INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
  // DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
  // OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
  // ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
  // (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
  // THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  // 
  // This software  consists of voluntary contributions made  by many individuals
  // on  behalf of the Apache Software  Foundation. For more  information on the 
  // Apache Software Foundation, please see <http://www.apache.org/>.
  // ============================================================================
  
  namespace Apache.Avalon.Castle.Core
  {
        using System;
  
        using Apache.Avalon.Castle.ManagementExtensions;
  
        /// <summary>
        /// Summary description for OrchestratorNotificationSystem.
        /// </summary>
        public sealed class OrchestratorNotificationSystem : MarshalByRefObject
        {
                public void AddListener(ManagedObjectName name, LifecyclePhase phase)
                {
                }
        }
  }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to