You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@turbine.apache.org by Jeffery Painter <je...@jivecast.com> on 2019/01/16 17:21:52 UTC

Re: svn commit: r1851472 - in /turbine/fulcrum/trunk/parser: ./ src/changes/ src/java/org/apache/fulcrum/parser/ src/java/org/apache/fulcrum/parser/pool/ src/test/

Hi guys,

This is my first attempt trying to work with commons-pool.  I spent all
morning reading howto's etc. Then I found this step by  step tutorial
which was ultimately the inspiration for the code I just committed.

http://www.techypages.com/2014/03/creating-object-pool-in-java.html

Georg and Thomas, if you have time to review at some point, I welcome
your feedback.  I tried to make the least amount of changes to the
overall API as possible.  The getParser() method in the ParserService is
still kind of clunky (I test for the two types we currently use rather
than using generics), but it is working.  This would not extend well to
the DataStreamParser at current but I didn't see that that code was
being used anywhere.

There is still quite a bit of code in turbine core that relies on
fulcrum-pool (RunData objects I think), but this would be one module
where we can eliminate that co-dependency towards moving fulcrum-pool
and factory to the attic.

Thanks!
Jeff



On 1/16/19 12:16 PM, painter@apache.org wrote:
> Author: painter
> Date: Wed Jan 16 17:16:28 2019
> New Revision: 1851472
>
> URL: http://svn.apache.org/viewvc?rev=1851472&view=rev
> Log:
> Replace fulcrum-pool with commons-pool2 instead
>
> Added:
>     turbine/fulcrum/trunk/parser/src/java/org/apache/fulcrum/parser/pool/
>     turbine/fulcrum/trunk/parser/src/java/org/apache/fulcrum/parser/pool/BaseValueParserFactory.java
>     turbine/fulcrum/trunk/parser/src/java/org/apache/fulcrum/parser/pool/BaseValueParserPool.java
>     turbine/fulcrum/trunk/parser/src/java/org/apache/fulcrum/parser/pool/DefaultParameterParserFactory.java
>     turbine/fulcrum/trunk/parser/src/java/org/apache/fulcrum/parser/pool/DefaultParameterParserPool.java
> Modified:
>     turbine/fulcrum/trunk/parser/pom.xml
>     turbine/fulcrum/trunk/parser/src/changes/changes.xml
>     turbine/fulcrum/trunk/parser/src/java/org/apache/fulcrum/parser/BaseValueParser.java
>     turbine/fulcrum/trunk/parser/src/java/org/apache/fulcrum/parser/DefaultParserService.java
>     turbine/fulcrum/trunk/parser/src/test/TestRoleConfig.xml
>
> Modified: turbine/fulcrum/trunk/parser/pom.xml
> URL: http://svn.apache.org/viewvc/turbine/fulcrum/trunk/parser/pom.xml?rev=1851472&r1=1851471&r2=1851472&view=diff
> ==============================================================================
> --- turbine/fulcrum/trunk/parser/pom.xml (original)
> +++ turbine/fulcrum/trunk/parser/pom.xml Wed Jan 16 17:16:28 2019
> @@ -90,11 +90,11 @@
>        <artifactId>commons-lang3</artifactId>
>        <version>3.8.1</version>
>      </dependency>
> -    <dependency>
> -      <groupId>org.apache.fulcrum</groupId>
> -      <artifactId>fulcrum-pool</artifactId>
> -      <version>1.0.5</version>
> -    </dependency>
> +	<dependency>
> +	    <groupId>org.apache.commons</groupId>
> +	    <artifactId>commons-pool2</artifactId>
> +	    <version>2.6.0</version>
> +	</dependency>
>  
>      <!-- testing dependencies -->
>      <dependency>
>
> Modified: turbine/fulcrum/trunk/parser/src/changes/changes.xml
> URL: http://svn.apache.org/viewvc/turbine/fulcrum/trunk/parser/src/changes/changes.xml?rev=1851472&r1=1851471&r2=1851472&view=diff
> ==============================================================================
> --- turbine/fulcrum/trunk/parser/src/changes/changes.xml (original)
> +++ turbine/fulcrum/trunk/parser/src/changes/changes.xml Wed Jan 16 17:16:28 2019
> @@ -23,6 +23,9 @@
>  
>      <body>
>          <release version="2.0.0" date="in SVN">
> +          <action dev="painter" type="update">
> +            Remove dependency on fulcrum-pool and use commons-pool2 v2.6.0 instead
> +          </action>
>            <action dev="gk" type="update">
>              Added tests for getParts()
>            </action>
>
> Modified: turbine/fulcrum/trunk/parser/src/java/org/apache/fulcrum/parser/BaseValueParser.java
> URL: http://svn.apache.org/viewvc/turbine/fulcrum/trunk/parser/src/java/org/apache/fulcrum/parser/BaseValueParser.java?rev=1851472&r1=1851471&r2=1851472&view=diff
> ==============================================================================
> --- turbine/fulcrum/trunk/parser/src/java/org/apache/fulcrum/parser/BaseValueParser.java (original)
> +++ turbine/fulcrum/trunk/parser/src/java/org/apache/fulcrum/parser/BaseValueParser.java Wed Jan 16 17:16:28 2019
> @@ -39,7 +39,6 @@ import org.apache.avalon.framework.logge
>  import org.apache.avalon.framework.logger.Logger;
>  import org.apache.commons.lang3.ArrayUtils;
>  import org.apache.commons.lang3.StringUtils;
> -import org.apache.fulcrum.pool.Recyclable;
>  
>  /**
>   * BaseValueParser is a base class for classes that need to parse
> @@ -73,7 +72,7 @@ import org.apache.fulcrum.pool.Recyclabl
>   */
>  public class BaseValueParser
>      implements ValueParser,
> -               Recyclable, ParserServiceSupport, LogEnabled
> +               ParserServiceSupport, LogEnabled
>  {
>      /** The ParserService instance to query for conversion and configuration */
>      protected ParserService parserService;
> @@ -168,7 +167,6 @@ public class BaseValueParser
>      /**
>       * Recycles the parser.
>       */
> -    @Override
>      public void recycle()
>      {
>          recycle(DEFAULT_CHARACTER_ENCODING);
> @@ -187,7 +185,6 @@ public class BaseValueParser
>      /**
>       * Disposes the parser.
>       */
> -    @Override
>      public void dispose()
>      {
>          clear();
> @@ -1622,7 +1619,6 @@ public class BaseValueParser
>       *
>       * @return true, if the object is disposed.
>       */
> -    @Override
>      public boolean isDisposed()
>      {
>          return disposed;
> @@ -1683,4 +1679,11 @@ public class BaseValueParser
>      {
>          return parserService.getUrlFolding();
>      }
> +
> +	public boolean isValid() 
> +	{
> +		if ( this.characterEncoding != null && this.locale != null )
> +			return true;
> +		return false;
> +	}
>  }
>
> Modified: turbine/fulcrum/trunk/parser/src/java/org/apache/fulcrum/parser/DefaultParserService.java
> URL: http://svn.apache.org/viewvc/turbine/fulcrum/trunk/parser/src/java/org/apache/fulcrum/parser/DefaultParserService.java?rev=1851472&r1=1851471&r2=1851472&view=diff
> ==============================================================================
> --- turbine/fulcrum/trunk/parser/src/java/org/apache/fulcrum/parser/DefaultParserService.java (original)
> +++ turbine/fulcrum/trunk/parser/src/java/org/apache/fulcrum/parser/DefaultParserService.java Wed Jan 16 17:16:28 2019
> @@ -37,8 +37,10 @@ import org.apache.avalon.framework.servi
>  import org.apache.avalon.framework.service.Serviceable;
>  import org.apache.commons.lang3.StringUtils;
>  import org.apache.fulcrum.parser.ValueParser.URLCaseFolding;
> -import org.apache.fulcrum.pool.PoolException;
> -import org.apache.fulcrum.pool.PoolService;
> +import org.apache.fulcrum.parser.pool.BaseValueParserFactory;
> +import org.apache.fulcrum.parser.pool.BaseValueParserPool;
> +import org.apache.fulcrum.parser.pool.DefaultParameterParserFactory;
> +import org.apache.fulcrum.parser.pool.DefaultParameterParserPool;
>  
>  
>  /**
> @@ -64,10 +66,17 @@ public class DefaultParserService
>       */
>      private String parameterEncoding = PARAMETER_ENCODING_DEFAULT;
>  
> -    /**
> -     * The pool service component to use
> +    /** 
> +     * Use commons pool to manage value parsers 
> +     */
> +    private BaseValueParserPool valueParserPool 
> +    	= new BaseValueParserPool(new BaseValueParserFactory());
> +
> +    /** 
> +     * Use commons pool to manage parameter parsers 
>       */
> -    private PoolService poolService = null;
> +    private DefaultParameterParserPool parameterParserPool 
> +    	= new DefaultParameterParserPool(new DefaultParameterParserFactory());
>  
>      /**
>       * Get the character encoding that will be used by this ValueParser.
> @@ -203,30 +212,35 @@ public class DefaultParserService
>       *
>       * @throws InstantiationException if the instance could not be created
>       */
> -    @Override
> +    @SuppressWarnings("unchecked")
> +	@Override
>      public <P extends ValueParser> P getParser(Class<P> ppClass) throws InstantiationException
>      {
>          P vp = null;
>  
>          try
>          {
> -            @SuppressWarnings("unchecked") // Until PoolService is generified
> -            P parserInstance = (P) poolService.getInstance(ppClass);
> -            vp = parserInstance;
> -
> -            if (vp instanceof ParserServiceSupport)
> +            if ( ppClass.equals(BaseValueParser.class) )
>              {
> -                ((ParserServiceSupport)vp).setParserService(this);
> +            	BaseValueParser parserInstance;
> +				try {
> +					parserInstance = valueParserPool.borrowObject();
> +					vp = (P) parserInstance;
> +				} catch (Exception e) {
> +				}
>              }
>  
> -            if (vp instanceof LogEnabled)
> +            if ( ppClass.equals(DefaultParameterParser.class) )
>              {
> -                ((LogEnabled)vp).enableLogging(getLogger().getChildLogger(ppClass.getSimpleName()));
> +				try {
> +	            	DefaultParameterParser parserInstance = parameterParserPool.borrowObject();
> +	            	vp = (P) parserInstance;
> +				} catch (Exception e) {
> +				}
>              }
> -        }
> -        catch (PoolException pe)
> -        {
> -            throw new InstantiationException("Parser class '" + ppClass + "' is illegal. " + pe.getMessage());
> +            
> +            ((ParserServiceSupport)vp).setParserService(this);
> +            ((LogEnabled)vp).enableLogging(getLogger().getChildLogger(ppClass.getSimpleName()));
>          }
>          catch (ClassCastException x)
>          {
> @@ -247,7 +261,17 @@ public class DefaultParserService
>      public void putParser(ValueParser parser)
>      {
>          parser.clear();
> -        poolService.putInstance(parser);
> +        
> +        if ( parser.getClass().isInstance(BaseValueParser.class) )
> +        {
> +			valueParserPool.returnObject( (BaseValueParser) parser );
> +        }
> +
> +        if ( parser.getClass().isInstance(DefaultParameterParser.class) )
> +        {
> +        	parameterParserPool.returnObject( (DefaultParameterParser) parser );
> +        }
> +
>      }
>  
>      /**
> @@ -296,15 +320,15 @@ public class DefaultParserService
>      @Override
>      public void service(ServiceManager manager) throws ServiceException
>      {
> -        if (manager.hasService(PoolService.ROLE))
> -        {
> -            poolService = (PoolService)manager.lookup(PoolService.ROLE);
> -        }
> -        else
> -        {
> -            throw new ServiceException(ParserService.ROLE,
> -                    "Service requires " +
> -                    PoolService.ROLE + " to be available");
> -        }
> +//        if (manager.hasService(PoolService.ROLE))
> +//        {
> +//            poolService = (PoolService)manager.lookup(PoolService.ROLE);
> +//        }
> +//        else
> +//        {
> +//            throw new ServiceException(ParserService.ROLE,
> +//                    "Service requires " +
> +//                    PoolService.ROLE + " to be available");
> +//        }
>      }
>  }
>
> Added: turbine/fulcrum/trunk/parser/src/java/org/apache/fulcrum/parser/pool/BaseValueParserFactory.java
> URL: http://svn.apache.org/viewvc/turbine/fulcrum/trunk/parser/src/java/org/apache/fulcrum/parser/pool/BaseValueParserFactory.java?rev=1851472&view=auto
> ==============================================================================
> --- turbine/fulcrum/trunk/parser/src/java/org/apache/fulcrum/parser/pool/BaseValueParserFactory.java (added)
> +++ turbine/fulcrum/trunk/parser/src/java/org/apache/fulcrum/parser/pool/BaseValueParserFactory.java Wed Jan 16 17:16:28 2019
> @@ -0,0 +1,75 @@
> +package org.apache.fulcrum.parser.pool;
> +
> +/*
> + * Licensed to the Apache Software Foundation (ASF) under one
> + * or more contributor license agreements.  See the NOTICE file
> + * distributed with this work for additional information
> + * regarding copyright ownership.  The ASF licenses this file
> + * to you under the Apache License, Version 2.0 (the
> + * "License"); you may not use this file except in compliance
> + * with the License.  You may obtain a copy of the License at
> + *
> + *   http://www.apache.org/licenses/LICENSE-2.0
> + *
> + * Unless required by applicable law or agreed to in writing,
> + * software distributed under the License is distributed on an
> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
> + * KIND, either express or implied.  See the License for the
> + * specific language governing permissions and limitations
> + * under the License.
> + */
> +
> +import org.apache.commons.pool2.BasePooledObjectFactory;
> +import org.apache.commons.pool2.PooledObject;
> +import org.apache.commons.pool2.impl.DefaultPooledObject;
> +import org.apache.fulcrum.parser.BaseValueParser;
> +
> +
> +/**
> + * Factory to create {@link org.apache.fulcrum.parser.BaseValueParser} objects
> + *
> + * @author <a href="mailto:painter@apache.org">Jeffery Painter</a>
> + * @version $Id: BaseValueParserFactory.java 1851080 2019-01-16 12:07:00Z painter $
> + */
> +public class BaseValueParserFactory
> +	extends BasePooledObjectFactory<BaseValueParser>
> +{
> +
> +	/* (non-Javadoc)
> +	 * @see org.apache.commons.pool2.BasePooledObjectFactory#create()
> +	 */
> +	@Override
> +	public BaseValueParser create() throws Exception 
> +	{
> +		return new  BaseValueParser();
> +	}
> +
> +	/* (non-Javadoc)
> +	 * @see org.apache.commons.pool2.BasePooledObjectFactory#wrap(java.lang.Object)
> +	 */
> +	@Override
> +	public PooledObject<BaseValueParser> wrap(BaseValueParser obj) 
> +	{
> +		return new DefaultPooledObject<BaseValueParser>(obj);
> +	}
> +	
> +   /**
> +     * When an object is returned to the pool, clear the buffer.
> +     */
> +    @Override
> +    public void passivateObject(PooledObject<BaseValueParser> pooledObject) 
> +    {
> +        pooledObject.getObject().clear();
> +    }
> +    
> +    /* (non-Javadoc)
> +     * @see org.apache.commons.pool2.BasePooledObjectFactory#validateObject(org.apache.commons.pool2.PooledObject)
> +     */
> +    @Override
> +    public boolean validateObject(PooledObject<BaseValueParser> parser) 
> +    {
> +        return parser.getObject().isValid();
> +    }
> +    
> +    
> +}
>
> Added: turbine/fulcrum/trunk/parser/src/java/org/apache/fulcrum/parser/pool/BaseValueParserPool.java
> URL: http://svn.apache.org/viewvc/turbine/fulcrum/trunk/parser/src/java/org/apache/fulcrum/parser/pool/BaseValueParserPool.java?rev=1851472&view=auto
> ==============================================================================
> --- turbine/fulcrum/trunk/parser/src/java/org/apache/fulcrum/parser/pool/BaseValueParserPool.java (added)
> +++ turbine/fulcrum/trunk/parser/src/java/org/apache/fulcrum/parser/pool/BaseValueParserPool.java Wed Jan 16 17:16:28 2019
> @@ -0,0 +1,60 @@
> +package org.apache.fulcrum.parser.pool;
> +
> +/*
> + * Licensed to the Apache Software Foundation (ASF) under one
> + * or more contributor license agreements.  See the NOTICE file
> + * distributed with this work for additional information
> + * regarding copyright ownership.  The ASF licenses this file
> + * to you under the Apache License, Version 2.0 (the
> + * "License"); you may not use this file except in compliance
> + * with the License.  You may obtain a copy of the License at
> + *
> + *   http://www.apache.org/licenses/LICENSE-2.0
> + *
> + * Unless required by applicable law or agreed to in writing,
> + * software distributed under the License is distributed on an
> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
> + * KIND, either express or implied.  See the License for the
> + * specific language governing permissions and limitations
> + * under the License.
> + */
> +
> +import org.apache.commons.pool2.PooledObjectFactory;
> +import org.apache.commons.pool2.impl.GenericObjectPool;
> +import org.apache.commons.pool2.impl.GenericObjectPoolConfig;
> +import org.apache.fulcrum.parser.BaseValueParser;
> +
> +/**
> + * Pool manager for {@link org.apache.fulcrum.parser.BaseValueParser} objects
> + *
> + * @author <a href="mailto:painter@apache.org">Jeffery Painter</a>
> + * @version $Id: BaseValueParserPool.java 1851080 2019-01-16 12:07:00Z painter $
> + */
> +public class BaseValueParserPool extends GenericObjectPool<BaseValueParser> 
> +{
> +
> +	/**
> +	 * Constructor.
> +	 * 
> +	 * @param factory the factory
> +	 */
> +	public BaseValueParserPool(PooledObjectFactory<BaseValueParser> factory) 
> +	{
> +		super(factory);
> +	}
> +
> +	/**
> +	 * Constructor.
> +	 * 
> +	 * This can be used to have full control over the pool using configuration
> +	 * object.
> +	 * 
> +	 * @param factory the factory
> +	 * @param config user defined configuration
> +	 */
> +	public BaseValueParserPool(PooledObjectFactory<BaseValueParser> factory, GenericObjectPoolConfig config) 
> +	{
> +		super(factory, config);
> +	}
> +
> +}
>
> Added: turbine/fulcrum/trunk/parser/src/java/org/apache/fulcrum/parser/pool/DefaultParameterParserFactory.java
> URL: http://svn.apache.org/viewvc/turbine/fulcrum/trunk/parser/src/java/org/apache/fulcrum/parser/pool/DefaultParameterParserFactory.java?rev=1851472&view=auto
> ==============================================================================
> --- turbine/fulcrum/trunk/parser/src/java/org/apache/fulcrum/parser/pool/DefaultParameterParserFactory.java (added)
> +++ turbine/fulcrum/trunk/parser/src/java/org/apache/fulcrum/parser/pool/DefaultParameterParserFactory.java Wed Jan 16 17:16:28 2019
> @@ -0,0 +1,75 @@
> +package org.apache.fulcrum.parser.pool;
> +
> +/*
> + * Licensed to the Apache Software Foundation (ASF) under one
> + * or more contributor license agreements.  See the NOTICE file
> + * distributed with this work for additional information
> + * regarding copyright ownership.  The ASF licenses this file
> + * to you under the Apache License, Version 2.0 (the
> + * "License"); you may not use this file except in compliance
> + * with the License.  You may obtain a copy of the License at
> + *
> + *   http://www.apache.org/licenses/LICENSE-2.0
> + *
> + * Unless required by applicable law or agreed to in writing,
> + * software distributed under the License is distributed on an
> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
> + * KIND, either express or implied.  See the License for the
> + * specific language governing permissions and limitations
> + * under the License.
> + */
> +
> +import org.apache.commons.pool2.BasePooledObjectFactory;
> +import org.apache.commons.pool2.PooledObject;
> +import org.apache.commons.pool2.impl.DefaultPooledObject;
> +import org.apache.fulcrum.parser.DefaultParameterParser;
> +
> +
> +/**
> + * Factory to create {@link org.apache.fulcrum.parser.DefaultParameterParser} objects
> + *
> + * @author <a href="mailto:painter@apache.org">Jeffery Painter</a>
> + * @version $Id: DefaultParameterParserFactory.java 1851080 2019-01-16 12:07:00Z painter $
> + */
> +public class DefaultParameterParserFactory 
> +	extends BasePooledObjectFactory<DefaultParameterParser>
> +{
> +
> +
> +	/* (non-Javadoc)
> +	 * @see org.apache.commons.pool2.BasePooledObjectFactory#create()
> +	 */
> +	@Override
> +	public DefaultParameterParser create() throws Exception 
> +	{
> +		return new  DefaultParameterParser();
> +	}
> +
> +	/* (non-Javadoc)
> +	 * @see org.apache.commons.pool2.BasePooledObjectFactory#wrap(java.lang.Object)
> +	 */
> +	@Override
> +	public PooledObject<DefaultParameterParser> wrap(DefaultParameterParser obj) 
> +	{
> +		return new DefaultPooledObject<DefaultParameterParser>(obj);
> +	}
> +	
> +   /**
> +     * When an object is returned to the pool, clear the buffer.
> +     */
> +    @Override
> +    public void passivateObject(PooledObject<DefaultParameterParser> pooledObject) 
> +    {
> +        pooledObject.getObject().clear();
> +    }
> +    
> +    /* (non-Javadoc)
> +     * @see org.apache.commons.pool2.BasePooledObjectFactory#validateObject(org.apache.commons.pool2.PooledObject)
> +     */
> +    @Override
> +    public boolean validateObject(PooledObject<DefaultParameterParser> parser) 
> +    {
> +        return parser.getObject().isValid();
> +    }
> +    
> +}
>
> Added: turbine/fulcrum/trunk/parser/src/java/org/apache/fulcrum/parser/pool/DefaultParameterParserPool.java
> URL: http://svn.apache.org/viewvc/turbine/fulcrum/trunk/parser/src/java/org/apache/fulcrum/parser/pool/DefaultParameterParserPool.java?rev=1851472&view=auto
> ==============================================================================
> --- turbine/fulcrum/trunk/parser/src/java/org/apache/fulcrum/parser/pool/DefaultParameterParserPool.java (added)
> +++ turbine/fulcrum/trunk/parser/src/java/org/apache/fulcrum/parser/pool/DefaultParameterParserPool.java Wed Jan 16 17:16:28 2019
> @@ -0,0 +1,61 @@
> +package org.apache.fulcrum.parser.pool;
> +
> +/*
> + * Licensed to the Apache Software Foundation (ASF) under one
> + * or more contributor license agreements.  See the NOTICE file
> + * distributed with this work for additional information
> + * regarding copyright ownership.  The ASF licenses this file
> + * to you under the Apache License, Version 2.0 (the
> + * "License"); you may not use this file except in compliance
> + * with the License.  You may obtain a copy of the License at
> + *
> + *   http://www.apache.org/licenses/LICENSE-2.0
> + *
> + * Unless required by applicable law or agreed to in writing,
> + * software distributed under the License is distributed on an
> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
> + * KIND, either express or implied.  See the License for the
> + * specific language governing permissions and limitations
> + * under the License.
> + */
> +
> +import org.apache.commons.pool2.PooledObjectFactory;
> +import org.apache.commons.pool2.impl.GenericObjectPool;
> +import org.apache.commons.pool2.impl.GenericObjectPoolConfig;
> +import org.apache.fulcrum.parser.DefaultParameterParser;
> +
> +
> +/**
> + * Pool manager for {@link org.apache.fulcrum.parser.DefaultParameterParser} objects
> + *
> + * @author <a href="mailto:painter@apache.org">Jeffery Painter</a>
> + * @version $Id: DefaultParameterParserPool.java 1851080 2019-01-16 12:07:00Z painter $
> + */
> +public class DefaultParameterParserPool 
> +	extends GenericObjectPool<DefaultParameterParser>  
> +{
> +
> +	/**
> +	 * Constructor.
> +	 * 
> +	 * @param factory the factory
> +	 */
> +	public DefaultParameterParserPool(PooledObjectFactory<DefaultParameterParser> factory) 
> +	{
> +		super(factory);
> +	}
> +
> +	/**
> +	 * Constructor.
> +	 * 
> +	 * This can be used to have full control over the pool using configuration
> +	 * object.
> +	 * 
> +	 * @param factory the factory
> +	 * @param config user defined configuration
> +	 */
> +	public DefaultParameterParserPool(PooledObjectFactory<DefaultParameterParser> factory, GenericObjectPoolConfig config) 
> +	{
> +		super(factory, config);
> +	}
> +}
>
> Modified: turbine/fulcrum/trunk/parser/src/test/TestRoleConfig.xml
> URL: http://svn.apache.org/viewvc/turbine/fulcrum/trunk/parser/src/test/TestRoleConfig.xml?rev=1851472&r1=1851471&r2=1851472&view=diff
> ==============================================================================
> --- turbine/fulcrum/trunk/parser/src/test/TestRoleConfig.xml (original)
> +++ turbine/fulcrum/trunk/parser/src/test/TestRoleConfig.xml Wed Jan 16 17:16:28 2019
> @@ -20,16 +20,6 @@
>  <!-- This configuration file for Avalon components is used for testing the TestComponent -->
>  <role-list>
>      <role
> -        name="org.apache.fulcrum.pool.PoolService"
> -        shorthand="parser"
> -        default-class="org.apache.fulcrum.pool.DefaultPoolService"
> -    />
> -    <role
> -        name="org.apache.fulcrum.factory.FactoryService"
> -        shorthand="parser"
> -        default-class="org.apache.fulcrum.factory.DefaultFactoryService"
> -    />
> -    <role
>          name="org.apache.fulcrum.parser.ParserService"
>          shorthand="parser"
>          default-class="org.apache.fulcrum.parser.DefaultParserService"
>
>