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>