hmmm. Read the commit again. It is not against fortress.

On Sat, 9 Nov 2002 19:56, Stephen McConnell wrote:
> Pete:
>
> You retract the dependecies declared in the Fortrss build (and related
> defaults) on the excalibur container package which includes the
> lifecycle extension interfaces. Seems to me that this will break the
> build.  Have you changed something else that I havn't noticed?
>
> Steve.
>
> [EMAIL PROTECTED] wrote:
> >donaldp     2002/11/09 00:41:04
> >
> >  Modified:    component build.xml default.properties
> >               component/src/java/org/apache/avalon/excalibur/component
> >                        DefaultComponentFactory.java
> >              
> > component/src/java/org/apache/avalon/excalibur/component/servlet
> > AbstractServiceManagerServlet.java
> >  Added:       component/src/java/org/apache/avalon/excalibur/component
> >                        ComponentProxyGenerator.java
> >  Log:
> >  Move ComponentPorxyGenerator into component package. This results in a
> > decoupling from container.
> >
> >  Revision  Changes    Path
> >  1.27      +6 -8      jakarta-avalon-excalibur/component/build.xml
> >
> >  Index: build.xml
> >  ===================================================================
> >  RCS file: /home/cvs/jakarta-avalon-excalibur/component/build.xml,v
> >  retrieving revision 1.26
> >  retrieving revision 1.27
> >  diff -u -r1.26 -r1.27
> >  --- build.xml      24 Sep 2002 20:39:52 -0000      1.26
> >  +++ build.xml      9 Nov 2002 08:41:03 -0000       1.27
> >  @@ -16,7 +16,6 @@
> >           <pathelement location="${logkit.jar}"/>
> >           <pathelement location="${avalon-framework.jar}"/>
> >           <pathelement location="${excalibur-collections.jar}"/>
> >  -        <pathelement location="${excalibur-container.jar}"/>
> >           <pathelement location="${excalibur-logger.jar}"/>
> >           <pathelement location="${excalibur-instrument.jar}"/>
> >           <pathelement location="${excalibur-instrument-manager.jar}"/>
> >  @@ -26,7 +25,7 @@
> >
> >           <!-- Optional jars -->
> >           <pathelement location="${servlet.jar}"/>
> >  -
> >  +
> >           <pathelement path="${java.class.path}"/>
> >       </path>
> >
> >  @@ -58,7 +57,7 @@
> >               <classpath refid="project.class.path"/>
> >           </available>
> >       </target>
> >  -
> >  +
> >       <!-- Check that if we want servlet logging support, our logkit.jar
> > has it enabled too --> <target name="dependencies.servlet"
> > if="servlet.present">
> >               <ant antfile="${depchecker.prefix}/depchecker.xml"
> > target="checkRequiredClass"> @@ -76,7 +75,6 @@
> >       <target name="dependencies" depends="dependencies.optional"
> > description="Check dependencies" unless="skip.dependencies"> <ant
> > antfile="${depchecker.prefix}/depchecker.xml" target="checkCommon"/> <ant
> > antfile="${depchecker.prefix}/depchecker.xml" target="checkLogkit"/> -   
> >     <ant antfile="${depchecker.prefix}/depchecker.xml"
> > target="checkContainer"/> <ant
> > antfile="${depchecker.prefix}/depchecker.xml" target="checkFramework"/>
> > <ant antfile="${depchecker.prefix}/depchecker.xml"
> > target="checkInstrument"/> <ant
> > antfile="${depchecker.prefix}/depchecker.xml"
> > target="checkInstrumentManager"/> @@ -94,7 +92,7 @@
> >           <ant antfile="${depchecker.prefix}/depchecker.xml"
> > target="checkTestcase"/> <ant
> > antfile="${depchecker.prefix}/depchecker.xml" target="checkInstrument"/>
> > </target>
> >  -
> >  +
> >       <target name="servlet-warn" unless="servlet.present"
> >           description="Outputs a warning if javax.servlet.* classes are
> > missing during compilation">
> > <echo>*******************************************************************
> >**************</echo> @@ -204,7 +202,7 @@
> >               </zipfileset>
> >           </jar>
> >       </target>
> >  -
> >  +
> >       <!-- Creates all the .jar file -->
> >       <target name="jar" depends="compile, prepare-conf, jar-servlet"
> > description="Generates the jar files">
> >
> >  @@ -447,10 +445,10 @@
> >           <fileset dir="${build.docs}">
> >             <include name="**"/>
> >           </fileset>
> >  -      </copy>
> >  +      </copy>
> >
> >       </target>
> >  -
> >  +
> >       <target name="site" depends="javadocs, docs" description=" Places
> > Docs ready for hosting on website">
> >
> >         <mkdir dir="../site/dist/docs/${dir-name}"/>
> >
> >
> >
> >  1.15      +0 -5     
> > jakarta-avalon-excalibur/component/default.properties
> >
> >  Index: default.properties
> >  ===================================================================
> >  RCS file:
> > /home/cvs/jakarta-avalon-excalibur/component/default.properties,v
> > retrieving revision 1.14
> >  retrieving revision 1.15
> >  diff -u -r1.14 -r1.15
> >  --- default.properties     24 Sep 2002 20:39:52 -0000      1.14
> >  +++ default.properties     9 Nov 2002 08:41:03 -0000       1.15
> >  @@ -38,11 +38,6 @@
> >   excalibur-collections.lib=${excalibur-collections.home}
> >  
> > excalibur-collections.jar=${excalibur-collections.lib}/excalibur-collecti
> >ons-1.0.jar
> >
> >  -# ----- Excalibur Container -----
> >  -excalibur-container.home=${basedir}/../container
> >  -excalibur-container.lib=${excalibur-container.home}/build/lib
> > 
> > -excalibur-container.jar=${excalibur-container.lib}/excalibur-container-1
> >.0.jar -
> >   # ----- Excalibur logger, version 1.0 or later -----
> >   excalibur-logger.home=${basedir}/../logger/dist
> >   excalibur-logger.lib=${excalibur-logger.home}
> >
> >
> >
> >  1.16      +1 -2     
> > jakarta-avalon-excalibur/component/src/java/org/apache/avalon/excalibur/c
> >omponent/DefaultComponentFactory.java
> >
> >  Index: DefaultComponentFactory.java
> >  ===================================================================
> >  RCS file:
> > /home/cvs/jakarta-avalon-excalibur/component/src/java/org/apache/avalon/e
> >xcalibur/component/DefaultComponentFactory.java,v retrieving revision 1.15
> >  retrieving revision 1.16
> >  diff -u -r1.15 -r1.16
> >  --- DefaultComponentFactory.java   9 Nov 2002 08:36:27 -0000       1.15
> >  +++ DefaultComponentFactory.java   9 Nov 2002 08:41:03 -0000       1.16
> >  @@ -29,7 +29,6 @@
> >   import org.apache.avalon.framework.service.Serviceable;
> >   import org.apache.avalon.framework.service.WrapperServiceManager;
> >   import org.apache.avalon.framework.thread.ThreadSafe;
> >  -import org.apache.excalibur.container.legacy.ComponentProxyGenerator;
> >   import org.apache.excalibur.instrument.InstrumentManageable;
> >   import org.apache.excalibur.instrument.InstrumentManager;
> >   import org.apache.excalibur.instrument.Instrumentable;
> >
> >
> >
> >  1.1                 
> > jakarta-avalon-excalibur/component/src/java/org/apache/avalon/excalibur/c
> >omponent/ComponentProxyGenerator.java
> >
> >  Index: ComponentProxyGenerator.java
> >  ===================================================================
> >  /* ====================================================================
> >   * The Apache Software License, Version 1.1
> >   *
> >   * Copyright (c) 2002 The Apache Software Foundation. All rights
> >   * reserved.
> >   *
> >   * Redistribution and use in source and binary forms, with or without
> >   * modification, 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", 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 (INCLUDING, 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/>.
> >   */
> >
> >  package org.apache.avalon.excalibur.component;
> >
> >  import java.lang.reflect.InvocationHandler;
> >  import java.lang.reflect.Method;
> >  import java.lang.reflect.Proxy;
> >  import java.lang.reflect.InvocationTargetException;
> >  import org.apache.avalon.framework.component.Component;
> >
> >  /**
> >   * Create a Component proxy.  Requires JDK 1.3+
> >   *
> >   * @author <a href="mailto:bloritsch@;apache.org">Berin Loritsch</a>
> >   */
> >  public final class ComponentProxyGenerator
> >  {
> >      private final ClassLoader m_classLoader;
> >
> >      /**
> >       * Initialize the ComponentProxyGenerator with the default
> > classloader. * The default classloader is the Thread context classloader.
> > */
> >      public ComponentProxyGenerator()
> >      {
> >          this( Thread.currentThread().getContextClassLoader() );
> >      }
> >
> >      /**
> >       * Initialize the ComponentProxyGenerator with the supplied
> > classloader. * If the supplied class loader is null, we use the Thread
> > context class * loader.  If that is null, we use this class's
> > classloader. */
> >      public ComponentProxyGenerator( final ClassLoader parentClassLoader
> > ) {
> >          m_classLoader = ( null == parentClassLoader ) ?
> >              ( ( null == Thread.currentThread().getContextClassLoader() )
> > ? getClass().getClassLoader()
> >
> >              : Thread.currentThread().getContextClassLoader() )
> >              : parentClassLoader;
> >
> >      }
> >
> >      /**
> >       * Get the Component wrapped in the proxy.  The role must be the
> > service * interface's fully qualified classname to work.
> >       */
> >      public Component getProxy( String role, Object service ) throws
> > Exception {
> >          Class serviceInterface = m_classLoader.loadClass( role );
> >
> >          return (Component)Proxy.newProxyInstance( m_classLoader,
> >                                                    new
> > Class[]{Component.class, serviceInterface}, new
> > ComponentInvocationHandler( service ) ); }
> >
> >      /**
> >       * Internal class to handle the wrapping with Component
> >       */
> >      private final static class ComponentInvocationHandler
> >          implements InvocationHandler
> >      {
> >          private final Object m_delagate;
> >
> >          public ComponentInvocationHandler( final Object delegate )
> >          {
> >              if( null == delegate )
> >              {
> >                  throw new NullPointerException( "delegate" );
> >              }
> >
> >              m_delagate = delegate;
> >          }
> >
> >          public Object invoke( final Object proxy,
> >                                final Method meth,
> >                                final Object[] args )
> >              throws Throwable
> >          {
> >              try
> >              {
> >                  return meth.invoke( m_delagate, args );
> >              }
> >              catch( final InvocationTargetException ite )
> >              {
> >                  throw ite.getTargetException();
> >              }
> >          }
> >      }
> >  }
> >
> >
> >
> >  1.2       +29 -33   
> > jakarta-avalon-excalibur/component/src/java/org/apache/avalon/excalibur/c
> >omponent/servlet/AbstractServiceManagerServlet.java
> >
> >  Index: AbstractServiceManagerServlet.java
> >  ===================================================================
> >  RCS file:
> > /home/cvs/jakarta-avalon-excalibur/component/src/java/org/apache/avalon/e
> >xcalibur/component/servlet/AbstractServiceManagerServlet.java,v retrieving
> > revision 1.1
> >  retrieving revision 1.2
> >  diff -u -r1.1 -r1.2
> >  --- AbstractServiceManagerServlet.java     7 Nov 2002 09:50:41 -0000       1.1
> >  +++ AbstractServiceManagerServlet.java     9 Nov 2002 08:41:04 -0000       1.2
> >  @@ -9,23 +9,19 @@
> >
> >   import java.io.IOException;
> >   import java.util.ArrayList;
> >  -
> >   import javax.servlet.ServletConfig;
> >   import javax.servlet.ServletContext;
> >   import javax.servlet.ServletException;
> >   import javax.servlet.http.HttpServlet;
> >   import javax.servlet.http.HttpServletRequest;
> >   import javax.servlet.http.HttpServletResponse;
> >  -
> >   import org.apache.avalon.excalibur.logger.LoggerManager;
> >  -
> >  -import org.apache.avalon.framework.service.ServiceManager;
> >   import org.apache.avalon.framework.logger.Logger;
> >  -
> >  +import org.apache.avalon.framework.service.ServiceManager;
> >   import org.apache.excalibur.instrument.CounterInstrument;
> >   import org.apache.excalibur.instrument.Instrument;
> >  -import org.apache.excalibur.instrument.Instrumentable;
> >   import org.apache.excalibur.instrument.InstrumentManager;
> >  +import org.apache.excalibur.instrument.Instrumentable;
> >   import org.apache.excalibur.instrument.ValueInstrument;
> >
> >   /**
> >  @@ -44,7 +40,7 @@
> >       private String m_referenceName;
> >       private ServiceManager m_serviceManager;
> >       private Logger m_logger;
> >  -
> >  +
> >       /** Instrumentable Name assigned to this Instrumentable */
> >       private String m_instrumentableName;
> >
> >  @@ -56,13 +52,13 @@
> >
> >       /** Flag which is to used to keep track of when the Instrumentable
> > has been registered. */ private boolean m_registered;
> >  -
> >  +
> >       /** Counts the number of times the service is requested. */
> >       private CounterInstrument m_instrumentRequests;
> >  -
> >  +
> >       /** Records the amount of time execute takes to be processed. */
> >       private ValueInstrument m_instrumentTime;
> >  -
> >  +
> >       /*---------------------------------------------------------------
> >        * Constructors
> >        *-------------------------------------------------------------*/
> >  @@ -77,18 +73,18 @@
> >       {
> >           //System.out.println( "AbstractServiceManagerServlet( " +
> > referenceName + " )" ); m_referenceName = referenceName;
> >  -
> >  +
> >           // Set up Instrumentable like AbstractInstrumentable
> >           m_registered = false;
> >           m_instrumentList = new ArrayList();
> >           m_childList = new ArrayList();
> >  -
> >  +
> >           // Create the instruments
> >           setInstrumentableName( referenceName );
> >           addInstrument( m_instrumentRequests = new CounterInstrument(
> > "requests" ) ); addInstrument( m_instrumentTime = new ValueInstrument(
> > "time" ) ); }
> >  -
> >  +
> >       /*---------------------------------------------------------------
> >        * HttpServlet Methods
> >        *-------------------------------------------------------------*/
> >  @@ -115,12 +111,12 @@
> >           }
> >           Logger logger = loggerManager.getLoggerForCategory( "servlet"
> > ); m_logger = logger.getChildLogger( m_referenceName );
> >  -
> >  +
> >           if ( getLogger().isDebugEnabled() )
> >           {
> >               getLogger().debug( "servlet.init( config )" );
> >           }
> >  -
> >  +
> >           // Obtain a reference to the ServiceManager
> >           m_serviceManager =
> >               (ServiceManager)context.getAttribute(
> > ServiceManager.class.getName() ); @@ -129,7 +125,7 @@
> >               throw new IllegalStateException(
> >                   "The ExcaliburComponentManagerServlet servlet was not
> > correctly initialized." ); }
> >  -
> >  +
> >           // Register this servlet with the InstrumentManager if it
> > exists. InstrumentManager instrumentManager =
> >               (InstrumentManager)context.getAttribute(
> > InstrumentManager.class.getName() ); @@ -146,12 +142,12 @@
> >                       "Unable to register the servlet with the instrument
> > manager.", e ); }
> >           }
> >  -
> >  +
> >           // Do this last so the subclasses will be able to access these
> > objects in their //  init method.
> >           super.init( config );
> >       }
> >  -
> >  +
> >       /**
> >        * Called by the servlet container to indicate to a servlet that
> > the servlet *  is being taken out of service.
> >  @@ -162,15 +158,15 @@
> >           {
> >               getLogger().debug( "servlet.destroy()" );
> >           }
> >  -
> >  +
> >           // Release the ServiceManager by removing its reference.
> >           m_serviceManager = null;
> >  -
> >  +
> >           super.destroy();
> >  -
> >  +
> >           // Make sure that the component manager gets collected.
> >           System.gc();
> >  -
> >  +
> >           // Give the system time for the Gc to complete.  This is
> > necessary to make sure that //  the ECMServlet has time to dispose all of
> > its managers before the Tomcat server //  invalidates the current class
> > loader.
> >  @@ -182,7 +178,7 @@
> >           {
> >           }
> >       }
> >  -
> >  +
> >       /**
> >        * Receives standard HTTP requests from the public service method
> > and dispatches *  them to the doXXX methods defined in this class.
> >  @@ -205,24 +201,24 @@
> >                   sb.append( "?" );
> >                   sb.append( query );
> >               }
> >  -
> >  +
> >               getLogger().debug( "Request: " + sb.toString() );
> >           }
> >  -
> >  +
> >           long start = System.currentTimeMillis();
> >  -
> >  +
> >           // Notify the Instrument Manager
> >           m_instrumentRequests.increment();
> >  -
> >  +
> >           super.service( request, response );
> >  -
> >  +
> >           // Notify the Instrument Manager how long the service took.
> >           if ( m_instrumentTime.isActive() )
> >           {
> >               m_instrumentTime.setValue( (int)(
> > System.currentTimeMillis() - start ) ); }
> >       }
> >  -
> >  +
> >       /*---------------------------------------------------------------
> >        * Instrumentable Methods
> >        *-------------------------------------------------------------*/
> >  @@ -303,7 +299,7 @@
> >               return instruments;
> >           }
> >       }
> >  -
> >  +
> >       /*---------------------------------------------------------------
> >        * Methods
> >        *-------------------------------------------------------------*/
> >  @@ -343,7 +339,7 @@
> >           }
> >           m_childList.add( child );
> >       }
> >  -
> >  +
> >       /**
> >        * Obtain a reference to the servlet's logger.
> >        *
> >  @@ -353,7 +349,7 @@
> >       {
> >           return m_logger;
> >       }
> >  -
> >  +
> >       /**
> >        * Returns the current ServiceManager.
> >        *
> >
> >
> >
> >
> >--
> >To unsubscribe, e-mail:  
> > <mailto:avalon-cvs-unsubscribe@;jakarta.apache.org> For additional
> > commands, e-mail: <mailto:avalon-cvs-help@;jakarta.apache.org>

-- 
Cheers,

Peter Donald
---------------------------------------------------
"It is easy to dodge our responsibilities, but we 
cannot dodge the consequences of dodging our 
responsibilities." -Josiah Stamp 
--------------------------------------------------- 



--
To unsubscribe, e-mail:   <mailto:avalon-dev-unsubscribe@;jakarta.apache.org>
For additional commands, e-mail: <mailto:avalon-dev-help@;jakarta.apache.org>

Reply via email to