You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@turbine.apache.org by gk...@apache.org on 2021/09/08 12:43:32 UTC

[turbine-fulcrum-pool] branch master created (now f0282bf)

This is an automated email from the ASF dual-hosted git repository.

gk pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/turbine-fulcrum-pool.git.


      at f0282bf  - update layout/skin - update raw exceptions in JSON component - fix format error in changes.xml

This branch includes the following new commits:

     new ab6768f  +) using fulcrum-yaafi-1.0.5 +) getting it to run with maven 1.1
     new 145f0c6  Major code cleanup, formatting and styling, warnings removed
     new 7cc01d8  (Hopefully) improve documentation
     new e638fff  Moving to M2 build ...
     new 419515c  Use current snapshot dependency (1.0.7) for fulcrum-yaafi
     new 58b5a91  Use release version 1.0.6 of YAAFI for test environment
     new 26853e9  Use released version of fulcrum-testcontainer
     new a3edd50  Add explicit dependency on avalon-api.
     new ac29d69  Update jar version after release
     new 3e8f20d  Add legal stuff.
     new a985aff  A bit too early...
     new b4eda40  Prepare release
     new af9c640  Use released versions
     new 977d1ad  Prepare release
     new 533dde1  Remove Maven-1 control files for Maven-2-released components to avoid confusion.
     new d51a5bb  Prepare release
     new 5785bd6  [maven-release-plugin] prepare release FULCRUM_POOL_1_0_4
     new c585d49  [maven-release-plugin] prepare for next development iteration
     new 5dd5c13  Fix POM
     new b78223a  Added eclipse generated files to svn:ignore for all remaining fulcrum components.
     new 793837e  Fix site building errors: - Updating to Turbine Parent Version 3 - Unknown attribute 'href' for tag 'project'.. - UTF-8 Encoding in XmlRpc Java files
     new 51fc73a  Replace viewcvs with viewvc. Fixes TRB-95
     new ea07584  Ignoring the remaining IntelliJ project files in SVN
     new 1913df2  - update groupId to fulcrum if parent is turbine.
     new 01efcc5  global replace StringBuffer with StringBuilder
     new d3fa05c  working with yaafi snapshot
     new c759c13  Update to java8, type enforcement and cleanup
     new 3a233c1  Remove old dependency reference
     new 3500e96  - updating more parents to Turbine Parent 5 - crypto: update test algo to SHA-256 - crypto: remove not used file CryptoAuthenticator.xml - quartz: using resources in test, moved quartz.xml
     new 62af6a6  Minor maven pom cleanup from Eclipse complaints, adding missing license headers found from rat report
     new 0fc9ae3  Fix/update javadocs for pool and localization for mvn site to build cleanly
     new e04a8a9  Followed gv's example on yaafi-crypto to clean up all poms, removed old deployment management profiles, removed old maven 1.x build files, fixed test case in PBE that relied on old project file, added missing licenses to poms
     new 6edecfc  Code cleanup, fixed last findbug performance error, updated changes.xml
     new 49c3c88  Update all components to fulcrum-yaafi 1.0.8 release
     new b764dce  Updating copyright year in notice files
     new 22e85f6  Update all fulcrum components to use release 1.0.8 of yaafi and testcontainer
     new a50b154  Turbine coding standards compliance, update tests with annotations
     new 7c8b75d  Update junit 5, fix changes doc location for report generation
     new e9df6a8  Update pool to factory release 1.1.1
     new b40f09b  [maven-release-plugin] prepare release fulcrum-pool-1.0.5
     new 26d6f22  [maven-release-plugin] prepare for next development iteration
     new 1e3320a  Start conversion to generics, please review and give feedback
     new a7596db  Add distribution management configuration to fulcrum modules
     new 37299e8  - update fulcrums with parent 6 - update fulcrum quartz to 2.3.1 - update fulcrumtestcontainer deps mockito 2.28.2, junit.jupiter to 5.5.1, junit-platform-runner to 1.5.1 - update README.txt
     new 564c089  - Update Fulcrum Testcontainer 1.0.9 and Turbine Parent 7 - Fix Mock Encoding in Fulcrum Update Test - Format Yaafi Tests - Remove JUnitPlatform in json, crypto module
     new 7cbeb49  Add missing NOTICE.txt files and update copyright year to 2021
     new 63e6353  - fixing relativePath in poms cache, intake, quartz, parser, security, testcontainer - intake: update parser, use in test pool2, add log4j2 for next testcontainer - parser: formatting, dependency fixes, site skin update - testcontainer: add and use log4j2 avalon adapter in yaafi testcontainer, use more JUnit 5 - moved README.txt to READMe.md in root
     new ab62a2a  - Remove .cvsignore, replace with .gitignore (mostly identical)
     new f0282bf  - update layout/skin - update raw exceptions in JSON component - fix format error in changes.xml

The 49 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


[turbine-fulcrum-pool] 15/49: Remove Maven-1 control files for Maven-2-released components to avoid confusion.

Posted by gk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

gk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/turbine-fulcrum-pool.git

commit 533dde18f3f58158e2d09581198c1040a9350683
Author: Thomas Vandahl <tv...@apache.org>
AuthorDate: Sun Jun 21 19:23:31 2009 +0000

    Remove Maven-1 control files for Maven-2-released components to avoid confusion.
    
    git-svn-id: https://svn.apache.org/repos/asf/turbine/fulcrum/trunk/pool@787071 13f79535-47bb-0310-9956-ffa450edef68
---
 maven.xml            | 26 -------------------------
 project.xml          | 55 ----------------------------------------------------
 xdocs/navigation.xml | 37 -----------------------------------
 3 files changed, 118 deletions(-)

diff --git a/maven.xml b/maven.xml
deleted file mode 100644
index 8c6e127..0000000
--- a/maven.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- 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.
--->
-<project default="jar:jar" xmlns:maven="jelly:maven" xmlns:j="jelly:core" xmlns:util="jelly:util">
-
-  <!--preGoal name="java:compile">
-    <attainGoal name="avalon:meta"/>
-  </preGoal-->
-
-</project>
diff --git a/project.xml b/project.xml
deleted file mode 100644
index bec02c5..0000000
--- a/project.xml
+++ /dev/null
@@ -1,55 +0,0 @@
-<?xml version="1.0"?>
-<!--
- 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.
--->
-<project>
-  <extend>${basedir}/../project.xml</extend>
-  <id>fulcrum-pool</id>
-  <name>Fulcrum Pool Component</name>
-  <currentVersion>1.0.3</currentVersion>
-  <versions>
-    <version>
-      <id>1.0.3</id>
-      <name>1.0.3</name>
-      <tag>FULCRUM_POOL_1_0_3</tag>
-    </version>
-  </versions>
-  <dependencies>
-    <dependency>
-      <groupId>fulcrum</groupId>
-      <artifactId>fulcrum-factory</artifactId>
-      <version>1.0.3</version>
-    </dependency>
-
-    <!--  Needed only for testing -->
-    <dependency>
-      <groupId>fulcrum</groupId>
-      <artifactId>fulcrum-testcontainer</artifactId>
-      <version>1.0.5</version>
-    </dependency>
-
-    <dependency>
-      <groupId>fulcrum</groupId>
-      <artifactId>fulcrum-yaafi</artifactId>
-      <version>1.0.5</version>
-    </dependency>
-
-  </dependencies>
-
-</project>
-
diff --git a/xdocs/navigation.xml b/xdocs/navigation.xml
deleted file mode 100644
index 6e7be15..0000000
--- a/xdocs/navigation.xml
+++ /dev/null
@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--
- 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.
--->
-
-<!DOCTYPE project [
-<!ENTITY site-nav SYSTEM "../../incl_site_nav.xml">
-]>
-
-<project
-  name="Fulcrum Pool"
-  href="http://turbine.apache.org/fulcrum/fulcrum-pool/">
-
-  <body>
-
-&site-nav;
-
-    <menu name="Overview">
-      <item name="Main"                 href="/index.html"/>
-    </menu>
-  </body>
-</project>

[turbine-fulcrum-pool] 45/49: - Update Fulcrum Testcontainer 1.0.9 and Turbine Parent 7 - Fix Mock Encoding in Fulcrum Update Test - Format Yaafi Tests - Remove JUnitPlatform in json, crypto module

Posted by gk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

gk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/turbine-fulcrum-pool.git

commit 564c08989f8c714e5809276ca7cecc64888bd123
Author: Georg Kallidis <gk...@apache.org>
AuthorDate: Tue Mar 23 14:42:37 2021 +0000

    - Update Fulcrum Testcontainer 1.0.9 and Turbine Parent 7
    - Fix Mock Encoding in Fulcrum Update Test
    - Format Yaafi Tests
    - Remove JUnitPlatform in json, crypto module
    
    git-svn-id: https://svn.apache.org/repos/asf/turbine/fulcrum/trunk/pool@1887964 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pom.xml b/pom.xml
index 6a66349..f7edb5d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -19,7 +19,7 @@
   <parent>
     <artifactId>turbine-parent</artifactId>
        <groupId>org.apache.turbine</groupId>
-       <version>6</version>
+       <version>7</version>
   </parent>
 
   <modelVersion>4.0.0</modelVersion>
@@ -94,7 +94,7 @@
     <dependency>
       <groupId>org.apache.fulcrum</groupId>
       <artifactId>fulcrum-testcontainer</artifactId>
-      <version>1.0.8</version>
+      <version>1.0.9</version>
       <scope>test</scope>
     </dependency>
     <dependency>

[turbine-fulcrum-pool] 48/49: - Remove .cvsignore, replace with .gitignore (mostly identical)

Posted by gk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

gk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/turbine-fulcrum-pool.git

commit ab62a2a63bcc31a4ccd799988b3844391ce5a2f2
Author: Georg Kallidis <gk...@apache.org>
AuthorDate: Tue Jun 8 08:33:25 2021 +0000

    - Remove .cvsignore, replace with .gitignore (mostly identical)
    
    git-svn-id: https://svn.apache.org/repos/asf/turbine/fulcrum/trunk/pool@1890592 13f79535-47bb-0310-9956-ffa450edef68
---
 .cvsignore => .gitignore | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/.cvsignore b/.gitignore
similarity index 60%
rename from .cvsignore
rename to .gitignore
index 39db54d..4dd87bc 100644
--- a/.cvsignore
+++ b/.gitignore
@@ -1,6 +1,5 @@
-target
-*.log
-.classpath
-.project
-jcoverage.ser
-.merlin
+target
+*.log
+.classpath
+.project
+*.iml

[turbine-fulcrum-pool] 05/49: Use current snapshot dependency (1.0.7) for fulcrum-yaafi

Posted by gk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

gk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/turbine-fulcrum-pool.git

commit 419515ce93fa22946fd09c1b8de3262a663ced68
Author: Thomas Vandahl <tv...@apache.org>
AuthorDate: Fri Mar 27 14:10:08 2009 +0000

    Use current snapshot dependency (1.0.7) for fulcrum-yaafi
    
    git-svn-id: https://svn.apache.org/repos/asf/turbine/fulcrum/trunk/pool@759142 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/pom.xml b/pom.xml
index b3de2ce..804a366 100644
--- a/pom.xml
+++ b/pom.xml
@@ -41,7 +41,7 @@
 
   <distributionManagement>
     <site>
-      <id>fulcrum.website</id>
+      <id>apache.website</id>
       <name>Fulcrum Website</name>
       <url>${fulcrum.deployment.protocol}://people.apache.org/www/turbine.apache.org/fulcrum/fulcrum-pool/</url>
     </site>    
@@ -89,6 +89,12 @@
       <version>1.0.4-SNAPSHOT</version>
     </dependency>
     <dependency>
+      <groupId>commons-pool</groupId>
+      <artifactId>commons-pool</artifactId>
+      <version>1.4</version>
+      <optional>true</optional>
+    </dependency>
+    <dependency>
       <groupId>org.apache.fulcrum</groupId>
       <artifactId>fulcrum-testcontainer</artifactId>
       <version>1.0.6-SNAPSHOT</version>
@@ -97,7 +103,7 @@
     <dependency>
       <groupId>org.apache.fulcrum</groupId>
       <artifactId>fulcrum-yaafi</artifactId>
-      <version>1.0.6-SNAPSHOT</version>
+      <version>1.0.7-SNAPSHOT</version>
       <scope>test</scope>
     </dependency>
   </dependencies>

[turbine-fulcrum-pool] 02/49: Major code cleanup, formatting and styling, warnings removed

Posted by gk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

gk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/turbine-fulcrum-pool.git

commit 145f0c6232db151da615d3000515e82a07496600
Author: Thomas Vandahl <tv...@apache.org>
AuthorDate: Sun Jun 22 09:37:21 2008 +0000

    Major code cleanup, formatting and styling, warnings removed
    
    git-svn-id: https://svn.apache.org/repos/asf/turbine/fulcrum/trunk/pool@670330 13f79535-47bb-0310-9956-ffa450edef68
---
 src/java/org/apache/fulcrum/pool/DefaultPoolService.java       | 10 +++-------
 .../org/apache/fulcrum/pool/ObjectInputStreamForContext.java   |  2 +-
 2 files changed, 4 insertions(+), 8 deletions(-)

diff --git a/src/java/org/apache/fulcrum/pool/DefaultPoolService.java b/src/java/org/apache/fulcrum/pool/DefaultPoolService.java
index 421ffda..ce3adcc 100644
--- a/src/java/org/apache/fulcrum/pool/DefaultPoolService.java
+++ b/src/java/org/apache/fulcrum/pool/DefaultPoolService.java
@@ -286,12 +286,7 @@ public class DefaultPoolService extends AbstractLogEnabled implements PoolServic
     private Map capacityMap;
     private FactoryService factoryService;
     private ServiceManager manager;
-    /**
-     * Constructs a Pool Service.
-     */
-    public DefaultPoolService()
-    {
-    }
+
     /**
      * Gets an instance of a named class either from the pool
      * or by calling the Factory Service if the pool is empty.
@@ -568,10 +563,11 @@ public class DefaultPoolService extends AbstractLogEnabled implements PoolServic
      *
      * @return the factory service.
      */
-    private FactoryService getFactory()
+    protected FactoryService getFactory()
     {
         return factoryService;
     }
+    
     // ---------------- Avalon Lifecycle Methods ---------------------
     /**
      * Avalon component lifecycle method
diff --git a/src/java/org/apache/fulcrum/pool/ObjectInputStreamForContext.java b/src/java/org/apache/fulcrum/pool/ObjectInputStreamForContext.java
index 9683ffe..00a07c1 100644
--- a/src/java/org/apache/fulcrum/pool/ObjectInputStreamForContext.java
+++ b/src/java/org/apache/fulcrum/pool/ObjectInputStreamForContext.java
@@ -39,10 +39,10 @@ public class ObjectInputStreamForContext extends ObjectInputStream
      */
     private ClassLoader classLoader;
 
-    // this is to make the proxy happy.
     public ObjectInputStreamForContext()
         throws IOException
     {
+        // this is to make the proxy happy.
     }
 
     /**

[turbine-fulcrum-pool] 01/49: +) using fulcrum-yaafi-1.0.5 +) getting it to run with maven 1.1

Posted by gk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

gk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/turbine-fulcrum-pool.git

commit ab6768f9302ff44d6a0584614a71a2199d00e34c
Author: Siegfried Goeschl <sg...@apache.org>
AuthorDate: Thu Oct 25 16:29:42 2007 +0000

    +) using fulcrum-yaafi-1.0.5
    +) getting it to run with maven 1.1
    
    git-svn-id: https://svn.apache.org/repos/asf/turbine/fulcrum/trunk/pool@588276 13f79535-47bb-0310-9956-ffa450edef68
---
 .cvsignore                                         |   6 +
 maven.xml                                          |  26 +
 project.xml                                        |  55 ++
 .../apache/fulcrum/pool/ArrayCtorRecyclable.java   |  40 ++
 .../org/apache/fulcrum/pool/BoundedBuffer.java     | 151 +++++
 .../apache/fulcrum/pool/DefaultPoolService.java    | 653 +++++++++++++++++++++
 .../apache/fulcrum/pool/InitableRecyclable.java    |  44 ++
 .../fulcrum/pool/ObjectInputStreamForContext.java  |  70 +++
 .../org/apache/fulcrum/pool/PoolException.java     |  47 ++
 src/java/org/apache/fulcrum/pool/PoolService.java  | 125 ++++
 src/java/org/apache/fulcrum/pool/Recyclable.java   |  57 ++
 src/test/TestComponentConfig.xml                   |  27 +
 src/test/TestRoleConfig.xml                        |  32 +
 .../org/apache/fulcrum/pool/PoolServiceTest.java   | 112 ++++
 xdocs/changes.xml                                  |  45 ++
 xdocs/index.xml                                    | 129 ++++
 xdocs/navigation.xml                               |  37 ++
 17 files changed, 1656 insertions(+)

diff --git a/.cvsignore b/.cvsignore
new file mode 100644
index 0000000..39db54d
--- /dev/null
+++ b/.cvsignore
@@ -0,0 +1,6 @@
+target
+*.log
+.classpath
+.project
+jcoverage.ser
+.merlin
diff --git a/maven.xml b/maven.xml
new file mode 100644
index 0000000..8c6e127
--- /dev/null
+++ b/maven.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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.
+-->
+<project default="jar:jar" xmlns:maven="jelly:maven" xmlns:j="jelly:core" xmlns:util="jelly:util">
+
+  <!--preGoal name="java:compile">
+    <attainGoal name="avalon:meta"/>
+  </preGoal-->
+
+</project>
diff --git a/project.xml b/project.xml
new file mode 100644
index 0000000..bec02c5
--- /dev/null
+++ b/project.xml
@@ -0,0 +1,55 @@
+<?xml version="1.0"?>
+<!--
+ 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.
+-->
+<project>
+  <extend>${basedir}/../project.xml</extend>
+  <id>fulcrum-pool</id>
+  <name>Fulcrum Pool Component</name>
+  <currentVersion>1.0.3</currentVersion>
+  <versions>
+    <version>
+      <id>1.0.3</id>
+      <name>1.0.3</name>
+      <tag>FULCRUM_POOL_1_0_3</tag>
+    </version>
+  </versions>
+  <dependencies>
+    <dependency>
+      <groupId>fulcrum</groupId>
+      <artifactId>fulcrum-factory</artifactId>
+      <version>1.0.3</version>
+    </dependency>
+
+    <!--  Needed only for testing -->
+    <dependency>
+      <groupId>fulcrum</groupId>
+      <artifactId>fulcrum-testcontainer</artifactId>
+      <version>1.0.5</version>
+    </dependency>
+
+    <dependency>
+      <groupId>fulcrum</groupId>
+      <artifactId>fulcrum-yaafi</artifactId>
+      <version>1.0.5</version>
+    </dependency>
+
+  </dependencies>
+
+</project>
+
diff --git a/src/java/org/apache/fulcrum/pool/ArrayCtorRecyclable.java b/src/java/org/apache/fulcrum/pool/ArrayCtorRecyclable.java
new file mode 100644
index 0000000..fd335c0
--- /dev/null
+++ b/src/java/org/apache/fulcrum/pool/ArrayCtorRecyclable.java
@@ -0,0 +1,40 @@
+package org.apache.fulcrum.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.
+ */
+
+
+/**
+ * An interface for objects that can be pooled and
+ * recycled several times by different clients.  This interface
+ * presents a recycle method that does not require introspection/reflection.
+ *
+ * @author <a href="mailto:jmcnally@collab.net">John McNally</a>
+ * @version $Id$
+ */
+public interface ArrayCtorRecyclable extends Recyclable
+{
+    /**
+     * Recycles the object for a new client. Objects implementing
+     * this interface must also provide a matching constructor.
+     * The recycle methods must call their super.
+     */
+    public void recycle(Object[] params);
+}
diff --git a/src/java/org/apache/fulcrum/pool/BoundedBuffer.java b/src/java/org/apache/fulcrum/pool/BoundedBuffer.java
new file mode 100644
index 0000000..40abd8d
--- /dev/null
+++ b/src/java/org/apache/fulcrum/pool/BoundedBuffer.java
@@ -0,0 +1,151 @@
+package org.apache.fulcrum.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.
+ */
+
+
+/**
+ * Efficient array-based bounded buffer class.
+ * Adapted from CPJ, chapter 8, which describes design.
+ * Originally written by Doug Lea and released into the public domain.
+ * <p>[<a href="http://gee.cs.oswego.edu/dl/classes/EDU/oswego/cs/dl/util/concurrent/intro.html"> Introduction to this package. </a>] <p>
+ *
+ * @author <a href="mailto:ilkka.priha@simsoft.fi">Ilkka Priha</a>
+ * @version $Id$
+ */
+public class BoundedBuffer
+{
+    /**
+     * The default capacity.
+     */
+    public static final int DEFAULT_CAPACITY = 1024;
+
+    protected final Object[]  array_;      // the elements
+
+    protected int takePtr_ = 0;            // circular indices
+    protected int putPtr_ = 0;
+
+    protected int usedSlots_ = 0;          // length
+    protected int emptySlots_;             // capacity - length
+
+    /**
+     * Creates a buffer with the given capacity.
+     *
+     * @param capacity the capacity.
+     * @throws IllegalArgumentException if capacity less or equal to zero.
+     */
+    public BoundedBuffer(int capacity)
+                         throws IllegalArgumentException
+    {
+        if (capacity <= 0)
+           throw new IllegalArgumentException();
+
+        array_ = new Object[capacity];
+        emptySlots_ = capacity;
+    }
+
+    /**
+     * Creates a buffer with the default capacity
+     */
+    public BoundedBuffer()
+    {
+        this(DEFAULT_CAPACITY);
+    }
+
+    /**
+     * Returns the number of elements in the buffer.
+     * This is only a snapshot value, that may change
+     * immediately after returning.
+     *
+     * @return the size.
+     */
+    public synchronized int size()
+    {
+        return usedSlots_;
+    }
+
+    /**
+     * Returns the capacity of the buffer.
+     *
+     * @return the capacity.
+     */
+    public int capacity()
+    {
+        return array_.length;
+    }
+
+    /**
+     * Peeks, but does not remove the top item from the buffer.
+     *
+     * @return the object or null.
+     */
+    public synchronized Object peek()
+    {
+        if (usedSlots_ > 0)
+            return array_[takePtr_];
+        else
+            return null;
+    }
+
+    /**
+     * Puts an item in the buffer only if there is capacity available.
+     *
+     * @param item the item to be inserted.
+     * @return true if accepted, else false.
+     */
+    public synchronized boolean offer(Object x)
+    {
+        if (x == null)
+            throw new IllegalArgumentException();
+
+        if (emptySlots_ > 0)
+        {
+            --emptySlots_;
+            array_[putPtr_] = x;
+            if (++putPtr_ >= array_.length)
+                putPtr_ = 0;
+            usedSlots_++;
+            return true;
+        }
+        else
+            return false;
+    }
+
+    /**
+     * Polls and removes the top item from the buffer if one is available.
+     *
+     * @return the oldest item from the buffer, or null if the buffer is empty.
+     */
+    public synchronized Object poll()
+    {
+        if (usedSlots_ > 0)
+        {
+            --usedSlots_;
+            Object old = array_[takePtr_];
+            array_[takePtr_] = null;
+            if (++takePtr_ >= array_.length)
+                takePtr_ = 0;
+            emptySlots_++;
+            return old;
+        }
+        else
+            return null;
+    }
+}
diff --git a/src/java/org/apache/fulcrum/pool/DefaultPoolService.java b/src/java/org/apache/fulcrum/pool/DefaultPoolService.java
new file mode 100644
index 0000000..421ffda
--- /dev/null
+++ b/src/java/org/apache/fulcrum/pool/DefaultPoolService.java
@@ -0,0 +1,653 @@
+package org.apache.fulcrum.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 java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+import org.apache.avalon.framework.activity.Disposable;
+import org.apache.avalon.framework.activity.Initializable;
+import org.apache.avalon.framework.service.ServiceManager;
+import org.apache.avalon.framework.service.Serviceable;
+import org.apache.avalon.framework.configuration.Configurable;
+import org.apache.avalon.framework.configuration.Configuration;
+import org.apache.avalon.framework.logger.AbstractLogEnabled;
+import org.apache.fulcrum.factory.FactoryException;
+import org.apache.fulcrum.factory.FactoryService;
+
+/**
+ * The Pool Service extends the Factory Service by adding support
+ * for pooling instantiated objects. When a new instance is
+ * requested, the service first checks its pool if one is available.
+ * If the the pool is empty, a new instance will be requested
+ * from the FactoryService.
+ *
+ * For objects implementing the Recyclable interface, a recycle
+ * method will be called, when they taken from the pool, and
+ * a dispose method, when they are returned to the pool.
+ *
+ * @author <a href="mailto:ilkka.priha@simsoft.fi">Ilkka Priha</a>
+ * @author <a href="mailto:mcconnell@apache.org">Stephen McConnell</a>
+ * @version $Id$
+ *
+ * @avalon.component name="pool" lifestyle="transient"
+ * @avalon.service type="org.apache.fulcrum.pool.PoolService"
+ */
+public class DefaultPoolService extends AbstractLogEnabled implements PoolService, Serviceable, Disposable, Initializable, Configurable
+{
+    /**
+     * The property specifying the pool capacity.
+     */
+    public static final String POOL_CAPACITY = "capacity";
+    /**
+     * An inner class for class specific pools.
+     */
+    private class PoolBuffer
+    {
+        /**
+         * An inner class for cached recycle methods.
+         */
+        private class Recycler
+        {
+            /**
+             * The method.
+             */
+            private final Method recycle;
+            /**
+             * The signature.
+             */
+            private final String[] signature;
+            /**
+             * Constructs a new recycler.
+             *
+             * @param rec the recycle method.
+             * @param sign the signature.
+             */
+            public Recycler(Method rec, String[] sign)
+            {
+                recycle = rec;
+                signature = (sign != null) && (sign.length > 0) ? sign : null;
+            }
+            /**
+             * Matches the given signature against
+             * that of the recycle method of this recycler.
+             *
+             * @param sign the signature.
+             * @return the matching recycle method or null.
+             */
+            public Method match(String[] sign)
+            {
+                if ((sign != null) && (sign.length > 0))
+                {
+                    if ((signature != null) && (sign.length == signature.length))
+                    {
+                        for (int i = 0; i < signature.length; i++)
+                        {
+                            if (!signature[i].equals(sign[i]))
+                            {
+                                return null;
+                            }
+                        }
+                        return recycle;
+                    }
+                    else
+                    {
+                        return null;
+                    }
+                }
+                else if (signature == null)
+                {
+                    return recycle;
+                }
+                else
+                {
+                    return null;
+                }
+            }
+        }
+        /**
+         * A buffer for class instances.
+         */
+        private BoundedBuffer pool;
+        /**
+         * A flag to determine if a more efficient recycler is implemented.
+         */
+        private boolean arrayCtorRecyclable;
+        /**
+         * A cache for recycling methods.
+         */
+        private ArrayList recyclers;
+        /**
+         * Contructs a new pool buffer with a specific capacity.
+         *
+         * @param capacity a capacity.
+         */
+        public PoolBuffer(int capacity)
+        {
+            pool = new BoundedBuffer(capacity);
+        }
+        /**
+         * Tells pool that it contains objects which can be
+         * initialized using an Object array.
+         *
+         * @param isArrayCtor a <code>boolean</code> value
+         */
+        public void setArrayCtorRecyclable(boolean isArrayCtor)
+        {
+            arrayCtorRecyclable = isArrayCtor;
+        }
+        /**
+         * Polls for an instance from the pool.
+         *
+         * @return an instance or null.
+         */
+        public Object poll(Object[] params, String[] signature) throws PoolException
+        {
+            Object instance = pool.poll();
+            if (instance != null)
+            {
+                if (arrayCtorRecyclable)
+                {
+                    ((ArrayCtorRecyclable) instance).recycle(params);
+                }
+                else if (instance instanceof Recyclable)
+                {
+                    try
+                    {
+                        if ((signature != null) && (signature.length > 0))
+                        {
+                            /* Get the recycle method from the cache. */
+                            Method recycle = getRecycle(signature);
+                            if (recycle == null)
+                            {
+                                synchronized (this)
+                                {
+                                    /* Make a synchronized recheck. */
+                                    recycle = getRecycle(signature);
+                                    if (recycle == null)
+                                    {
+                                        Class clazz = instance.getClass();
+                                        recycle =
+                                            clazz.getMethod(
+                                                "recycle",
+                                                getFactory().getSignature(clazz, params, signature));
+                                        ArrayList cache =
+                                            recyclers != null ? (ArrayList) recyclers.clone() : new ArrayList();
+                                        cache.add(new Recycler(recycle, signature));
+                                        recyclers = cache;
+                                    }
+                                }
+                            }
+                            recycle.invoke(instance, params);
+                        }
+                        else
+                        {
+                            ((Recyclable) instance).recycle();
+                        }
+                    }
+                    catch (Exception x)
+                    {
+                        throw new PoolException("Recycling failed for " + instance.getClass().getName(), x);
+                    }
+                }
+            }
+            return instance;
+        }
+        /**
+         * Offers an instance to the pool.
+         *
+         * @param instance an instance.
+         */
+        public boolean offer(Object instance)
+        {
+            if (instance instanceof Recyclable)
+            {
+                try
+                {
+                    ((Recyclable) instance).dispose();
+                }
+                catch (Exception x)
+                {
+                    return false;
+                }
+            }
+            return pool.offer(instance);
+        }
+        /**
+         * Returns the capacity of the pool.
+         *
+         * @return the capacity.
+         */
+        public int capacity()
+        {
+            return pool.capacity();
+        }
+        /**
+         * Returns the size of the pool.
+         *
+         * @return the size.
+         */
+        public int size()
+        {
+            return pool.size();
+        }
+        /**
+         * Returns a cached recycle method
+         * corresponding to the given signature.
+         *
+         * @param signature the signature.
+         * @return the recycle method or null.
+         */
+        private Method getRecycle(String[] signature)
+        {
+            ArrayList cache = recyclers;
+            if (cache != null)
+            {
+                Method recycle;
+                for (Iterator i = cache.iterator(); i.hasNext();)
+                {
+                    recycle = ((Recycler) i.next()).match(signature);
+                    if (recycle != null)
+                    {
+                        return recycle;
+                    }
+                }
+            }
+            return null;
+        }
+    }
+    /**
+     * The default capacity of pools.
+     */
+    private int poolCapacity = DEFAULT_POOL_CAPACITY;
+    /**
+     * The pool repository, one pool for each class.
+     */
+    private HashMap poolRepository = new HashMap();
+    private Map capacityMap;
+    private FactoryService factoryService;
+    private ServiceManager manager;
+    /**
+     * Constructs a Pool Service.
+     */
+    public DefaultPoolService()
+    {
+    }
+    /**
+     * Gets an instance of a named class either from the pool
+     * or by calling the Factory Service if the pool is empty.
+     *
+     * @param className the name of the class.
+     * @return the instance.
+     * @throws PoolException if recycling fails.
+     */
+    public Object getInstance(String className) throws PoolException
+    {
+        try
+        {
+            Object instance = pollInstance(className, null, null);
+            return instance == null ? getFactory().getInstance(className) : instance;
+        }
+        catch (FactoryException fe)
+        {
+            throw new PoolException(fe);
+        }
+    }
+    /**
+     * Gets an instance of a named class either from the pool
+     * or by calling the Factory Service if the pool is empty.
+     * The specified class loader will be passed to the Factory Service.
+     *
+     * @param className the name of the class.
+     * @param loader the class loader.
+     * @return the instance.
+     * @throws PoolException if recycling fails.
+     */
+    public Object getInstance(String className, ClassLoader loader) throws PoolException
+    {
+        try
+        {
+            Object instance = pollInstance(className, null, null);
+            return instance == null ? getFactory().getInstance(className, loader) : instance;
+        }
+        catch (FactoryException fe)
+        {
+            throw new PoolException(fe);
+        }
+    }
+    /**
+     * Gets an instance of a named class either from the pool
+     * or by calling the Factory Service if the pool is empty.
+     * Parameters for its constructor are given as an array of objects,
+     * primitive types must be wrapped with a corresponding class.
+     *
+     * @param className the name of the class.
+     * @param loader the class loader.
+     * @param params an array containing the parameters of the constructor.
+     * @param signature an array containing the signature of the constructor.
+     * @return the instance.
+     * @throws PoolException if recycling fails.
+     */
+    public Object getInstance(String className, Object[] params, String[] signature) throws PoolException
+    {
+        try
+        {
+            Object instance = pollInstance(className, params, signature);
+            return instance == null ? getFactory().getInstance(className, params, signature) : instance;
+        }
+        catch (FactoryException fe)
+        {
+            throw new PoolException(fe);
+        }
+    }
+    /**
+     * Gets an instance of a named class either from the pool
+     * or by calling the Factory Service if the pool is empty.
+     * Parameters for its constructor are given as an array of objects,
+     * primitive types must be wrapped with a corresponding class.
+     * The specified class loader will be passed to the Factory Service.
+     *
+     * @param className the name of the class.
+     * @param loader the class loader.
+     * @param params an array containing the parameters of the constructor.
+     * @param signature an array containing the signature of the constructor.
+     * @return the instance.
+     * @throws PoolException if recycling fails.
+     */
+    public Object getInstance(String className, ClassLoader loader, Object[] params, String[] signature)
+        throws PoolException
+    {
+        try
+        {
+            Object instance = pollInstance(className, params, signature);
+            return instance == null ? getFactory().getInstance(className, loader, params, signature) : instance;
+        }
+        catch (FactoryException fe)
+        {
+            throw new PoolException(fe);
+        }
+    }
+    /**
+     * Tests if specified class loaders are supported for a named class.
+     *
+     * @param className the name of the class.
+     * @return true if class loaders are supported, false otherwise.
+     * @throws PoolException if test fails.
+     */
+    public boolean isLoaderSupported(String className) throws FactoryException
+    {
+        return getFactory().isLoaderSupported(className);
+    }
+    /**
+     * Gets an instance of a specified class either from the pool
+     * or by instatiating from the class if the pool is empty.
+     *
+     * @param clazz the class.
+     * @return the instance.
+     * @throws PoolException if recycling fails.
+     */
+    public Object getInstance(Class clazz) throws PoolException
+    {
+        try
+        {
+            Object instance = pollInstance(clazz.getName(), null, null);
+            return instance == null ? factoryService.getInstance(clazz) : instance;
+        }
+        catch (FactoryException fe)
+        {
+            throw new PoolException(fe);
+        }
+    }
+    /**
+     * Gets an instance of a specified class either from the pool
+     * or by instatiating from the class if the pool is empty.
+     *
+     * @todo There is a whacky .toString() on the clazzz, but otherwise it
+     * won't compile..
+     * @param clazz the class.
+     * @param params an array containing the parameters of the constructor.
+     * @param signature an array containing the signature of the constructor.
+     * @return the instance.
+     * @throws PoolException if recycling fails.
+     */
+    public Object getInstance(Class clazz, Object params[], String signature[]) throws PoolException
+    {
+        try
+        {
+            Object instance = pollInstance(clazz.getName(), params, signature);
+            //FactoryService fs = getFactory();
+            return instance == null ? getFactory().getInstance(clazz.toString(), params, signature) : instance;
+        }
+        catch (FactoryException fe)
+        {
+            throw new PoolException(fe);
+        }
+    }
+    /**
+     * Puts a used object back to the pool. Objects implementing
+     * the Recyclable interface can provide a recycle method to
+     * be called when they are reused and a dispose method to be
+     * called when they are returned to the pool.
+     *
+     * @param instance the object instance to recycle.
+     * @return true if the instance was accepted.
+     */
+    public boolean putInstance(Object instance)
+    {
+        if (instance != null)
+        {
+            HashMap repository = poolRepository;
+            String className = instance.getClass().getName();
+            PoolBuffer pool = (PoolBuffer) repository.get(className);
+            if (pool == null)
+            {
+                pool = new PoolBuffer(getCapacity(className));
+                repository = (HashMap) repository.clone();
+                repository.put(className, pool);
+                poolRepository = repository;
+                if (instance instanceof ArrayCtorRecyclable)
+                {
+                    pool.setArrayCtorRecyclable(true);
+                }
+            }
+            return pool.offer(instance);
+        }
+        else
+        {
+            return false;
+        }
+    }
+    /**
+     * Gets the capacity of the pool for a named class.
+     *
+     * @param className the name of the class.
+     */
+    public int getCapacity(String className)
+    {
+        PoolBuffer pool = (PoolBuffer) poolRepository.get(className);
+        if (pool == null)
+        {
+            /* Check class specific capacity. */
+            int capacity = poolCapacity;
+            if (capacityMap != null)
+            {
+                Integer cap = (Integer) capacityMap.get(className);
+                if (cap != null)
+                {
+                    capacity = cap.intValue();
+                }
+            }
+            return capacity;
+        }
+        else
+        {
+            return pool.capacity();
+        }
+    }
+    /**
+     * Sets the capacity of the pool for a named class.
+     * Note that the pool will be cleared after the change.
+     *
+     * @param className the name of the class.
+     * @param capacity the new capacity.
+     */
+    public void setCapacity(String className, int capacity)
+    {
+        HashMap repository = poolRepository;
+        repository = repository != null ? (HashMap) repository.clone() : new HashMap();
+        repository.put(className, new PoolBuffer(capacity));
+        poolRepository = repository;
+    }
+    /**
+     * Gets the current size of the pool for a named class.
+     *
+     * @param className the name of the class.
+     */
+    public int getSize(String className)
+    {
+        PoolBuffer pool = (PoolBuffer) poolRepository.get(className);
+        return pool != null ? pool.size() : 0;
+    }
+    /**
+     * Clears instances of a named class from the pool.
+     *
+     * @param className the name of the class.
+     */
+    public void clearPool(String className)
+    {
+        HashMap repository = poolRepository;
+        if (repository.get(className) != null)
+        {
+            repository = (HashMap) repository.clone();
+            repository.remove(className);
+            poolRepository = repository;
+        }
+    }
+    /**
+     * Clears all instances from the pool.
+     */
+    public void clearPool()
+    {
+        poolRepository = new HashMap();
+    }
+    /**
+     * Polls and recycles an object of the named class from the pool.
+     *
+     * @param className the name of the class.
+     * @param params an array containing the parameters of the constructor.
+     * @param signature an array containing the signature of the constructor.
+     * @return the object or null.
+     * @throws PoolException if recycling fails.
+     */
+    private Object pollInstance(String className, Object[] params, String[] signature) throws PoolException
+    {
+        PoolBuffer pool = (PoolBuffer) poolRepository.get(className);
+        return pool != null ? pool.poll(params, signature) : null;
+    }
+    /**
+     * Gets the factory service.
+     *
+     * @return the factory service.
+     */
+    private FactoryService getFactory()
+    {
+        return factoryService;
+    }
+    // ---------------- Avalon Lifecycle Methods ---------------------
+    /**
+     * Avalon component lifecycle method
+     */
+    public void configure(Configuration conf)
+    {
+        final Configuration capacities = conf.getChild(POOL_CAPACITY, false);
+        if (capacities != null)
+        {
+            Configuration defaultConf = capacities.getChild("default");
+            int capacity = defaultConf.getValueAsInteger(DEFAULT_POOL_CAPACITY);
+            if (capacity <= 0)
+            {
+                throw new IllegalArgumentException("Capacity must be >0");
+            }
+            poolCapacity = capacity;
+            Configuration[] nameVal = capacities.getChildren();
+            for (int i = 0; i < nameVal.length; i++)
+            {
+                String key = nameVal[i].getName();
+                if (!"default".equals(key))
+                {
+                    capacity = nameVal[i].getValueAsInteger(poolCapacity);
+                    if (capacity < 0)
+                    {
+                        capacity = poolCapacity;
+                    }
+                    if (capacityMap == null)
+                    {
+                        capacityMap = new HashMap();
+                    }
+                    capacityMap.put(key, new Integer(capacity));
+                }
+            }
+        }
+    }
+
+    /**
+     * Avalon component lifecycle method
+     * @avalon.dependency type="org.apache.fulcrum.factory.FactoryService"
+     */
+    public void service(ServiceManager manager)
+    {
+        this.manager = manager;
+    }
+
+    /**
+     * Avalon component lifecycle method
+     * Initializes the service by loading default class loaders
+     * and customized object factories.
+     *
+     * @throws InitializationException if initialization fails.
+     */
+    public void initialize() throws Exception
+    {
+        try
+        {
+            factoryService = (FactoryService) manager.lookup(FactoryService.ROLE);
+        }
+        catch (Exception e)
+        {
+            throw new Exception(
+               "DefaultPoolService.initialize: Failed to get a Factory object", e);
+        }
+    }
+
+    /**
+     * Avalon component lifecycle method
+     */
+    public void dispose()
+    {
+        if (factoryService != null)
+        {
+            manager.release(factoryService);
+        }
+        factoryService = null;
+        manager = null;
+    }
+}
diff --git a/src/java/org/apache/fulcrum/pool/InitableRecyclable.java b/src/java/org/apache/fulcrum/pool/InitableRecyclable.java
new file mode 100644
index 0000000..f6683a6
--- /dev/null
+++ b/src/java/org/apache/fulcrum/pool/InitableRecyclable.java
@@ -0,0 +1,44 @@
+package org.apache.fulcrum.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.
+ */
+
+
+
+
+
+/**
+ * An interface for objects that can be pooled and recycled several times
+ * by different clients.  Pooled objects that implement this interface
+ * use no argument ctor and recycle methods.  Initialization is taken
+ * care of using the init method.  This is a way to avoid
+ * introspection/reflection when pooling an object.
+ *
+ * @author <a href="mailto:jmcnally@collab.net">John McNally</a>
+ * @version $Id$
+ */
+public interface InitableRecyclable extends Recyclable
+{
+    /**
+     * This method should be called after retrieving the object from
+     * the pool.
+     */
+    public void init(Object initObj) throws PoolException;
+}
diff --git a/src/java/org/apache/fulcrum/pool/ObjectInputStreamForContext.java b/src/java/org/apache/fulcrum/pool/ObjectInputStreamForContext.java
new file mode 100644
index 0000000..9683ffe
--- /dev/null
+++ b/src/java/org/apache/fulcrum/pool/ObjectInputStreamForContext.java
@@ -0,0 +1,70 @@
+package org.apache.fulcrum.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 java.io.InputStream;
+import java.io.ObjectInputStream;
+import java.io.ObjectStreamClass;
+import java.io.IOException;
+
+/**
+ * A deserialization stream for a specific class loader context.
+ *
+ * @author <a href="mailto:ilkka.priha@simsoft.fi">Ilkka Priha</a>
+ * @version $Id$
+ */
+public class ObjectInputStreamForContext extends ObjectInputStream
+{
+    /**
+     * The class loader of the context.
+     */
+    private ClassLoader classLoader;
+
+    // this is to make the proxy happy.
+    public ObjectInputStreamForContext()
+        throws IOException
+    {
+    }
+
+    /**
+     * Contructs a new object stream for a context.
+     *
+     * @param in the serialized input stream.
+     * @param loader the class loader of the context.
+     * @throws IOException on errors.
+     */
+    public  ObjectInputStreamForContext(InputStream in,
+                                        ClassLoader loader)
+                                        throws IOException
+    {
+        super(in);
+        classLoader = loader;
+    }
+
+    protected Class resolveClass(ObjectStreamClass v)
+                                 throws IOException,
+                                 ClassNotFoundException
+    {
+        return classLoader == null ?
+            super.resolveClass(v) : classLoader.loadClass(v.getName());
+    }
+}
diff --git a/src/java/org/apache/fulcrum/pool/PoolException.java b/src/java/org/apache/fulcrum/pool/PoolException.java
new file mode 100644
index 0000000..7dd5d60
--- /dev/null
+++ b/src/java/org/apache/fulcrum/pool/PoolException.java
@@ -0,0 +1,47 @@
+package org.apache.fulcrum.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.
+ */
+
+/**
+ * Exception thrown when there is a problem with the PoolException
+ *
+ * @author <a href="mailto:epugh@upstate.com">Eric Pugh</a>
+ * @version $Id$
+ */
+public class PoolException extends Exception
+{
+    /**
+     * Serial number
+     */
+    private static final long serialVersionUID = 8192045560423973532L;
+
+    public PoolException(String msg)
+    {
+        super(msg);
+    }
+	public PoolException(Exception ex)
+	  {
+		  super(ex);
+	  }
+    public PoolException(String msg, Exception ex)
+    {
+        super(msg, ex);
+    }
+}
diff --git a/src/java/org/apache/fulcrum/pool/PoolService.java b/src/java/org/apache/fulcrum/pool/PoolService.java
new file mode 100644
index 0000000..2c0d654
--- /dev/null
+++ b/src/java/org/apache/fulcrum/pool/PoolService.java
@@ -0,0 +1,125 @@
+package org.apache.fulcrum.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.
+ */
+
+
+
+/**
+ * The Pool Service extends the Factory Service by adding support
+ * for pooling instantiated objects. When a new instance is
+ * requested, the service first checks its pool if one is available.
+ * If the the pool is empty, a new object will be instantiated
+ * from the specified class. If only class name is given, the request
+ * to create an instance will be forwarded to the Factory Service.
+ *
+ * <p>For objects implementing the Recyclable interface, a recycle
+ * method will be called, when they are taken from the pool, and
+ * a dispose method, when they are returned to the pool.
+ *
+ * @author <a href="mailto:ilkka.priha@simsoft.fi">Ilkka Priha</a>
+ * @author <a href="mailto:mcconnell@apache.org">Stephen McConnell</a>
+ * @version $Id$
+ */
+public interface PoolService
+{
+    /** Avalon role - used to id the component within the manager */
+    String ROLE = PoolService.class.getName();
+
+
+    /**
+     * The default pool capacity.
+     */
+    public static final int DEFAULT_POOL_CAPACITY = 128;
+
+    /**
+     * Gets an instance of a specified class either from the pool
+     * or by instantiating from the class if the pool is empty.
+     *
+     * @param clazz the class.
+     * @return the instance.
+     * @throws PoolException if recycling fails.
+     */
+    public Object getInstance(Class clazz)
+        throws PoolException;
+
+    /**
+     * Gets an instance of a specified class either from the pool
+     * or by instantiating from the class if the pool is empty.
+     *
+     * @param clazz the class.
+     * @param params an array containing the parameters of the constructor.
+     * @param signature an array containing the signature of the constructor.
+     * @return the instance.
+     * @throws PoolException if recycling fails.
+     */
+    public Object getInstance(Class clazz,
+                              Object params[],
+                              String signature[])
+        throws PoolException;
+
+    /**
+     * Puts a used object back to the pool. Objects implementing
+     * the Recyclable interface can provide a recycle method to
+     * be called when they are reused and a dispose method to be
+     * called when they are returned to the pool.
+     *
+     * @param instance the object instance to recycle.
+     * @return true if the instance was accepted.
+     */
+    public boolean putInstance(Object instance);
+
+    /**
+     * Gets the capacity of the pool for a named class.
+     *
+     * @param className the name of the class.
+     */
+    public int getCapacity(String className);
+
+    /**
+     * Sets the capacity of the pool for a named class.
+     * Note that the pool will be cleared after the change.
+     *
+     * @param className the name of the class.
+     * @param capacity the new capacity.
+     */
+    public void setCapacity(String className,
+                            int capacity);
+
+    /**
+     * Gets the current size of the pool for a named class.
+     *
+     * @param className the name of the class.
+     */
+    public int getSize(String className);
+
+    /**
+     * Clears instances of a named class from the pool.
+     *
+     * @param className the name of the class.
+     */
+    public void clearPool(String className);
+
+    /**
+     * Clears all instances from the pool.
+     */
+    void clearPool();
+
+}
diff --git a/src/java/org/apache/fulcrum/pool/Recyclable.java b/src/java/org/apache/fulcrum/pool/Recyclable.java
new file mode 100644
index 0000000..762535a
--- /dev/null
+++ b/src/java/org/apache/fulcrum/pool/Recyclable.java
@@ -0,0 +1,57 @@
+package org.apache.fulcrum.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.
+ */
+
+
+/**
+ * An interface for objects that can be pooled and
+ * recycled several times by different clients.
+ *
+ * @author <a href="mailto:ilkka.priha@simsoft.fi">Ilkka Priha</a>
+ * @version $Id$
+ */
+public interface Recyclable
+{
+    /**
+     * Recycles the object for a new client. Recycle methods with
+     * parameters must be added to implementing object and they will be
+     * automatically called by pool implementations when the object is
+     * taken from the pool for a new client. The parameters must
+     * correspond to the parameters of the constructors of the object.
+     * For new objects, constructors can call their corresponding recycle
+     * methods whenever applicable.
+     * The recycle methods must call their super.
+     */
+    public void recycle();
+
+    /**
+     * Disposes the object after use. The method is called
+     * when the object is returned to its pool.
+     * The dispose method must call its super.
+     */
+    public void dispose();
+
+    /**
+     * Checks whether the recyclable has been disposed.
+     * @return true, if the recyclable is disposed.
+     */
+    public boolean isDisposed();
+}
diff --git a/src/test/TestComponentConfig.xml b/src/test/TestComponentConfig.xml
new file mode 100644
index 0000000..dcb4cdd
--- /dev/null
+++ b/src/test/TestComponentConfig.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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.
+-->
+<componentConfig>
+    <pool>
+          <configuration>
+       <capacity default="256"/>
+     </configuration>
+    </pool>
+    <factory/>
+</componentConfig>
diff --git a/src/test/TestRoleConfig.xml b/src/test/TestRoleConfig.xml
new file mode 100644
index 0000000..20b744e
--- /dev/null
+++ b/src/test/TestRoleConfig.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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.
+-->
+<!-- This configuration file for Avalon components is used for testing the TestComponent -->
+<role-list>
+    <role
+        name="org.apache.fulcrum.factory.FactoryService"
+        shorthand="factory"
+        default-class="org.apache.fulcrum.factory.DefaultFactoryService"
+    />
+    <role
+        name="org.apache.fulcrum.pool.PoolService"
+        shorthand="pool"
+        default-class="org.apache.fulcrum.pool.DefaultPoolService"
+    />
+</role-list>
diff --git a/src/test/org/apache/fulcrum/pool/PoolServiceTest.java b/src/test/org/apache/fulcrum/pool/PoolServiceTest.java
new file mode 100644
index 0000000..b8c5d73
--- /dev/null
+++ b/src/test/org/apache/fulcrum/pool/PoolServiceTest.java
@@ -0,0 +1,112 @@
+package org.apache.fulcrum.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.fulcrum.testcontainer.BaseUnitTest;
+
+/**
+ * @author Eric Pugh
+ * @author <a href="mailto:mcconnell@apache.org">Stephen McConnell</a>
+ *
+ * To change the template for this generated type comment go to
+ * Window>Preferences>Java>Code Generation>Code and Comments
+ */
+public class PoolServiceTest extends BaseUnitTest
+{
+    private PoolService poolService = null;
+    /**
+    	* Defines the testcase name for JUnit.
+    	*
+    	* @param name the testcase's name.
+    	*/
+    public PoolServiceTest(String name)
+    {
+        super(name);
+    }
+
+    public void setUp() throws Exception
+    {
+        super.setUp();
+
+        poolService = (PoolService) this.resolve( PoolService.class.getName() );
+    }
+
+    /*
+     * Class to test for Object getInstance(Class)
+     */
+    public void testGetInstanceClass() throws PoolException
+    {
+        Object object = poolService.getInstance(StringBuffer.class);
+        assertTrue(object instanceof StringBuffer);
+
+    }
+
+    public void testPutInstance()
+    {
+        String s = "I am a string";
+        assertEquals(0, poolService.getSize("java.lang.String"));
+        poolService.putInstance(s);
+        assertEquals(1, poolService.getSize("java.lang.String"));
+
+    }
+    public void testGetSetCapacity()
+    {
+        assertEquals(128, poolService.getCapacity("java.lang.String"));
+        poolService.setCapacity("java.lang.String", 278);
+        assertEquals(278, poolService.getCapacity("java.lang.String"));
+
+    }
+    public void testGetSize()
+    {
+        String s = "I am a string";
+        assertEquals(0, poolService.getSize("java.lang.String"));
+        poolService.putInstance(s);
+        assertEquals(1, poolService.getSize("java.lang.String"));
+
+    }
+    /*
+     * Class to test for void clearPool(String)
+     */
+    public void testClearPoolString()
+    {
+        String s = "I am a string";
+        assertEquals(0, poolService.getSize("java.lang.String"));
+        poolService.putInstance(s);
+        assertEquals(1, poolService.getSize("java.lang.String"));
+        poolService.clearPool("java.lang.String");
+        assertEquals(0, poolService.getSize("java.lang.String"));
+
+    }
+    /*
+     * Class to test for void clearPool()
+     */
+    public void testClearPool()
+    {
+        String s = "I am a string";
+        assertEquals(0, poolService.getSize("java.lang.String"));
+        poolService.putInstance(s);
+        poolService.putInstance(new Double(32));
+        assertEquals(1, poolService.getSize("java.lang.String"));
+        poolService.clearPool();
+        assertEquals(0, poolService.getSize("java.lang.String"));
+        assertEquals(0, poolService.getSize("java.lang.Double"));
+
+    }
+}
diff --git a/xdocs/changes.xml b/xdocs/changes.xml
new file mode 100644
index 0000000..cfae165
--- /dev/null
+++ b/xdocs/changes.xml
@@ -0,0 +1,45 @@
+<?xml version="1.0"?>
+<!--
+ 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.
+-->
+<document>
+  <properties>
+    <title>Fulcrum Pool Impl</title>
+    <author email="epugh@opensourceconnections.com">Eric Pugh</author>
+  </properties>
+
+  <body>
+    <release version="1.0.3" date="2004-11-24">
+      <action dev="epugh" type="update" due-to="Kostyantyn Shchekotykhin">
+        Merge api and impl jars into one project.
+      </action>
+      <action dev="epugh" type="update">
+        Clean up dependencies.  Use TestContainer.
+      </action>
+      <action dev="epugh" type="update">
+        Bump versions, clean up dependencies
+      </action>
+    </release>
+    <release version="1.0.2" date="in cvs">
+      <action dev="epugh" type="update">
+        Update to use Merlin 3.3.0
+      </action>
+    </release>
+  </body>
+</document>
+
diff --git a/xdocs/index.xml b/xdocs/index.xml
new file mode 100644
index 0000000..f50c7f1
--- /dev/null
+++ b/xdocs/index.xml
@@ -0,0 +1,129 @@
+<?xml version="1.0"?>
+<!--
+ 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.
+-->
+
+<document>
+
+  <properties>
+    <title>Pool Component</title>
+    <author email="epugh@upstate.com">Eric PUgh</author>
+  </properties>
+
+  <body>
+
+  <section name="Overview">
+
+<p>
+The Pool Service extends the functionality of the Factory Service by adding
+support for pooling objects intantiated from the given class name or
+Class object reference. Pooling of objects stabilizes memory consumption and
+reduces garbage collection making response times in server applications
+more predictable.
+</p>
+
+<p>
+When a new instance is requested from the service, it first checks its pool
+if one is available. If the the pool is empty, a new object will be instantiated
+from the given class. If the class is specified by its name, the request to create
+an instance will be forwarded to the Factory Service.
+</p>
+
+<p>
+For pooled objects implementing the Recyclable interface, a recycle method
+will be called, when they are taken from the pool, and a dispose method,
+when they are returned to the pool. Implementations of the methods should
+clear and initialize the pooled instances correspondingly. Objects
+that do not implement the interface can also be pooled, if they do not
+need to perform any specific actions during pooling. A RecyclableSupport class
+can be extended to get a minimal implementation of the interface.
+</p>
+
+<p>
+An ArrayCtorRecyclable interface extends the Recyclable interface providing
+a more efficient recycle method with less reflection for recycling frequently
+used objects having constuctors with parameters.
+</p>
+  </section>
+
+<section name="Configuration">
+
+    <p>
+      First, here is the role configuration.  This component requires the FactoryService
+      component.
+    </p>
+
+<source>
+<![CDATA[
+    <role
+        name="org.apache.fulcrum.pool.PoolService"
+        shorthand="pool"
+        default-class="org.apache.fulcrum.pool.DefaultPoolService"/>
+
+
+    <role
+        name="org.apache.fulcrum.factory.FactoryService"
+        shorthand="factory"
+        default-class="org.apache.fulcrum.factory.DefaultFactoryService"/>
+]]>
+</source>
+
+  <p>
+    Now comes the basic configuration of the component.  Here will will
+    configure the various bundles.
+  </p>
+<source>
+
+<![CDATA[
+    <pool>
+      <capacity default="256"/>
+    </pool>
+
+    <factory/>
+]]>
+</source>
+
+  </section>
+
+  <section name="Usage">
+
+<p>
+The Pool Service can be called instead of the Factory Service, when instantiating
+objects that are needed repeatedly e.g. for processing client requests. Intances
+of RunData implementations, ParameterParser and CookieParser implementations,
+Pull Service tools, etc, are typical examples of pooled objects. Used objects
+must be returned to the Pool Service for recycling. The TurbinePool class is a
+static accessor for common methods of the Pool Service:
+</p>
+
+<source><![CDATA[
+// Get a pooled DOM parser.
+DocumentBuilder parser =
+    TurbinePool.getInstance("javax.xml.parsers.DocumentBuilder");
+
+// Parse an XML document.
+Document doc = parser.parse(myfile);
+
+// Return the parser to the pool.
+TurbinePool.putInstance(parser);
+]]></source>
+
+  </section>
+
+</body>
+</document>
diff --git a/xdocs/navigation.xml b/xdocs/navigation.xml
new file mode 100644
index 0000000..6e7be15
--- /dev/null
+++ b/xdocs/navigation.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+ 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.
+-->
+
+<!DOCTYPE project [
+<!ENTITY site-nav SYSTEM "../../incl_site_nav.xml">
+]>
+
+<project
+  name="Fulcrum Pool"
+  href="http://turbine.apache.org/fulcrum/fulcrum-pool/">
+
+  <body>
+
+&site-nav;
+
+    <menu name="Overview">
+      <item name="Main"                 href="/index.html"/>
+    </menu>
+  </body>
+</project>

[turbine-fulcrum-pool] 24/49: - update groupId to fulcrum if parent is turbine.

Posted by gk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

gk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/turbine-fulcrum-pool.git

commit 1913df28c15acaeaa308d132f49e74ba010648a4
Author: Georg Kallidis <gk...@apache.org>
AuthorDate: Fri Oct 9 12:32:21 2015 +0000

    - update groupId to fulcrum if parent is turbine.
    
    git-svn-id: https://svn.apache.org/repos/asf/turbine/fulcrum/trunk/pool@1707704 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml | 1 +
 1 file changed, 1 insertion(+)

diff --git a/pom.xml b/pom.xml
index dae8826..b3e14ab 100644
--- a/pom.xml
+++ b/pom.xml
@@ -24,6 +24,7 @@
 
   <modelVersion>4.0.0</modelVersion>
   <artifactId>fulcrum-pool</artifactId>
+  <groupId>org.apache.fulcrum</groupId>
   <version>1.0.5-SNAPSHOT</version>
   <name>Fulcrum Pool</name>
   <inceptionYear>2005</inceptionYear>

[turbine-fulcrum-pool] 09/49: Update jar version after release

Posted by gk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

gk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/turbine-fulcrum-pool.git

commit ac29d6902c0687228b57dd737efd1d4bae16e566
Author: Thomas Vandahl <tv...@apache.org>
AuthorDate: Thu Jun 18 20:14:31 2009 +0000

    Update jar version after release
    
    git-svn-id: https://svn.apache.org/repos/asf/turbine/fulcrum/trunk/pool@786238 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml | 27 ++++++++++++++++++++++++---
 1 file changed, 24 insertions(+), 3 deletions(-)

diff --git a/pom.xml b/pom.xml
index c5dff66..b714ea6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -91,14 +91,14 @@
     <dependency>
       <groupId>org.apache.fulcrum</groupId>
       <artifactId>fulcrum-factory</artifactId>
-      <version>1.0.4-SNAPSHOT</version>
+      <version>1.0.4</version>
     </dependency>
-    <dependency>
+    <!-- dependency>
       <groupId>commons-pool</groupId>
       <artifactId>commons-pool</artifactId>
       <version>1.4</version>
       <optional>true</optional>
-    </dependency>
+    </dependency -->
     <dependency>
       <groupId>org.apache.fulcrum</groupId>
       <artifactId>fulcrum-testcontainer</artifactId>
@@ -117,5 +117,26 @@
     <sourceDirectory>${basedir}/src/java</sourceDirectory>
     <testSourceDirectory>${basedir}/src/test</testSourceDirectory>
   </build>
+
+  <profiles>
+    <profile>
+      <id>rc</id>
+      <distributionManagement>
+        <!-- Cannot define in parent ATM, see COMMONSSITE-26 -->
+        <site>
+          <id>apache.website</id>
+          <name>Apache Fulcrum Release Candidate Staging Site</name>
+          <url>${fulcrum.deployment.protocol}://people.apache.org/www/turbine.apache.org/builds/fulcrum/${fulcrum.componentid}/${fulcrum.release.version}/${fulcrum.rc.version}/site</url>
+        </site>
+      </distributionManagement>
+    </profile>
+  </profiles>
+  
+  <properties>
+    <!-- This bits are used for the staging directory -->
+    <fulcrum.release.version>1.0.4</fulcrum.release.version>
+    <fulcrum.rc.version>RC1</fulcrum.rc.version>  
+    <fulcrum.deployment.protocol>scpexe</fulcrum.deployment.protocol>
+  </properties>  
 	
 </project>

[turbine-fulcrum-pool] 08/49: Add explicit dependency on avalon-api.

Posted by gk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

gk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/turbine-fulcrum-pool.git

commit a3edd50fc1df921de032a59fa3084c5f730156c3
Author: Thomas Vandahl <tv...@apache.org>
AuthorDate: Sat Jun 13 09:29:17 2009 +0000

    Add explicit dependency on avalon-api.
    
    git-svn-id: https://svn.apache.org/repos/asf/turbine/fulcrum/trunk/pool@784353 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/pom.xml b/pom.xml
index 5574c87..c5dff66 100644
--- a/pom.xml
+++ b/pom.xml
@@ -84,6 +84,11 @@
 
   <dependencies>
     <dependency>
+      <groupId>org.apache.avalon.framework</groupId>
+      <artifactId>avalon-framework-api</artifactId>
+      <version>4.3.1</version>
+    </dependency>
+    <dependency>
       <groupId>org.apache.fulcrum</groupId>
       <artifactId>fulcrum-factory</artifactId>
       <version>1.0.4-SNAPSHOT</version>

[turbine-fulcrum-pool] 04/49: Moving to M2 build ...

Posted by gk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

gk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/turbine-fulcrum-pool.git

commit e638fffa53ef7a90962e5ea5e5da4e265d5cd349
Author: Siegfried Goeschl <sg...@apache.org>
AuthorDate: Mon Mar 23 18:22:43 2009 +0000

    Moving to M2 build ...
    
    git-svn-id: https://svn.apache.org/repos/asf/turbine/fulcrum/trunk/pool@757488 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml | 110 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 110 insertions(+)

diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..b3de2ce
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0"?>
+<!--
+   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.
+-->
+<project
+    xmlns="http://maven.apache.org/POM/4.0.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <parent>
+    <groupId>org.apache.fulcrum</groupId>
+    <artifactId>fulcrum-parent</artifactId>
+    <version>1</version>
+  </parent>
+
+  <modelVersion>4.0.0</modelVersion>
+  <artifactId>fulcrum-pool</artifactId>
+  <version>1.0.4-SNAPSHOT</version>
+  <name>Fulcrum Pool</name>
+  <inceptionYear>2005</inceptionYear>
+  <description>Fulcrum Pool Service</description>
+  <url>http://turbine.apache.org/fulcrum/fulcrum-pool</url>
+		
+  <scm>
+    <connection>scm:svn:http://svn.apache.org/repos/asf/turbine/fulcrum/trunk/pool/</connection>
+    <developerConnection>scm:svn:https://svn.apache.org/repos/asf/turbine/fulcrum/trunk/pool/</developerConnection>
+    <url>http://svn.apache.org/viewcvs/turbine/fulcrum/trunk/pool/</url>
+  </scm>
+
+  <distributionManagement>
+    <site>
+      <id>fulcrum.website</id>
+      <name>Fulcrum Website</name>
+      <url>${fulcrum.deployment.protocol}://people.apache.org/www/turbine.apache.org/fulcrum/fulcrum-pool/</url>
+    </site>    
+  </distributionManagement>
+	
+  <developers>
+    <developer>
+      <name>Eric Pugh</name>
+      <id>epugh</id>
+      <email>epugh@upstate.com</email>
+    </developer>  
+    <developer>
+      <name>Henning P. Schmiedehausen</name>
+      <id>henning</id>
+      <email>hps@intermeta.de</email>
+      <organization>INTERMETA - Gesellschaft fuer Mehrwertdienste mbH</organization>
+      <roles>
+        <role>Java Developer</role>
+      </roles>      
+    </developer>  
+    <developer>
+      <name>Siegfried Goeschl</name>
+      <id>sgoeschl</id>
+      <email>sgoeschl@apache.org</email>
+      <organization></organization>
+      <roles>
+        <role>Java Developer</role>
+      </roles>
+    </developer>
+    <developer>
+      <name>Thomas Vandahl</name>
+      <id>tv</id>
+      <email>tv@apache.org</email>
+      <organization></organization>
+      <roles>
+        <role>Java Developer</role>
+      </roles>
+    </developer>
+  </developers>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.fulcrum</groupId>
+      <artifactId>fulcrum-factory</artifactId>
+      <version>1.0.4-SNAPSHOT</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.fulcrum</groupId>
+      <artifactId>fulcrum-testcontainer</artifactId>
+      <version>1.0.6-SNAPSHOT</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.fulcrum</groupId>
+      <artifactId>fulcrum-yaafi</artifactId>
+      <version>1.0.6-SNAPSHOT</version>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <sourceDirectory>${basedir}/src/java</sourceDirectory>
+    <testSourceDirectory>${basedir}/src/test</testSourceDirectory>
+  </build>
+	
+</project>

[turbine-fulcrum-pool] 21/49: Fix site building errors: - Updating to Turbine Parent Version 3 - Unknown attribute 'href' for tag 'project'.. - UTF-8 Encoding in XmlRpc Java files

Posted by gk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

gk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/turbine-fulcrum-pool.git

commit 793837e41f0ebd51578fa4ba9ef5c683fdb6aacf
Author: Georg Kallidis <gk...@apache.org>
AuthorDate: Fri Jun 6 10:39:45 2014 +0000

    Fix site building errors:
    - Updating to Turbine Parent Version 3
    - Unknown attribute 'href' for tag 'project'..
    - UTF-8 Encoding in XmlRpc Java files
    
    git-svn-id: https://svn.apache.org/repos/asf/turbine/fulcrum/trunk/pool@1600843 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml           | 6 +++---
 src/site/site.xml | 8 ++++----
 2 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/pom.xml b/pom.xml
index 03ed4f2..1b9fa4e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -17,9 +17,9 @@
 -->
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
   <parent>
-    <groupId>org.apache.fulcrum</groupId>
-    <artifactId>fulcrum-parent</artifactId>
-    <version>1</version>
+    <artifactId>turbine-parent</artifactId>
+       <groupId>org.apache.turbine</groupId>
+       <version>3</version>
   </parent>
 
   <modelVersion>4.0.0</modelVersion>
diff --git a/src/site/site.xml b/src/site/site.xml
index 8e64fd1..1c18504 100644
--- a/src/site/site.xml
+++ b/src/site/site.xml
@@ -17,10 +17,10 @@
  specific language governing permissions and limitations
  under the License.
 -->
-<project
-  name="Fulcrum Pool"
-  href="http://turbine.apache.org/fulcrum/fulcrum-pool/">
-
+<project xmlns="http://maven.apache.org/DECORATION/1.4.0" 
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://maven.apache.org/DECORATION/1.4.0 http://maven.apache.org/xsd/decoration-1.4.0.xsd"
+  name="Fulcrum Pool">
   <body>
     <menu name="Overview">
       <item name="Main"                 href="/index.html"/>

[turbine-fulcrum-pool] 25/49: global replace StringBuffer with StringBuilder

Posted by gk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

gk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/turbine-fulcrum-pool.git

commit 01efcc55d951f9b93e3d0edf339b47bbc5051bd5
Author: Jeffery Painter <pa...@apache.org>
AuthorDate: Wed Oct 3 14:02:01 2018 +0000

    global replace StringBuffer with StringBuilder
    
    git-svn-id: https://svn.apache.org/repos/asf/turbine/fulcrum/trunk/pool@1842724 13f79535-47bb-0310-9956-ffa450edef68
---
 src/test/org/apache/fulcrum/pool/PoolServiceTest.java | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/test/org/apache/fulcrum/pool/PoolServiceTest.java b/src/test/org/apache/fulcrum/pool/PoolServiceTest.java
index b8c5d73..6130e95 100644
--- a/src/test/org/apache/fulcrum/pool/PoolServiceTest.java
+++ b/src/test/org/apache/fulcrum/pool/PoolServiceTest.java
@@ -53,8 +53,8 @@ public class PoolServiceTest extends BaseUnitTest
      */
     public void testGetInstanceClass() throws PoolException
     {
-        Object object = poolService.getInstance(StringBuffer.class);
-        assertTrue(object instanceof StringBuffer);
+        Object object = poolService.getInstance(StringBuilder.class);
+        assertTrue(object instanceof StringBuilder);
 
     }
 

[turbine-fulcrum-pool] 07/49: Use released version of fulcrum-testcontainer

Posted by gk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

gk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/turbine-fulcrum-pool.git

commit 26853e99ef4645f8756111a0090a6e2bd27e1e25
Author: Thomas Vandahl <tv...@apache.org>
AuthorDate: Fri May 29 21:22:59 2009 +0000

    Use released version of fulcrum-testcontainer
    
    git-svn-id: https://svn.apache.org/repos/asf/turbine/fulcrum/trunk/pool@780110 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 9a4abc5..5574c87 100644
--- a/pom.xml
+++ b/pom.xml
@@ -97,7 +97,7 @@
     <dependency>
       <groupId>org.apache.fulcrum</groupId>
       <artifactId>fulcrum-testcontainer</artifactId>
-      <version>1.0.6-SNAPSHOT</version>
+      <version>1.0.6</version>
       <scope>test</scope>
     </dependency>
     <dependency>

[turbine-fulcrum-pool] 34/49: Update all components to fulcrum-yaafi 1.0.8 release

Posted by gk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

gk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/turbine-fulcrum-pool.git

commit 49c3c884731fff05903fc55f0affa112cef74499
Author: Jeffery Painter <pa...@apache.org>
AuthorDate: Mon Dec 17 17:14:35 2018 +0000

    Update all components to fulcrum-yaafi 1.0.8 release
    
    git-svn-id: https://svn.apache.org/repos/asf/turbine/fulcrum/trunk/pool@1849110 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 552aa65..c7aedda 100644
--- a/pom.xml
+++ b/pom.xml
@@ -92,7 +92,7 @@
     <dependency>
       <groupId>org.apache.fulcrum</groupId>
       <artifactId>fulcrum-yaafi</artifactId>
-      <version>1.0.8-SNAPSHOT</version>
+      <version>1.0.8</version>
       <scope>test</scope>
     </dependency>
   </dependencies>

[turbine-fulcrum-pool] 10/49: Add legal stuff.

Posted by gk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

gk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/turbine-fulcrum-pool.git

commit 3e8f20de7c36f0e3fa5b7ee5a7be1acb8f87cb1a
Author: Thomas Vandahl <tv...@apache.org>
AuthorDate: Thu Jun 18 20:16:55 2009 +0000

    Add legal stuff.
    
    git-svn-id: https://svn.apache.org/repos/asf/turbine/fulcrum/trunk/pool@786241 13f79535-47bb-0310-9956-ffa450edef68
---
 LICENSE.txt | 202 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 NOTICE.txt  |   6 ++
 2 files changed, 208 insertions(+)

diff --git a/LICENSE.txt b/LICENSE.txt
new file mode 100644
index 0000000..d645695
--- /dev/null
+++ b/LICENSE.txt
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed 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.
diff --git a/NOTICE.txt b/NOTICE.txt
new file mode 100644
index 0000000..6db22bd
--- /dev/null
+++ b/NOTICE.txt
@@ -0,0 +1,6 @@
+Turbine Fulcrum Pool Component
+Copyright 2005-2009 The Apache Software Foundation.
+
+This product includes software developed at
+The Apache Software Foundation (http://www.apache.org/).
+

[turbine-fulcrum-pool] 43/49: Add distribution management configuration to fulcrum modules

Posted by gk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

gk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/turbine-fulcrum-pool.git

commit a7596db7059bdd9eb451c471a69d66bad342081d
Author: Jeffery Painter <pa...@apache.org>
AuthorDate: Mon May 20 15:49:44 2019 +0000

    Add distribution management configuration to fulcrum modules
    
    git-svn-id: https://svn.apache.org/repos/asf/turbine/fulcrum/trunk/pool@1859569 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 1a50863..6909b64 100644
--- a/pom.xml
+++ b/pom.xml
@@ -30,7 +30,15 @@
   <inceptionYear>2005</inceptionYear>
   <description>Fulcrum Pool Service</description>
   <url>http://turbine.apache.org/fulcrum/fulcrum-pool</url>
-		
+
+  <!-- Required for staging to work -->
+  <distributionManagement>
+    <site>
+      <id>turbine.apache.org</id>
+      <url>https://turbine.apache.org/fulcrum/fulcrum-pool/</url>
+    </site>
+  </distributionManagement>
+
   <scm>
     <connection>scm:svn:http://svn.apache.org/repos/asf/turbine/fulcrum/trunk/pool/</connection>
     <developerConnection>scm:svn:https://svn.apache.org/repos/asf/turbine/fulcrum/trunk/pool/</developerConnection>
@@ -104,6 +112,9 @@
 
   <properties>
     <turbine.site.path>fulcrum/fulcrum-pool</turbine.site.path>
+    <turbine.scmPubCheckoutDirectory>${turbine.site.cache}/fulcrum/pool</turbine.scmPubCheckoutDirectory>
+    <turbine.site.cache>${project.build.directory}/turbine-sites</turbine.site.cache>
+    <siteContent.path>${project.build.directory}/staging</siteContent.path><!-- default stagingSiteURL -->
   </properties>  
 	
 </project>

[turbine-fulcrum-pool] 27/49: Update to java8, type enforcement and cleanup

Posted by gk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

gk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/turbine-fulcrum-pool.git

commit c759c13671ae88ff4ac9375a70e4687eb6803260
Author: Jeffery Painter <pa...@apache.org>
AuthorDate: Mon Oct 8 16:54:50 2018 +0000

    Update to java8, type enforcement and cleanup
    
    git-svn-id: https://svn.apache.org/repos/asf/turbine/fulcrum/trunk/pool@1843173 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml                                            |  16 ++
 .../apache/fulcrum/pool/DefaultPoolService.java    | 262 ++-------------------
 src/java/org/apache/fulcrum/pool/PoolBuffer.java   | 166 +++++++++++++
 src/java/org/apache/fulcrum/pool/Recycler.java     |  65 +++++
 4 files changed, 271 insertions(+), 238 deletions(-)

diff --git a/pom.xml b/pom.xml
index 3d0e7cc..c6f79fd 100644
--- a/pom.xml
+++ b/pom.xml
@@ -114,6 +114,18 @@
   <build>
     <sourceDirectory>${basedir}/src/java</sourceDirectory>
     <testSourceDirectory>${basedir}/src/test</testSourceDirectory>
+    
+    <plugins>
+		<plugin>
+		    <groupId>org.apache.maven.plugins</groupId>
+		    <artifactId>maven-compiler-plugin</artifactId>
+		    <version>3.6.1</version>
+		    <configuration>
+		        <source>${maven.compiler.source}</source>
+		        <target>${maven.compiler.target}</target>
+		    </configuration>
+		</plugin>    
+    </plugins>
   </build>
 
   <profiles>
@@ -130,7 +142,11 @@
     </profile>
   </profiles>
   
+  
   <properties>
+	<maven.compiler.target>1.8</maven.compiler.target>
+	<maven.compiler.source>1.8</maven.compiler.source>
+  
     <!-- This bits are used for the staging directory -->
     <fulcrum.release.version>1.0.4</fulcrum.release.version>
     <fulcrum.rc.version>RC1</fulcrum.rc.version>  
diff --git a/src/java/org/apache/fulcrum/pool/DefaultPoolService.java b/src/java/org/apache/fulcrum/pool/DefaultPoolService.java
index ce3adcc..30b4739 100644
--- a/src/java/org/apache/fulcrum/pool/DefaultPoolService.java
+++ b/src/java/org/apache/fulcrum/pool/DefaultPoolService.java
@@ -1,5 +1,7 @@
 package org.apache.fulcrum.pool;
 
+import java.util.HashMap;
+
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -19,18 +21,15 @@ package org.apache.fulcrum.pool;
  * under the License.
  */
 
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
 import java.util.Map;
+
 import org.apache.avalon.framework.activity.Disposable;
 import org.apache.avalon.framework.activity.Initializable;
-import org.apache.avalon.framework.service.ServiceManager;
-import org.apache.avalon.framework.service.Serviceable;
 import org.apache.avalon.framework.configuration.Configurable;
 import org.apache.avalon.framework.configuration.Configuration;
 import org.apache.avalon.framework.logger.AbstractLogEnabled;
+import org.apache.avalon.framework.service.ServiceManager;
+import org.apache.avalon.framework.service.Serviceable;
 import org.apache.fulcrum.factory.FactoryException;
 import org.apache.fulcrum.factory.FactoryService;
 
@@ -59,231 +58,14 @@ public class DefaultPoolService extends AbstractLogEnabled implements PoolServic
      */
     public static final String POOL_CAPACITY = "capacity";
     /**
-     * An inner class for class specific pools.
-     */
-    private class PoolBuffer
-    {
-        /**
-         * An inner class for cached recycle methods.
-         */
-        private class Recycler
-        {
-            /**
-             * The method.
-             */
-            private final Method recycle;
-            /**
-             * The signature.
-             */
-            private final String[] signature;
-            /**
-             * Constructs a new recycler.
-             *
-             * @param rec the recycle method.
-             * @param sign the signature.
-             */
-            public Recycler(Method rec, String[] sign)
-            {
-                recycle = rec;
-                signature = (sign != null) && (sign.length > 0) ? sign : null;
-            }
-            /**
-             * Matches the given signature against
-             * that of the recycle method of this recycler.
-             *
-             * @param sign the signature.
-             * @return the matching recycle method or null.
-             */
-            public Method match(String[] sign)
-            {
-                if ((sign != null) && (sign.length > 0))
-                {
-                    if ((signature != null) && (sign.length == signature.length))
-                    {
-                        for (int i = 0; i < signature.length; i++)
-                        {
-                            if (!signature[i].equals(sign[i]))
-                            {
-                                return null;
-                            }
-                        }
-                        return recycle;
-                    }
-                    else
-                    {
-                        return null;
-                    }
-                }
-                else if (signature == null)
-                {
-                    return recycle;
-                }
-                else
-                {
-                    return null;
-                }
-            }
-        }
-        /**
-         * A buffer for class instances.
-         */
-        private BoundedBuffer pool;
-        /**
-         * A flag to determine if a more efficient recycler is implemented.
-         */
-        private boolean arrayCtorRecyclable;
-        /**
-         * A cache for recycling methods.
-         */
-        private ArrayList recyclers;
-        /**
-         * Contructs a new pool buffer with a specific capacity.
-         *
-         * @param capacity a capacity.
-         */
-        public PoolBuffer(int capacity)
-        {
-            pool = new BoundedBuffer(capacity);
-        }
-        /**
-         * Tells pool that it contains objects which can be
-         * initialized using an Object array.
-         *
-         * @param isArrayCtor a <code>boolean</code> value
-         */
-        public void setArrayCtorRecyclable(boolean isArrayCtor)
-        {
-            arrayCtorRecyclable = isArrayCtor;
-        }
-        /**
-         * Polls for an instance from the pool.
-         *
-         * @return an instance or null.
-         */
-        public Object poll(Object[] params, String[] signature) throws PoolException
-        {
-            Object instance = pool.poll();
-            if (instance != null)
-            {
-                if (arrayCtorRecyclable)
-                {
-                    ((ArrayCtorRecyclable) instance).recycle(params);
-                }
-                else if (instance instanceof Recyclable)
-                {
-                    try
-                    {
-                        if ((signature != null) && (signature.length > 0))
-                        {
-                            /* Get the recycle method from the cache. */
-                            Method recycle = getRecycle(signature);
-                            if (recycle == null)
-                            {
-                                synchronized (this)
-                                {
-                                    /* Make a synchronized recheck. */
-                                    recycle = getRecycle(signature);
-                                    if (recycle == null)
-                                    {
-                                        Class clazz = instance.getClass();
-                                        recycle =
-                                            clazz.getMethod(
-                                                "recycle",
-                                                getFactory().getSignature(clazz, params, signature));
-                                        ArrayList cache =
-                                            recyclers != null ? (ArrayList) recyclers.clone() : new ArrayList();
-                                        cache.add(new Recycler(recycle, signature));
-                                        recyclers = cache;
-                                    }
-                                }
-                            }
-                            recycle.invoke(instance, params);
-                        }
-                        else
-                        {
-                            ((Recyclable) instance).recycle();
-                        }
-                    }
-                    catch (Exception x)
-                    {
-                        throw new PoolException("Recycling failed for " + instance.getClass().getName(), x);
-                    }
-                }
-            }
-            return instance;
-        }
-        /**
-         * Offers an instance to the pool.
-         *
-         * @param instance an instance.
-         */
-        public boolean offer(Object instance)
-        {
-            if (instance instanceof Recyclable)
-            {
-                try
-                {
-                    ((Recyclable) instance).dispose();
-                }
-                catch (Exception x)
-                {
-                    return false;
-                }
-            }
-            return pool.offer(instance);
-        }
-        /**
-         * Returns the capacity of the pool.
-         *
-         * @return the capacity.
-         */
-        public int capacity()
-        {
-            return pool.capacity();
-        }
-        /**
-         * Returns the size of the pool.
-         *
-         * @return the size.
-         */
-        public int size()
-        {
-            return pool.size();
-        }
-        /**
-         * Returns a cached recycle method
-         * corresponding to the given signature.
-         *
-         * @param signature the signature.
-         * @return the recycle method or null.
-         */
-        private Method getRecycle(String[] signature)
-        {
-            ArrayList cache = recyclers;
-            if (cache != null)
-            {
-                Method recycle;
-                for (Iterator i = cache.iterator(); i.hasNext();)
-                {
-                    recycle = ((Recycler) i.next()).match(signature);
-                    if (recycle != null)
-                    {
-                        return recycle;
-                    }
-                }
-            }
-            return null;
-        }
-    }
-    /**
      * The default capacity of pools.
      */
     private int poolCapacity = DEFAULT_POOL_CAPACITY;
     /**
      * The pool repository, one pool for each class.
      */
-    private HashMap poolRepository = new HashMap();
-    private Map capacityMap;
+    private HashMap<String, PoolBuffer> poolRepository = new HashMap<>();
+    private Map<String, Integer> capacityMap;
     private FactoryService factoryService;
     private ServiceManager manager;
 
@@ -400,7 +182,8 @@ public class DefaultPoolService extends AbstractLogEnabled implements PoolServic
      * @return the instance.
      * @throws PoolException if recycling fails.
      */
-    public Object getInstance(Class clazz) throws PoolException
+    @SuppressWarnings("unchecked")
+	public Object getInstance(Class clazz) throws PoolException
     {
         try
         {
@@ -446,17 +229,18 @@ public class DefaultPoolService extends AbstractLogEnabled implements PoolServic
      * @param instance the object instance to recycle.
      * @return true if the instance was accepted.
      */
-    public boolean putInstance(Object instance)
+    @SuppressWarnings("unchecked")
+	public boolean putInstance(Object instance)
     {
         if (instance != null)
         {
-            HashMap repository = poolRepository;
+            HashMap<String, PoolBuffer> repository = poolRepository;
             String className = instance.getClass().getName();
             PoolBuffer pool = (PoolBuffer) repository.get(className);
             if (pool == null)
             {
                 pool = new PoolBuffer(getCapacity(className));
-                repository = (HashMap) repository.clone();
+                repository = (HashMap<String, PoolBuffer>) repository.clone();
                 repository.put(className, pool);
                 poolRepository = repository;
                 if (instance instanceof ArrayCtorRecyclable)
@@ -505,10 +289,11 @@ public class DefaultPoolService extends AbstractLogEnabled implements PoolServic
      * @param className the name of the class.
      * @param capacity the new capacity.
      */
-    public void setCapacity(String className, int capacity)
+    @SuppressWarnings("unchecked")
+	public void setCapacity(String className, int capacity)
     {
-        HashMap repository = poolRepository;
-        repository = repository != null ? (HashMap) repository.clone() : new HashMap();
+        HashMap<String, PoolBuffer> repository = poolRepository;
+        repository = repository != null ? (HashMap<String, PoolBuffer>) repository.clone() : new HashMap<String, PoolBuffer>();
         repository.put(className, new PoolBuffer(capacity));
         poolRepository = repository;
     }
@@ -527,12 +312,13 @@ public class DefaultPoolService extends AbstractLogEnabled implements PoolServic
      *
      * @param className the name of the class.
      */
-    public void clearPool(String className)
+    @SuppressWarnings("unchecked")
+	public void clearPool(String className)
     {
-        HashMap repository = poolRepository;
+        HashMap<String, PoolBuffer> repository = poolRepository;
         if (repository.get(className) != null)
         {
-            repository = (HashMap) repository.clone();
+            repository = (HashMap<String, PoolBuffer>) repository.clone();
             repository.remove(className);
             poolRepository = repository;
         }
@@ -542,7 +328,7 @@ public class DefaultPoolService extends AbstractLogEnabled implements PoolServic
      */
     public void clearPool()
     {
-        poolRepository = new HashMap();
+        poolRepository = new HashMap<String, PoolBuffer>();
     }
     /**
      * Polls and recycles an object of the named class from the pool.
@@ -556,7 +342,7 @@ public class DefaultPoolService extends AbstractLogEnabled implements PoolServic
     private Object pollInstance(String className, Object[] params, String[] signature) throws PoolException
     {
         PoolBuffer pool = (PoolBuffer) poolRepository.get(className);
-        return pool != null ? pool.poll(params, signature) : null;
+        return pool != null ? pool.poll(params, signature, factoryService) : null;
     }
     /**
      * Gets the factory service.
@@ -597,7 +383,7 @@ public class DefaultPoolService extends AbstractLogEnabled implements PoolServic
                     }
                     if (capacityMap == null)
                     {
-                        capacityMap = new HashMap();
+                        capacityMap = new HashMap<String, Integer>();
                     }
                     capacityMap.put(key, new Integer(capacity));
                 }
diff --git a/src/java/org/apache/fulcrum/pool/PoolBuffer.java b/src/java/org/apache/fulcrum/pool/PoolBuffer.java
new file mode 100644
index 0000000..73f54c5
--- /dev/null
+++ b/src/java/org/apache/fulcrum/pool/PoolBuffer.java
@@ -0,0 +1,166 @@
+package org.apache.fulcrum.pool;
+
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.Iterator;
+
+import org.apache.fulcrum.factory.FactoryService;
+
+
+/**
+ * An inner class for class specific pools.
+ */
+public class PoolBuffer
+{
+    /**
+     * A buffer for class instances.
+     */
+    private BoundedBuffer pool;
+    /**
+     * A flag to determine if a more efficient recycler is implemented.
+     */
+    private boolean arrayCtorRecyclable;
+    /**
+     * A cache for recycling methods.
+     */
+    private ArrayList<Recycler> recyclers;
+    /**
+     * Contructs a new pool buffer with a specific capacity.
+     *
+     * @param capacity a capacity.
+     */
+    public PoolBuffer(int capacity)
+    {
+        pool = new BoundedBuffer(capacity);
+    }
+    /**
+     * Tells pool that it contains objects which can be
+     * initialized using an Object array.
+     *
+     * @param isArrayCtor a <code>boolean</code> value
+     */
+    public void setArrayCtorRecyclable(boolean isArrayCtor)
+    {
+        arrayCtorRecyclable = isArrayCtor;
+    }
+    /**
+     * Polls for an instance from the pool.
+     * @param factoryService 
+     *
+     * @return an instance or null.
+     */
+    public Object poll(Object[] params, String[] signature, FactoryService factoryService) throws PoolException
+    {
+        Object instance = pool.poll();
+        if (instance != null)
+        {
+            if (arrayCtorRecyclable)
+            {
+                ((ArrayCtorRecyclable) instance).recycle(params);
+            }
+            else if (instance instanceof Recyclable)
+            {
+                try
+                {
+                    if ((signature != null) && (signature.length > 0))
+                    {
+                        /* Get the recycle method from the cache. */
+                        Method recycle = getRecycle(signature);
+                        if (recycle == null)
+                        {
+                            synchronized (this)
+                            {
+                                /* Make a synchronized recheck. */
+                                recycle = getRecycle(signature);
+                                if (recycle == null)
+                                {
+                                    Class<? extends Object> clazz = instance.getClass();
+                                    recycle =
+                                        clazz.getMethod(
+                                            "recycle",
+                                            factoryService.getSignature(clazz, params, signature));
+                                    ArrayList<Recycler> cache =
+                                        recyclers != null ? (ArrayList<Recycler>) recyclers.clone() : new ArrayList<Recycler>();
+                                    cache.add(new Recycler(recycle, signature));
+                                    recyclers = cache;
+                                }
+                            }
+                        }
+                        recycle.invoke(instance, params);
+                    }
+                    else
+                    {
+                        ((Recyclable) instance).recycle();
+                    }
+                }
+                catch (Exception x)
+                {
+                    throw new PoolException("Recycling failed for " + instance.getClass().getName(), x);
+                }
+            }
+        }
+        return instance;
+    }
+    /**
+     * Offers an instance to the pool.
+     *
+     * @param instance an instance.
+     */
+    public boolean offer(Object instance)
+    {
+        if (instance instanceof Recyclable)
+        {
+            try
+            {
+                ((Recyclable) instance).dispose();
+            }
+            catch (Exception x)
+            {
+                return false;
+            }
+        }
+        return pool.offer(instance);
+    }
+    /**
+     * Returns the capacity of the pool.
+     *
+     * @return the capacity.
+     */
+    public int capacity()
+    {
+        return pool.capacity();
+    }
+    /**
+     * Returns the size of the pool.
+     *
+     * @return the size.
+     */
+    public int size()
+    {
+        return pool.size();
+    }
+    /**
+     * Returns a cached recycle method
+     * corresponding to the given signature.
+     *
+     * @param signature the signature.
+     * @return the recycle method or null.
+     */
+    private Method getRecycle(String[] signature)
+    {
+        ArrayList<Recycler> cache = recyclers;
+        if (cache != null)
+        {
+            Method recycle;
+            for (Iterator<Recycler> i = cache.iterator(); i.hasNext();)
+            {
+                recycle = ((Recycler) i.next()).match(signature);
+                if (recycle != null)
+                {
+                    return recycle;
+                }
+            }
+        }
+        return null;
+    }
+}
diff --git a/src/java/org/apache/fulcrum/pool/Recycler.java b/src/java/org/apache/fulcrum/pool/Recycler.java
new file mode 100644
index 0000000..19bb1fc
--- /dev/null
+++ b/src/java/org/apache/fulcrum/pool/Recycler.java
@@ -0,0 +1,65 @@
+package org.apache.fulcrum.pool;
+
+import java.lang.reflect.Method;
+
+/**
+ * An inner class for cached recycle methods.
+ */
+public class Recycler
+{
+    /**
+     * The method.
+     */
+    private final Method recycle;
+    /**
+     * The signature.
+     */
+    private final String[] signature;
+    /**
+     * Constructs a new recycler.
+     *
+     * @param rec the recycle method.
+     * @param sign the signature.
+     */
+    public Recycler(Method rec, String[] sign)
+    {
+        recycle = rec;
+        signature = (sign != null) && (sign.length > 0) ? sign : null;
+    }
+    /**
+     * Matches the given signature against
+     * that of the recycle method of this recycler.
+     *
+     * @param sign the signature.
+     * @return the matching recycle method or null.
+     */
+    public Method match(String[] sign)
+    {
+        if ((sign != null) && (sign.length > 0))
+        {
+            if ((signature != null) && (sign.length == signature.length))
+            {
+                for (int i = 0; i < signature.length; i++)
+                {
+                    if (!signature[i].equals(sign[i]))
+                    {
+                        return null;
+                    }
+                }
+                return recycle;
+            }
+            else
+            {
+                return null;
+            }
+        }
+        else if (signature == null)
+        {
+            return recycle;
+        }
+        else
+        {
+            return null;
+        }
+    }
+}

[turbine-fulcrum-pool] 44/49: - update fulcrums with parent 6 - update fulcrum quartz to 2.3.1 - update fulcrumtestcontainer deps mockito 2.28.2, junit.jupiter to 5.5.1, junit-platform-runner to 1.5.1 - update README.txt

Posted by gk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

gk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/turbine-fulcrum-pool.git

commit 37299e8ce36e5670e6afa6214767589344f0c6f7
Author: Georg Kallidis <gk...@apache.org>
AuthorDate: Tue Jul 23 09:31:39 2019 +0000

    - update fulcrums with parent 6
    - update fulcrum quartz to 2.3.1
    - update fulcrumtestcontainer deps mockito 2.28.2, junit.jupiter to 5.5.1, junit-platform-runner to 1.5.1
    - update README.txt
    
    git-svn-id: https://svn.apache.org/repos/asf/turbine/fulcrum/trunk/pool@1863620 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 6909b64..6a66349 100644
--- a/pom.xml
+++ b/pom.xml
@@ -19,7 +19,7 @@
   <parent>
     <artifactId>turbine-parent</artifactId>
        <groupId>org.apache.turbine</groupId>
-       <version>5</version>
+       <version>6</version>
   </parent>
 
   <modelVersion>4.0.0</modelVersion>

[turbine-fulcrum-pool] 29/49: - updating more parents to Turbine Parent 5 - crypto: update test algo to SHA-256 - crypto: remove not used file CryptoAuthenticator.xml - quartz: using resources in test, moved quartz.xml

Posted by gk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

gk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/turbine-fulcrum-pool.git

commit 3500e96e10d6ca0053dc0692fe46d39b35e26d7d
Author: Georg Kallidis <gk...@apache.org>
AuthorDate: Wed Oct 24 14:14:43 2018 +0000

    - updating more parents to Turbine Parent 5
    - crypto: update test algo to SHA-256
    - crypto: remove not used file CryptoAuthenticator.xml
    - quartz: using resources in test, moved quartz.xml
    
    git-svn-id: https://svn.apache.org/repos/asf/turbine/fulcrum/trunk/pool@1844777 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 4c0d98c..af95989 100644
--- a/pom.xml
+++ b/pom.xml
@@ -19,7 +19,7 @@
   <parent>
     <artifactId>turbine-parent</artifactId>
        <groupId>org.apache.turbine</groupId>
-       <version>3</version>
+       <version>5</version>
   </parent>
 
   <modelVersion>4.0.0</modelVersion>

[turbine-fulcrum-pool] 39/49: Update pool to factory release 1.1.1

Posted by gk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

gk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/turbine-fulcrum-pool.git

commit e9df6a8e450ef49ecd1b66acb0fa0c9ee73e1be1
Author: Jeffery Painter <pa...@apache.org>
AuthorDate: Fri Jan 11 13:20:35 2019 +0000

    Update pool to factory release 1.1.1
    
    git-svn-id: https://svn.apache.org/repos/asf/turbine/fulcrum/trunk/pool@1851040 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 2d3251f..9f9d193 100644
--- a/pom.xml
+++ b/pom.xml
@@ -81,7 +81,7 @@
     <dependency>
       <groupId>org.apache.fulcrum</groupId>
       <artifactId>fulcrum-factory</artifactId>
-      <version>1.1.1-SNAPSHOT</version>
+      <version>1.1.1</version>
     </dependency>
     <dependency>
       <groupId>org.apache.fulcrum</groupId>

[turbine-fulcrum-pool] 19/49: Fix POM

Posted by gk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

gk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/turbine-fulcrum-pool.git

commit 5dd5c13d91ae1458a812a15bc6b4b7c06fc26a15
Author: Thomas Vandahl <tv...@apache.org>
AuthorDate: Sun Jun 21 19:43:53 2009 +0000

    Fix POM
    
    git-svn-id: https://svn.apache.org/repos/asf/turbine/fulcrum/trunk/pool@787081 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/pom.xml b/pom.xml
index 4477eaf..03ed4f2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,3 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+   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.
+-->
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
   <parent>
     <groupId>org.apache.fulcrum</groupId>

[turbine-fulcrum-pool] 40/49: [maven-release-plugin] prepare release fulcrum-pool-1.0.5

Posted by gk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

gk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/turbine-fulcrum-pool.git

commit b40f09b5ede8aa2fa27cc60088642492239e77eb
Author: Jeffery Painter <pa...@apache.org>
AuthorDate: Fri Jan 11 13:21:46 2019 +0000

    [maven-release-plugin] prepare release fulcrum-pool-1.0.5
    
    git-svn-id: https://svn.apache.org/repos/asf/turbine/fulcrum/trunk/pool@1851041 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/pom.xml b/pom.xml
index 9f9d193..e23d387 100644
--- a/pom.xml
+++ b/pom.xml
@@ -25,16 +25,16 @@
   <modelVersion>4.0.0</modelVersion>
   <artifactId>fulcrum-pool</artifactId>
   <groupId>org.apache.fulcrum</groupId>
-  <version>1.0.5-SNAPSHOT</version>
+  <version>1.0.5</version>
   <name>Fulcrum Pool</name>
   <inceptionYear>2005</inceptionYear>
   <description>Fulcrum Pool Service</description>
   <url>http://turbine.apache.org/fulcrum/fulcrum-pool</url>
 		
   <scm>
-    <connection>scm:svn:http://svn.apache.org/repos/asf/turbine/fulcrum/trunk/pool/</connection>
-    <developerConnection>scm:svn:https://svn.apache.org/repos/asf/turbine/fulcrum/trunk/pool/</developerConnection>
-    <url>http://svn.apache.org/viewvc/turbine/fulcrum/trunk/pool/</url>
+    <connection>scm:svn:http://svn.apache.org/repos/asf/turbine/fulcrum/tags/fulcrum-pool-1.0.5</connection>
+    <developerConnection>scm:svn:https://svn.apache.org/repos/asf/turbine/fulcrum/tags/fulcrum-pool-1.0.5</developerConnection>
+    <url>http://svn.apache.org/viewvc/turbine/fulcrum/tags/fulcrum-pool-1.0.5</url>
   </scm>
 
   <developers>

[turbine-fulcrum-pool] 33/49: Code cleanup, fixed last findbug performance error, updated changes.xml

Posted by gk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

gk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/turbine-fulcrum-pool.git

commit 6edecfc8075eccf8c209f852506c6548a0747323
Author: Jeffery Painter <pa...@apache.org>
AuthorDate: Thu Dec 13 21:29:02 2018 +0000

    Code cleanup, fixed last findbug performance error, updated changes.xml
    
    git-svn-id: https://svn.apache.org/repos/asf/turbine/fulcrum/trunk/pool@1848900 13f79535-47bb-0310-9956-ffa450edef68
---
 .../apache/fulcrum/pool/DefaultPoolService.java    |   7 +-
 src/java/org/apache/fulcrum/pool/PoolBuffer.java   | 302 ++++++++++-----------
 .../org/apache/fulcrum/pool/PoolException.java     |  35 ++-
 src/java/org/apache/fulcrum/pool/PoolService.java  | 183 ++++++-------
 src/java/org/apache/fulcrum/pool/Recyclable.java   |  52 ++--
 src/java/org/apache/fulcrum/pool/Recycler.java     |  44 ++-
 xdocs/changes.xml                                  |   5 +
 7 files changed, 293 insertions(+), 335 deletions(-)

diff --git a/src/java/org/apache/fulcrum/pool/DefaultPoolService.java b/src/java/org/apache/fulcrum/pool/DefaultPoolService.java
index b2a5995..b058a1a 100644
--- a/src/java/org/apache/fulcrum/pool/DefaultPoolService.java
+++ b/src/java/org/apache/fulcrum/pool/DefaultPoolService.java
@@ -56,10 +56,12 @@ public class DefaultPoolService extends AbstractLogEnabled
 	 * The property specifying the pool capacity.
 	 */
 	public static final String POOL_CAPACITY = "capacity";
+	
 	/**
 	 * The default capacity of pools.
 	 */
 	private int poolCapacity = DEFAULT_POOL_CAPACITY;
+	
 	/**
 	 * The pool repository, one pool for each class.
 	 */
@@ -326,8 +328,9 @@ public class DefaultPoolService extends AbstractLogEnabled
 	}
 
 	// ---------------- Avalon Lifecycle Methods ---------------------
-	/**
+	/* (non-Javadoc)
 	 * Avalon component lifecycle method
+	 * @see org.apache.avalon.framework.configuration.Configurable#configure(org.apache.avalon.framework.configuration.Configuration)
 	 */
 	public void configure(Configuration conf) {
 		final Configuration capacities = conf.getChild(POOL_CAPACITY, false);
@@ -349,7 +352,7 @@ public class DefaultPoolService extends AbstractLogEnabled
 					if (capacityMap == null) {
 						capacityMap = new HashMap<String, Integer>();
 					}
-					capacityMap.put(key, new Integer(capacity));
+					capacityMap.put(key, capacity);
 				}
 			}
 		}
diff --git a/src/java/org/apache/fulcrum/pool/PoolBuffer.java b/src/java/org/apache/fulcrum/pool/PoolBuffer.java
index 8269fb1..3189119 100644
--- a/src/java/org/apache/fulcrum/pool/PoolBuffer.java
+++ b/src/java/org/apache/fulcrum/pool/PoolBuffer.java
@@ -21,173 +21,149 @@ package org.apache.fulcrum.pool;
 
 import java.lang.reflect.Method;
 import java.util.ArrayList;
-import java.util.Iterator;
 
 import org.apache.fulcrum.factory.FactoryService;
 
-
 /**
  * An inner class for class specific pools.
  */
-public class PoolBuffer
-{
-    /**
-     * A buffer for class instances.
-     */
-    private BoundedBuffer pool;
-    /**
-     * A flag to determine if a more efficient recycler is implemented.
-     */
-    private boolean arrayCtorRecyclable;
-    /**
-     * A cache for recycling methods.
-     */
-    private ArrayList<Recycler> recyclers;
-    /**
-     * Contructs a new pool buffer with a specific capacity.
-     *
-     * @param capacity a capacity.
-     */
-    public PoolBuffer(int capacity)
-    {
-        pool = new BoundedBuffer(capacity);
-    }
-    /**
-     * Tells pool that it contains objects which can be
-     * initialized using an Object array.
-     *
-     * @param isArrayCtor a <code>boolean</code> value
-     */
-    public void setArrayCtorRecyclable(boolean isArrayCtor)
-    {
-        arrayCtorRecyclable = isArrayCtor;
-    }
-    /**
-     * Polls for an instance from the pool.
-     * 
-     * 
-     * @param params object paramaters
-     * @param signature signature of the class
-     * @param factoryService service to add
-     * @throws PoolException if service failed to be found
-     * @return an instance or null.
-     */
-    public Object poll(Object[] params, String[] signature, FactoryService factoryService) throws PoolException
-    {
-        Object instance = pool.poll();
-        if (instance != null)
-        {
-            if (arrayCtorRecyclable)
-            {
-                ((ArrayCtorRecyclable) instance).recycle(params);
-            }
-            else if (instance instanceof Recyclable)
-            {
-                try
-                {
-                    if ((signature != null) && (signature.length > 0))
-                    {
-                        /* Get the recycle method from the cache. */
-                        Method recycle = getRecycle(signature);
-                        if (recycle == null)
-                        {
-                            synchronized (this)
-                            {
-                                /* Make a synchronized recheck. */
-                                recycle = getRecycle(signature);
-                                if (recycle == null)
-                                {
-                                    Class<? extends Object> clazz = instance.getClass();
-                                    recycle =
-                                        clazz.getMethod(
-                                            "recycle",
-                                            factoryService.getSignature(clazz, params, signature));
-                                    
-                                    @SuppressWarnings("unchecked")
-									ArrayList<Recycler> cache =
-                                        recyclers != null ? (ArrayList<Recycler>) recyclers.clone() : new ArrayList<Recycler>();
-                                    cache.add(new Recycler(recycle, signature));
-                                    recyclers = cache;
-                                }
-                            }
-                        }
-                        recycle.invoke(instance, params);
-                    }
-                    else
-                    {
-                        ((Recyclable) instance).recycle();
-                    }
-                }
-                catch (Exception x)
-                {
-                    throw new PoolException("Recycling failed for " + instance.getClass().getName(), x);
-                }
-            }
-        }
-        return instance;
-    }
-    
-    /**
-     * Offers an instance to the pool.
-     * 
-     * @param instance an instance.
-     * @return false if failed to dispose
-     */
-    public boolean offer(Object instance)
-    {
-        if (instance instanceof Recyclable)
-        {
-            try
-            {
-                ((Recyclable) instance).dispose();
-            }
-            catch (Exception x)
-            {
-                return false;
-            }
-        }
-        return pool.offer(instance);
-    }
-    /**
-     * Returns the capacity of the pool.
-     *
-     * @return the capacity.
-     */
-    public int capacity()
-    {
-        return pool.capacity();
-    }
-    /**
-     * Returns the size of the pool.
-     *
-     * @return the size.
-     */
-    public int size()
-    {
-        return pool.size();
-    }
-    /**
-     * Returns a cached recycle method
-     * corresponding to the given signature.
-     *
-     * @param signature the signature.
-     * @return the recycle method or null.
-     */
-    private Method getRecycle(String[] signature)
-    {
-        ArrayList<Recycler> cache = recyclers;
-        if (cache != null)
-        {
-            Method recycle;
-            for (Iterator<Recycler> i = cache.iterator(); i.hasNext();)
-            {
-                recycle = ((Recycler) i.next()).match(signature);
-                if (recycle != null)
-                {
-                    return recycle;
-                }
-            }
-        }
-        return null;
-    }
+public class PoolBuffer {
+
+	/**
+	 * A buffer for class instances.
+	 */
+	private BoundedBuffer pool;
+
+	/**
+	 * A flag to determine if a more efficient recycler is implemented.
+	 */
+	private boolean arrayCtorRecyclable;
+
+	/**
+	 * A cache for recycling methods.
+	 */
+	private ArrayList<Recycler> recyclers;
+
+	/**
+	 * Contructs a new pool buffer with a specific capacity.
+	 *
+	 * @param capacity a capacity.
+	 */
+	public PoolBuffer(int capacity) {
+		pool = new BoundedBuffer(capacity);
+	}
+
+	/**
+	 * Tells pool that it contains objects which can be initialized using an Object
+	 * array.
+	 *
+	 * @param isArrayCtor a <code>boolean</code> value
+	 */
+	public void setArrayCtorRecyclable(boolean isArrayCtor) {
+		arrayCtorRecyclable = isArrayCtor;
+	}
+
+	/**
+	 * Polls for an instance from the pool.
+	 * 
+	 * 
+	 * @param params         object paramaters
+	 * @param signature      signature of the class
+	 * @param factoryService service to add
+	 * @throws PoolException if service failed to be found
+	 * @return an instance or null.
+	 */
+	public Object poll(Object[] params, String[] signature, FactoryService factoryService) throws PoolException {
+		Object instance = pool.poll();
+		if (instance != null) {
+			if (arrayCtorRecyclable) {
+				((ArrayCtorRecyclable) instance).recycle(params);
+			} else if (instance instanceof Recyclable) {
+				try {
+					if (signature != null && signature.length > 0) {
+						/* Get the recycle method from the cache. */
+						Method recycle = getRecycle(signature);
+						if (recycle == null) {
+							synchronized (this) {
+								/* Make a synchronized recheck. */
+								recycle = getRecycle(signature);
+								if (recycle == null) {
+									Class<? extends Object> clazz = instance.getClass();
+									recycle = clazz.getMethod("recycle",
+											factoryService.getSignature(clazz, params, signature));
+
+									@SuppressWarnings("unchecked")
+									ArrayList<Recycler> cache = recyclers != null
+											? (ArrayList<Recycler>) recyclers.clone()
+											: new ArrayList<Recycler>();
+									cache.add(new Recycler(recycle, signature));
+									recyclers = cache;
+								}
+							}
+						}
+						recycle.invoke(instance, params);
+					} else {
+						((Recyclable) instance).recycle();
+					}
+				} catch (Exception x) {
+					throw new PoolException("Recycling failed for " + instance.getClass().getName(), x);
+				}
+			}
+		}
+		return instance;
+	}
+
+	/**
+	 * Offers an instance to the pool.
+	 * 
+	 * @param instance an instance.
+	 * @return false if failed to dispose
+	 */
+	public boolean offer(Object instance) {
+		if (instance instanceof Recyclable) {
+			try {
+				((Recyclable) instance).dispose();
+			} catch (Exception x) {
+				return false;
+			}
+		}
+		return pool.offer(instance);
+	}
+
+	/**
+	 * Returns the capacity of the pool.
+	 *
+	 * @return the capacity.
+	 */
+	public int capacity() {
+		return pool.capacity();
+	}
+
+	/**
+	 * Returns the size of the pool.
+	 *
+	 * @return the size.
+	 */
+	public int size() {
+		return pool.size();
+	}
+
+	/**
+	 * Returns a cached recycle method corresponding to the given signature.
+	 *
+	 * @param signature the signature.
+	 * @return the recycle method or null.
+	 */
+	private Method getRecycle(String[] signature) {
+		ArrayList<Recycler> cache = recyclers;
+		if (cache != null) {
+			Method recycle;
+			for (Recycler recycler : cache) {
+				recycle = recycler.match(signature);
+				if (recycle != null)
+					return recycle;
+			}
+		}
+		return null;
+	}
 }
diff --git a/src/java/org/apache/fulcrum/pool/PoolException.java b/src/java/org/apache/fulcrum/pool/PoolException.java
index 7dd5d60..d3daf0b 100644
--- a/src/java/org/apache/fulcrum/pool/PoolException.java
+++ b/src/java/org/apache/fulcrum/pool/PoolException.java
@@ -25,23 +25,22 @@ package org.apache.fulcrum.pool;
  * @author <a href="mailto:epugh@upstate.com">Eric Pugh</a>
  * @version $Id$
  */
-public class PoolException extends Exception
-{
-    /**
-     * Serial number
-     */
-    private static final long serialVersionUID = 8192045560423973532L;
+public class PoolException extends Exception {
+	
+	/**
+	 * Serial number
+	 */
+	private static final long serialVersionUID = 8192045560423973532L;
 
-    public PoolException(String msg)
-    {
-        super(msg);
-    }
-	public PoolException(Exception ex)
-	  {
-		  super(ex);
-	  }
-    public PoolException(String msg, Exception ex)
-    {
-        super(msg, ex);
-    }
+	public PoolException(String msg) {
+		super(msg);
+	}
+
+	public PoolException(Exception ex) {
+		super(ex);
+	}
+
+	public PoolException(String msg, Exception ex) {
+		super(msg, ex);
+	}
 }
diff --git a/src/java/org/apache/fulcrum/pool/PoolService.java b/src/java/org/apache/fulcrum/pool/PoolService.java
index 6e8ec2c..19c8927 100644
--- a/src/java/org/apache/fulcrum/pool/PoolService.java
+++ b/src/java/org/apache/fulcrum/pool/PoolService.java
@@ -1,6 +1,5 @@
 package org.apache.fulcrum.pool;
 
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -20,108 +19,98 @@ package org.apache.fulcrum.pool;
  * under the License.
  */
 
-
-
 /**
- * The Pool Service extends the Factory Service by adding support
- * for pooling instantiated objects. When a new instance is
- * requested, the service first checks its pool if one is available.
- * If the the pool is empty, a new object will be instantiated
- * from the specified class. If only class name is given, the request
- * to create an instance will be forwarded to the Factory Service.
+ * The Pool Service extends the Factory Service by adding support for pooling
+ * instantiated objects. When a new instance is requested, the service first
+ * checks its pool if one is available. If the the pool is empty, a new object
+ * will be instantiated from the specified class. If only class name is given,
+ * the request to create an instance will be forwarded to the Factory Service.
  *
- * <p>For objects implementing the Recyclable interface, a recycle
- * method will be called, when they are taken from the pool, and
- * a dispose method, when they are returned to the pool.
+ * <p>
+ * For objects implementing the Recyclable interface, a recycle method will be
+ * called, when they are taken from the pool, and a dispose method, when they
+ * are returned to the pool.
  *
  * @author <a href="mailto:ilkka.priha@simsoft.fi">Ilkka Priha</a>
  * @author <a href="mailto:mcconnell@apache.org">Stephen McConnell</a>
  * @version $Id$
  */
-public interface PoolService
-{
-    /** Avalon role - used to id the component within the manager */
-    String ROLE = PoolService.class.getName();
-
-
-    /**
-     * The default pool capacity.
-     */
-    public static final int DEFAULT_POOL_CAPACITY = 128;
-
-    /**
-     * Gets an instance of a specified class either from the pool
-     * or by instantiating from the class if the pool is empty.
-     *
-     * @param clazz the class.
-     * @return the instance.
-     * @throws PoolException if recycling fails.
-     */
-    public Object getInstance(Class clazz)
-        throws PoolException;
-
-    /**
-     * Gets an instance of a specified class either from the pool
-     * or by instantiating from the class if the pool is empty.
-     *
-     * @param clazz the class.
-     * @param params an array containing the parameters of the constructor.
-     * @param signature an array containing the signature of the constructor.
-     * @return the instance.
-     * @throws PoolException if recycling fails.
-     */
-    public Object getInstance(Class clazz,
-                              Object params[],
-                              String signature[])
-        throws PoolException;
-
-    /**
-     * Puts a used object back to the pool. Objects implementing
-     * the Recyclable interface can provide a recycle method to
-     * be called when they are reused and a dispose method to be
-     * called when they are returned to the pool.
-     *
-     * @param instance the object instance to recycle.
-     * @return true if the instance was accepted.
-     */
-    public boolean putInstance(Object instance);
-
-    /**
-     * Gets the capacity of the pool for a named class.
-     *
-     * @param className the name of the class.
-     * @return total capacity
-     */
-    public int getCapacity(String className);
-
-    /**
-     * Sets the capacity of the pool for a named class.
-     * Note that the pool will be cleared after the change.
-     *
-     * @param className the name of the class.
-     * @param capacity the new capacity.
-     */
-    public void setCapacity(String className,
-                            int capacity);
-
-    /**
-     * Gets the current size of the pool for a named class.
-     *
-     * @param className the name of the class
-     * @return the size of the pool for the class
-     */
-    public int getSize(String className);
-
-    /**
-     * Clears instances of a named class from the pool.
-     *
-     * @param className the name of the class.
-     */
-    public void clearPool(String className);
-
-    /**
-     * Clears all instances from the pool.
-     */
-    void clearPool();
+public interface PoolService {
+	/** Avalon role - used to id the component within the manager */
+	String ROLE = PoolService.class.getName();
+
+	/**
+	 * The default pool capacity.
+	 */
+	public static final int DEFAULT_POOL_CAPACITY = 128;
+
+	/**
+	 * Gets an instance of a specified class either from the pool or by
+	 * instantiating from the class if the pool is empty.
+	 *
+	 * @param clazz the class.
+	 * @return the instance.
+	 * @throws PoolException if recycling fails.
+	 */
+	public Object getInstance(Class clazz) throws PoolException;
+
+	/**
+	 * Gets an instance of a specified class either from the pool or by
+	 * instantiating from the class if the pool is empty.
+	 *
+	 * @param clazz     the class.
+	 * @param params    an array containing the parameters of the constructor.
+	 * @param signature an array containing the signature of the constructor.
+	 * @return the instance.
+	 * @throws PoolException if recycling fails.
+	 */
+	public Object getInstance(Class clazz, Object params[], String signature[]) throws PoolException;
+
+	/**
+	 * Puts a used object back to the pool. Objects implementing the Recyclable
+	 * interface can provide a recycle method to be called when they are reused and
+	 * a dispose method to be called when they are returned to the pool.
+	 *
+	 * @param instance the object instance to recycle.
+	 * @return true if the instance was accepted.
+	 */
+	public boolean putInstance(Object instance);
+
+	/**
+	 * Gets the capacity of the pool for a named class.
+	 *
+	 * @param className the name of the class.
+	 * @return total capacity
+	 */
+	public int getCapacity(String className);
+
+	/**
+	 * Sets the capacity of the pool for a named class. Note that the pool will be
+	 * cleared after the change.
+	 *
+	 * @param className the name of the class.
+	 * @param capacity  the new capacity.
+	 */
+	public void setCapacity(String className, int capacity);
+
+	/**
+	 * Gets the current size of the pool for a named class.
+	 *
+	 * @param className the name of the class
+	 * @return the size of the pool for the class
+	 */
+	public int getSize(String className);
+
+	/**
+	 * Clears instances of a named class from the pool.
+	 *
+	 * @param className the name of the class.
+	 */
+	public void clearPool(String className);
+
+	/**
+	 * Clears all instances from the pool.
+	 */
+	void clearPool();
 
 }
diff --git a/src/java/org/apache/fulcrum/pool/Recyclable.java b/src/java/org/apache/fulcrum/pool/Recyclable.java
index 762535a..cddbe5b 100644
--- a/src/java/org/apache/fulcrum/pool/Recyclable.java
+++ b/src/java/org/apache/fulcrum/pool/Recyclable.java
@@ -1,6 +1,5 @@
 package org.apache.fulcrum.pool;
 
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -20,38 +19,35 @@ package org.apache.fulcrum.pool;
  * under the License.
  */
 
-
 /**
- * An interface for objects that can be pooled and
- * recycled several times by different clients.
+ * An interface for objects that can be pooled and recycled several times by
+ * different clients.
  *
  * @author <a href="mailto:ilkka.priha@simsoft.fi">Ilkka Priha</a>
  * @version $Id$
  */
-public interface Recyclable
-{
-    /**
-     * Recycles the object for a new client. Recycle methods with
-     * parameters must be added to implementing object and they will be
-     * automatically called by pool implementations when the object is
-     * taken from the pool for a new client. The parameters must
-     * correspond to the parameters of the constructors of the object.
-     * For new objects, constructors can call their corresponding recycle
-     * methods whenever applicable.
-     * The recycle methods must call their super.
-     */
-    public void recycle();
+public interface Recyclable {
+	
+	/**
+	 * Recycles the object for a new client. Recycle methods with parameters must be
+	 * added to implementing object and they will be automatically called by pool
+	 * implementations when the object is taken from the pool for a new client. The
+	 * parameters must correspond to the parameters of the constructors of the
+	 * object. For new objects, constructors can call their corresponding recycle
+	 * methods whenever applicable. The recycle methods must call their super.
+	 */
+	public void recycle();
 
-    /**
-     * Disposes the object after use. The method is called
-     * when the object is returned to its pool.
-     * The dispose method must call its super.
-     */
-    public void dispose();
+	/**
+	 * Disposes the object after use. The method is called when the object is
+	 * returned to its pool. The dispose method must call its super.
+	 */
+	public void dispose();
 
-    /**
-     * Checks whether the recyclable has been disposed.
-     * @return true, if the recyclable is disposed.
-     */
-    public boolean isDisposed();
+	/**
+	 * Checks whether the recyclable has been disposed.
+	 * 
+	 * @return true, if the recyclable is disposed.
+	 */
+	public boolean isDisposed();
 }
diff --git a/src/java/org/apache/fulcrum/pool/Recycler.java b/src/java/org/apache/fulcrum/pool/Recycler.java
index b078318..db5d41c 100644
--- a/src/java/org/apache/fulcrum/pool/Recycler.java
+++ b/src/java/org/apache/fulcrum/pool/Recycler.java
@@ -20,6 +20,7 @@ package org.apache.fulcrum.pool;
  */
 
 import java.lang.reflect.Method;
+import java.util.Arrays;
 
 /**
  * An inner class for cached recycle methods.
@@ -30,10 +31,12 @@ public class Recycler
      * The method.
      */
     private final Method recycle;
+    
     /**
      * The signature.
      */
     private final String[] signature;
+    
     /**
      * Constructs a new recycler.
      *
@@ -43,8 +46,9 @@ public class Recycler
     public Recycler(Method rec, String[] sign)
     {
         recycle = rec;
-        signature = (sign != null) && (sign.length > 0) ? sign : null;
+        signature = sign != null && sign.length > 0 ? sign : null;
     }
+    
     /**
      * Matches the given signature against
      * that of the recycle method of this recycler.
@@ -54,31 +58,17 @@ public class Recycler
      */
     public Method match(String[] sign)
     {
-        if ((sign != null) && (sign.length > 0))
-        {
-            if ((signature != null) && (sign.length == signature.length))
-            {
-                for (int i = 0; i < signature.length; i++)
-                {
-                    if (!signature[i].equals(sign[i]))
-                    {
-                        return null;
-                    }
-                }
-                return recycle;
-            }
-            else
-            {
-                return null;
-            }
-        }
-        else if (signature == null)
-        {
-            return recycle;
-        }
-        else
-        {
-            return null;
-        }
+    	if ( signature == null )
+    	{
+    		return recycle;
+    	} else {
+
+    		// test if there is a match 
+	    	if ( !Arrays.equals(sign,  signature) ) {
+	    		return null;
+	    	} else {
+	    		return recycle;
+	    	}
+    	}
     }
 }
diff --git a/xdocs/changes.xml b/xdocs/changes.xml
index fbff7f4..2e0867b 100644
--- a/xdocs/changes.xml
+++ b/xdocs/changes.xml
@@ -24,6 +24,11 @@
   </properties>
 
   <body>
+    <release version="1.0.5" date="in SVN">
+       <action dev="painter" type="update">
+         Derive from Turbine parent POM 5
+       </action>
+    </release>  
     <release version="1.0.4" date="2009-06-21">
       <action dev="tv" type="add">
         Added a Maven-2 build

[turbine-fulcrum-pool] 47/49: - fixing relativePath in poms cache, intake, quartz, parser, security, testcontainer - intake: update parser, use in test pool2, add log4j2 for next testcontainer - parser: formatting, dependency fixes, site skin update - testcontainer: add and use log4j2 avalon adapter in yaafi testcontainer, use more JUnit 5 - moved README.txt to READMe.md in root

Posted by gk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

gk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/turbine-fulcrum-pool.git

commit 63e63533764e418b1969959807cc45af3c2641ab
Author: Georg Kallidis <gk...@apache.org>
AuthorDate: Fri May 28 14:10:45 2021 +0000

    - fixing relativePath in poms cache, intake, quartz, parser, security, testcontainer
    - intake: update parser, use in test pool2, add log4j2 for next testcontainer
    - parser: formatting, dependency fixes, site skin update
    - testcontainer: add and use log4j2 avalon adapter in yaafi testcontainer, use more JUnit 5
    - moved README.txt to READMe.md in root
    
    git-svn-id: https://svn.apache.org/repos/asf/turbine/fulcrum/trunk/pool@1890285 13f79535-47bb-0310-9956-ffa450edef68
---
 src/test/TestComponentConfig.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/test/TestComponentConfig.xml b/src/test/TestComponentConfig.xml
index dcb4cdd..74e7184 100644
--- a/src/test/TestComponentConfig.xml
+++ b/src/test/TestComponentConfig.xml
@@ -19,7 +19,7 @@
 -->
 <componentConfig>
     <pool>
-          <configuration>
+     <configuration>
        <capacity default="256"/>
      </configuration>
     </pool>

[turbine-fulcrum-pool] 30/49: Minor maven pom cleanup from Eclipse complaints, adding missing license headers found from rat report

Posted by gk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

gk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/turbine-fulcrum-pool.git

commit 62af6a6f91ac2ef4f14fb74a91d55682ccaf23e6
Author: Jeffery Painter <pa...@apache.org>
AuthorDate: Wed Oct 24 19:37:00 2018 +0000

    Minor maven pom cleanup from Eclipse complaints, adding missing license headers found from rat report
    
    git-svn-id: https://svn.apache.org/repos/asf/turbine/fulcrum/trunk/pool@1844788 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml                                          |  1 -
 src/java/org/apache/fulcrum/pool/PoolBuffer.java | 19 +++++++++++++++++++
 src/java/org/apache/fulcrum/pool/Recycler.java   | 19 +++++++++++++++++++
 3 files changed, 38 insertions(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index af95989..1ad71da 100644
--- a/pom.xml
+++ b/pom.xml
@@ -113,7 +113,6 @@
 		<plugin>
 		    <groupId>org.apache.maven.plugins</groupId>
 		    <artifactId>maven-compiler-plugin</artifactId>
-		    <version>3.6.1</version>
 		    <configuration>
 		        <source>${maven.compiler.source}</source>
 		        <target>${maven.compiler.target}</target>
diff --git a/src/java/org/apache/fulcrum/pool/PoolBuffer.java b/src/java/org/apache/fulcrum/pool/PoolBuffer.java
index 73f54c5..1c1e97d 100644
--- a/src/java/org/apache/fulcrum/pool/PoolBuffer.java
+++ b/src/java/org/apache/fulcrum/pool/PoolBuffer.java
@@ -1,5 +1,24 @@
 package org.apache.fulcrum.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 java.lang.reflect.Method;
 import java.util.ArrayList;
 import java.util.Iterator;
diff --git a/src/java/org/apache/fulcrum/pool/Recycler.java b/src/java/org/apache/fulcrum/pool/Recycler.java
index 19bb1fc..b078318 100644
--- a/src/java/org/apache/fulcrum/pool/Recycler.java
+++ b/src/java/org/apache/fulcrum/pool/Recycler.java
@@ -1,5 +1,24 @@
 package org.apache.fulcrum.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 java.lang.reflect.Method;
 
 /**

[turbine-fulcrum-pool] 35/49: Updating copyright year in notice files

Posted by gk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

gk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/turbine-fulcrum-pool.git

commit b764dce6f8696fc20587193a00557d4f32dcbe1d
Author: Jeffery Painter <pa...@apache.org>
AuthorDate: Wed Jan 2 16:47:02 2019 +0000

    Updating copyright year in notice files
    
    git-svn-id: https://svn.apache.org/repos/asf/turbine/fulcrum/trunk/pool@1850175 13f79535-47bb-0310-9956-ffa450edef68
---
 NOTICE.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/NOTICE.txt b/NOTICE.txt
index 6db22bd..ebfd86a 100644
--- a/NOTICE.txt
+++ b/NOTICE.txt
@@ -1,5 +1,5 @@
 Turbine Fulcrum Pool Component
-Copyright 2005-2009 The Apache Software Foundation.
+Copyright 2005-2019 The Apache Software Foundation.
 
 This product includes software developed at
 The Apache Software Foundation (http://www.apache.org/).

[turbine-fulcrum-pool] 31/49: Fix/update javadocs for pool and localization for mvn site to build cleanly

Posted by gk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

gk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/turbine-fulcrum-pool.git

commit 0fc9ae3941006ceaae780e0cb2e1a5728967eee0
Author: Jeffery Painter <pa...@apache.org>
AuthorDate: Mon Nov 5 15:42:25 2018 +0000

    Fix/update javadocs for pool and localization for mvn site to build cleanly
    
    git-svn-id: https://svn.apache.org/repos/asf/turbine/fulcrum/trunk/pool@1845817 13f79535-47bb-0310-9956-ffa450edef68
---
 .../apache/fulcrum/pool/ArrayCtorRecyclable.java   |   2 +
 .../org/apache/fulcrum/pool/BoundedBuffer.java     |   2 +-
 .../apache/fulcrum/pool/DefaultPoolService.java    | 732 ++++++++++-----------
 .../apache/fulcrum/pool/InitableRecyclable.java    |   9 +-
 src/java/org/apache/fulcrum/pool/PoolBuffer.java   |  16 +-
 src/java/org/apache/fulcrum/pool/PoolService.java  |   4 +-
 .../org/apache/fulcrum/pool/PoolServiceTest.java   | 167 ++---
 7 files changed, 451 insertions(+), 481 deletions(-)

diff --git a/src/java/org/apache/fulcrum/pool/ArrayCtorRecyclable.java b/src/java/org/apache/fulcrum/pool/ArrayCtorRecyclable.java
index fd335c0..68dbae3 100644
--- a/src/java/org/apache/fulcrum/pool/ArrayCtorRecyclable.java
+++ b/src/java/org/apache/fulcrum/pool/ArrayCtorRecyclable.java
@@ -35,6 +35,8 @@ public interface ArrayCtorRecyclable extends Recyclable
      * Recycles the object for a new client. Objects implementing
      * this interface must also provide a matching constructor.
      * The recycle methods must call their super.
+     * 
+     * @param params the parameters to recycle
      */
     public void recycle(Object[] params);
 }
diff --git a/src/java/org/apache/fulcrum/pool/BoundedBuffer.java b/src/java/org/apache/fulcrum/pool/BoundedBuffer.java
index 40abd8d..56bfbed 100644
--- a/src/java/org/apache/fulcrum/pool/BoundedBuffer.java
+++ b/src/java/org/apache/fulcrum/pool/BoundedBuffer.java
@@ -107,7 +107,7 @@ public class BoundedBuffer
     /**
      * Puts an item in the buffer only if there is capacity available.
      *
-     * @param item the item to be inserted.
+     * @param x the item to be inserted.
      * @return true if accepted, else false.
      */
     public synchronized boolean offer(Object x)
diff --git a/src/java/org/apache/fulcrum/pool/DefaultPoolService.java b/src/java/org/apache/fulcrum/pool/DefaultPoolService.java
index 30b4739..b2a5995 100644
--- a/src/java/org/apache/fulcrum/pool/DefaultPoolService.java
+++ b/src/java/org/apache/fulcrum/pool/DefaultPoolService.java
@@ -34,402 +34,360 @@ import org.apache.fulcrum.factory.FactoryException;
 import org.apache.fulcrum.factory.FactoryService;
 
 /**
- * The Pool Service extends the Factory Service by adding support
- * for pooling instantiated objects. When a new instance is
- * requested, the service first checks its pool if one is available.
- * If the the pool is empty, a new instance will be requested
- * from the FactoryService.
+ * The Pool Service extends the Factory Service by adding support for pooling
+ * instantiated objects. When a new instance is requested, the service first
+ * checks its pool if one is available. If the the pool is empty, a new instance
+ * will be requested from the FactoryService.
  *
- * For objects implementing the Recyclable interface, a recycle
- * method will be called, when they taken from the pool, and
- * a dispose method, when they are returned to the pool.
+ * For objects implementing the Recyclable interface, a recycle method will be
+ * called, when they taken from the pool, and a dispose method, when they are
+ * returned to the pool.
  *
  * @author <a href="mailto:ilkka.priha@simsoft.fi">Ilkka Priha</a>
  * @author <a href="mailto:mcconnell@apache.org">Stephen McConnell</a>
  * @version $Id$
  *
- * @avalon.component name="pool" lifestyle="transient"
- * @avalon.service type="org.apache.fulcrum.pool.PoolService"
+ * avalon.component name="pool" lifestyle="transient"
+ * avalon.service type="org.apache.fulcrum.pool.PoolService"
  */
-public class DefaultPoolService extends AbstractLogEnabled implements PoolService, Serviceable, Disposable, Initializable, Configurable
-{
-    /**
-     * The property specifying the pool capacity.
-     */
-    public static final String POOL_CAPACITY = "capacity";
-    /**
-     * The default capacity of pools.
-     */
-    private int poolCapacity = DEFAULT_POOL_CAPACITY;
-    /**
-     * The pool repository, one pool for each class.
-     */
-    private HashMap<String, PoolBuffer> poolRepository = new HashMap<>();
-    private Map<String, Integer> capacityMap;
-    private FactoryService factoryService;
-    private ServiceManager manager;
+public class DefaultPoolService extends AbstractLogEnabled
+		implements PoolService, Serviceable, Disposable, Initializable, Configurable {
+	/**
+	 * The property specifying the pool capacity.
+	 */
+	public static final String POOL_CAPACITY = "capacity";
+	/**
+	 * The default capacity of pools.
+	 */
+	private int poolCapacity = DEFAULT_POOL_CAPACITY;
+	/**
+	 * The pool repository, one pool for each class.
+	 */
+	private HashMap<String, PoolBuffer> poolRepository = new HashMap<>();
+	private Map<String, Integer> capacityMap;
+	private FactoryService factoryService;
+	private ServiceManager manager;
 
-    /**
-     * Gets an instance of a named class either from the pool
-     * or by calling the Factory Service if the pool is empty.
-     *
-     * @param className the name of the class.
-     * @return the instance.
-     * @throws PoolException if recycling fails.
-     */
-    public Object getInstance(String className) throws PoolException
-    {
-        try
-        {
-            Object instance = pollInstance(className, null, null);
-            return instance == null ? getFactory().getInstance(className) : instance;
-        }
-        catch (FactoryException fe)
-        {
-            throw new PoolException(fe);
-        }
-    }
-    /**
-     * Gets an instance of a named class either from the pool
-     * or by calling the Factory Service if the pool is empty.
-     * The specified class loader will be passed to the Factory Service.
-     *
-     * @param className the name of the class.
-     * @param loader the class loader.
-     * @return the instance.
-     * @throws PoolException if recycling fails.
-     */
-    public Object getInstance(String className, ClassLoader loader) throws PoolException
-    {
-        try
-        {
-            Object instance = pollInstance(className, null, null);
-            return instance == null ? getFactory().getInstance(className, loader) : instance;
-        }
-        catch (FactoryException fe)
-        {
-            throw new PoolException(fe);
-        }
-    }
-    /**
-     * Gets an instance of a named class either from the pool
-     * or by calling the Factory Service if the pool is empty.
-     * Parameters for its constructor are given as an array of objects,
-     * primitive types must be wrapped with a corresponding class.
-     *
-     * @param className the name of the class.
-     * @param loader the class loader.
-     * @param params an array containing the parameters of the constructor.
-     * @param signature an array containing the signature of the constructor.
-     * @return the instance.
-     * @throws PoolException if recycling fails.
-     */
-    public Object getInstance(String className, Object[] params, String[] signature) throws PoolException
-    {
-        try
-        {
-            Object instance = pollInstance(className, params, signature);
-            return instance == null ? getFactory().getInstance(className, params, signature) : instance;
-        }
-        catch (FactoryException fe)
-        {
-            throw new PoolException(fe);
-        }
-    }
-    /**
-     * Gets an instance of a named class either from the pool
-     * or by calling the Factory Service if the pool is empty.
-     * Parameters for its constructor are given as an array of objects,
-     * primitive types must be wrapped with a corresponding class.
-     * The specified class loader will be passed to the Factory Service.
-     *
-     * @param className the name of the class.
-     * @param loader the class loader.
-     * @param params an array containing the parameters of the constructor.
-     * @param signature an array containing the signature of the constructor.
-     * @return the instance.
-     * @throws PoolException if recycling fails.
-     */
-    public Object getInstance(String className, ClassLoader loader, Object[] params, String[] signature)
-        throws PoolException
-    {
-        try
-        {
-            Object instance = pollInstance(className, params, signature);
-            return instance == null ? getFactory().getInstance(className, loader, params, signature) : instance;
-        }
-        catch (FactoryException fe)
-        {
-            throw new PoolException(fe);
-        }
-    }
-    /**
-     * Tests if specified class loaders are supported for a named class.
-     *
-     * @param className the name of the class.
-     * @return true if class loaders are supported, false otherwise.
-     * @throws PoolException if test fails.
-     */
-    public boolean isLoaderSupported(String className) throws FactoryException
-    {
-        return getFactory().isLoaderSupported(className);
-    }
-    /**
-     * Gets an instance of a specified class either from the pool
-     * or by instatiating from the class if the pool is empty.
-     *
-     * @param clazz the class.
-     * @return the instance.
-     * @throws PoolException if recycling fails.
-     */
-    @SuppressWarnings("unchecked")
-	public Object getInstance(Class clazz) throws PoolException
-    {
-        try
-        {
-            Object instance = pollInstance(clazz.getName(), null, null);
-            return instance == null ? factoryService.getInstance(clazz) : instance;
-        }
-        catch (FactoryException fe)
-        {
-            throw new PoolException(fe);
-        }
-    }
-    /**
-     * Gets an instance of a specified class either from the pool
-     * or by instatiating from the class if the pool is empty.
-     *
-     * @todo There is a whacky .toString() on the clazzz, but otherwise it
-     * won't compile..
-     * @param clazz the class.
-     * @param params an array containing the parameters of the constructor.
-     * @param signature an array containing the signature of the constructor.
-     * @return the instance.
-     * @throws PoolException if recycling fails.
-     */
-    public Object getInstance(Class clazz, Object params[], String signature[]) throws PoolException
-    {
-        try
-        {
-            Object instance = pollInstance(clazz.getName(), params, signature);
-            //FactoryService fs = getFactory();
-            return instance == null ? getFactory().getInstance(clazz.toString(), params, signature) : instance;
-        }
-        catch (FactoryException fe)
-        {
-            throw new PoolException(fe);
-        }
-    }
-    /**
-     * Puts a used object back to the pool. Objects implementing
-     * the Recyclable interface can provide a recycle method to
-     * be called when they are reused and a dispose method to be
-     * called when they are returned to the pool.
-     *
-     * @param instance the object instance to recycle.
-     * @return true if the instance was accepted.
-     */
-    @SuppressWarnings("unchecked")
-	public boolean putInstance(Object instance)
-    {
-        if (instance != null)
-        {
-            HashMap<String, PoolBuffer> repository = poolRepository;
-            String className = instance.getClass().getName();
-            PoolBuffer pool = (PoolBuffer) repository.get(className);
-            if (pool == null)
-            {
-                pool = new PoolBuffer(getCapacity(className));
-                repository = (HashMap<String, PoolBuffer>) repository.clone();
-                repository.put(className, pool);
-                poolRepository = repository;
-                if (instance instanceof ArrayCtorRecyclable)
-                {
-                    pool.setArrayCtorRecyclable(true);
-                }
-            }
-            return pool.offer(instance);
-        }
-        else
-        {
-            return false;
-        }
-    }
-    /**
-     * Gets the capacity of the pool for a named class.
-     *
-     * @param className the name of the class.
-     */
-    public int getCapacity(String className)
-    {
-        PoolBuffer pool = (PoolBuffer) poolRepository.get(className);
-        if (pool == null)
-        {
-            /* Check class specific capacity. */
-            int capacity = poolCapacity;
-            if (capacityMap != null)
-            {
-                Integer cap = (Integer) capacityMap.get(className);
-                if (cap != null)
-                {
-                    capacity = cap.intValue();
-                }
-            }
-            return capacity;
-        }
-        else
-        {
-            return pool.capacity();
-        }
-    }
-    /**
-     * Sets the capacity of the pool for a named class.
-     * Note that the pool will be cleared after the change.
-     *
-     * @param className the name of the class.
-     * @param capacity the new capacity.
-     */
-    @SuppressWarnings("unchecked")
-	public void setCapacity(String className, int capacity)
-    {
-        HashMap<String, PoolBuffer> repository = poolRepository;
-        repository = repository != null ? (HashMap<String, PoolBuffer>) repository.clone() : new HashMap<String, PoolBuffer>();
-        repository.put(className, new PoolBuffer(capacity));
-        poolRepository = repository;
-    }
-    /**
-     * Gets the current size of the pool for a named class.
-     *
-     * @param className the name of the class.
-     */
-    public int getSize(String className)
-    {
-        PoolBuffer pool = (PoolBuffer) poolRepository.get(className);
-        return pool != null ? pool.size() : 0;
-    }
-    /**
-     * Clears instances of a named class from the pool.
-     *
-     * @param className the name of the class.
-     */
-    @SuppressWarnings("unchecked")
-	public void clearPool(String className)
-    {
-        HashMap<String, PoolBuffer> repository = poolRepository;
-        if (repository.get(className) != null)
-        {
-            repository = (HashMap<String, PoolBuffer>) repository.clone();
-            repository.remove(className);
-            poolRepository = repository;
-        }
-    }
-    /**
-     * Clears all instances from the pool.
-     */
-    public void clearPool()
-    {
-        poolRepository = new HashMap<String, PoolBuffer>();
-    }
-    /**
-     * Polls and recycles an object of the named class from the pool.
-     *
-     * @param className the name of the class.
-     * @param params an array containing the parameters of the constructor.
-     * @param signature an array containing the signature of the constructor.
-     * @return the object or null.
-     * @throws PoolException if recycling fails.
-     */
-    private Object pollInstance(String className, Object[] params, String[] signature) throws PoolException
-    {
-        PoolBuffer pool = (PoolBuffer) poolRepository.get(className);
-        return pool != null ? pool.poll(params, signature, factoryService) : null;
-    }
-    /**
-     * Gets the factory service.
-     *
-     * @return the factory service.
-     */
-    protected FactoryService getFactory()
-    {
-        return factoryService;
-    }
-    
-    // ---------------- Avalon Lifecycle Methods ---------------------
-    /**
-     * Avalon component lifecycle method
-     */
-    public void configure(Configuration conf)
-    {
-        final Configuration capacities = conf.getChild(POOL_CAPACITY, false);
-        if (capacities != null)
-        {
-            Configuration defaultConf = capacities.getChild("default");
-            int capacity = defaultConf.getValueAsInteger(DEFAULT_POOL_CAPACITY);
-            if (capacity <= 0)
-            {
-                throw new IllegalArgumentException("Capacity must be >0");
-            }
-            poolCapacity = capacity;
-            Configuration[] nameVal = capacities.getChildren();
-            for (int i = 0; i < nameVal.length; i++)
-            {
-                String key = nameVal[i].getName();
-                if (!"default".equals(key))
-                {
-                    capacity = nameVal[i].getValueAsInteger(poolCapacity);
-                    if (capacity < 0)
-                    {
-                        capacity = poolCapacity;
-                    }
-                    if (capacityMap == null)
-                    {
-                        capacityMap = new HashMap<String, Integer>();
-                    }
-                    capacityMap.put(key, new Integer(capacity));
-                }
-            }
-        }
-    }
+	/**
+	 * Gets an instance of a named class either from the pool or by calling the
+	 * Factory Service if the pool is empty.
+	 *
+	 * @param className the name of the class.
+	 * @return the instance.
+	 * @throws PoolException if recycling fails.
+	 */
+	public Object getInstance(String className) throws PoolException {
+		try {
+			Object instance = pollInstance(className, null, null);
+			return instance == null ? getFactory().getInstance(className) : instance;
+		} catch (FactoryException fe) {
+			throw new PoolException(fe);
+		}
+	}
 
-    /**
-     * Avalon component lifecycle method
-     * @avalon.dependency type="org.apache.fulcrum.factory.FactoryService"
-     */
-    public void service(ServiceManager manager)
-    {
-        this.manager = manager;
-    }
+	/**
+	 * Gets an instance of a named class either from the pool or by calling the
+	 * Factory Service if the pool is empty. The specified class loader will be
+	 * passed to the Factory Service.
+	 *
+	 * @param className the name of the class.
+	 * @param loader    the class loader.
+	 * @return the instance.
+	 * @throws PoolException if recycling fails.
+	 */
+	public Object getInstance(String className, ClassLoader loader) throws PoolException {
+		try {
+			Object instance = pollInstance(className, null, null);
+			return instance == null ? getFactory().getInstance(className, loader) : instance;
+		} catch (FactoryException fe) {
+			throw new PoolException(fe);
+		}
+	}
 
-    /**
-     * Avalon component lifecycle method
-     * Initializes the service by loading default class loaders
-     * and customized object factories.
-     *
-     * @throws InitializationException if initialization fails.
-     */
-    public void initialize() throws Exception
-    {
-        try
-        {
-            factoryService = (FactoryService) manager.lookup(FactoryService.ROLE);
-        }
-        catch (Exception e)
-        {
-            throw new Exception(
-               "DefaultPoolService.initialize: Failed to get a Factory object", e);
-        }
-    }
+	/**
+	 * Gets an instance of a named class either from the pool or by calling the
+	 * Factory Service if the pool is empty. Parameters for its constructor are
+	 * given as an array of objects, primitive types must be wrapped with a
+	 * corresponding class.
+	 *
+	 * @param className the name of the class.
+	 * @param params    an array containing the parameters of the constructor.
+	 * @param signature an array containing the signature of the constructor.
+	 * @return the instance.
+	 * @throws PoolException if recycling fails.
+	 */
+	public Object getInstance(String className, Object[] params, String[] signature) throws PoolException {
+		try {
+			Object instance = pollInstance(className, params, signature);
+			return instance == null ? getFactory().getInstance(className, params, signature) : instance;
+		} catch (FactoryException fe) {
+			throw new PoolException(fe);
+		}
+	}
 
-    /**
-     * Avalon component lifecycle method
-     */
-    public void dispose()
-    {
-        if (factoryService != null)
-        {
-            manager.release(factoryService);
-        }
-        factoryService = null;
-        manager = null;
-    }
+	/**
+	 * Gets an instance of a named class either from the pool or by calling the
+	 * Factory Service if the pool is empty. Parameters for its constructor are
+	 * given as an array of objects, primitive types must be wrapped with a
+	 * corresponding class. The specified class loader will be passed to the Factory
+	 * Service.
+	 *
+	 * @param className the name of the class.
+	 * @param loader    the class loader.
+	 * @param params    an array containing the parameters of the constructor.
+	 * @param signature an array containing the signature of the constructor.
+	 * @return the instance.
+	 * @throws PoolException if recycling fails.
+	 */
+	public Object getInstance(String className, ClassLoader loader, Object[] params, String[] signature)
+			throws PoolException {
+		try {
+			Object instance = pollInstance(className, params, signature);
+			return instance == null ? getFactory().getInstance(className, loader, params, signature) : instance;
+		} catch (FactoryException fe) {
+			throw new PoolException(fe);
+		}
+	}
+
+	/**
+	 * Tests if specified class loaders are supported for a named class.
+	 *
+	 * @param className the name of the class.
+	 * @return true if class loaders are supported, false otherwise.
+	 * @throws FactoryException if test fails.
+	 */
+	public boolean isLoaderSupported(String className) throws FactoryException {
+		return getFactory().isLoaderSupported(className);
+	}
+
+	/**
+	 * Gets an instance of a specified class either from the pool or by instatiating
+	 * from the class if the pool is empty.
+	 *
+	 * @param clazz the class.
+	 * @return the instance.
+	 * @throws PoolException if recycling fails.
+	 */
+	@SuppressWarnings("unchecked")
+	public Object getInstance(Class clazz) throws PoolException {
+		try {
+			Object instance = pollInstance(clazz.getName(), null, null);
+			return instance == null ? factoryService.getInstance(clazz) : instance;
+		} catch (FactoryException fe) {
+			throw new PoolException(fe);
+		}
+	}
+
+	/**
+	 * Gets an instance of a specified class either from the pool or by instatiating
+	 * from the class if the pool is empty.
+	 *
+	 * @param clazz     the class.
+	 * @param params    an array containing the parameters of the constructor.
+	 * @param signature an array containing the signature of the constructor.
+	 * @return the instance.
+	 * @throws PoolException if recycling fails.
+	 */
+	public Object getInstance(Class clazz, Object params[], String signature[]) throws PoolException {
+		
+		try {
+			Object instance = pollInstance(clazz.getName(), params, signature);
+			// FactoryService fs = getFactory();
+			
+			// TODO There is a whacky .toString() on the clazz object, 
+			// but otherwise it won't compile
+			return instance == null ? getFactory().getInstance(clazz.toString(), params, signature) : instance;
+			
+		} catch (FactoryException fe) {
+			throw new PoolException(fe);
+		}
+	}
+
+	/**
+	 * Puts a used object back to the pool. Objects implementing the Recyclable
+	 * interface can provide a recycle method to be called when they are reused and
+	 * a dispose method to be called when they are returned to the pool.
+	 *
+	 * @param instance the object instance to recycle.
+	 * @return true if the instance was accepted.
+	 */
+	@SuppressWarnings("unchecked")
+	public boolean putInstance(Object instance) {
+		if (instance != null) {
+			HashMap<String, PoolBuffer> repository = poolRepository;
+			String className = instance.getClass().getName();
+			PoolBuffer pool = (PoolBuffer) repository.get(className);
+			if (pool == null) {
+				pool = new PoolBuffer(getCapacity(className));
+				repository = (HashMap<String, PoolBuffer>) repository.clone();
+				repository.put(className, pool);
+				poolRepository = repository;
+				if (instance instanceof ArrayCtorRecyclable) {
+					pool.setArrayCtorRecyclable(true);
+				}
+			}
+			return pool.offer(instance);
+		} else {
+			return false;
+		}
+	}
+
+	/**
+	 * Gets the capacity of the pool for a named class.
+	 *
+	 * @param className the name of the class.
+	 */
+	public int getCapacity(String className) {
+		PoolBuffer pool = (PoolBuffer) poolRepository.get(className);
+		if (pool == null) {
+			/* Check class specific capacity. */
+			int capacity = poolCapacity;
+			if (capacityMap != null) {
+				Integer cap = (Integer) capacityMap.get(className);
+				if (cap != null) {
+					capacity = cap.intValue();
+				}
+			}
+			return capacity;
+		} else {
+			return pool.capacity();
+		}
+	}
+
+	/**
+	 * Sets the capacity of the pool for a named class. Note that the pool will be
+	 * cleared after the change.
+	 *
+	 * @param className the name of the class.
+	 * @param capacity  the new capacity.
+	 */
+	@SuppressWarnings("unchecked")
+	public void setCapacity(String className, int capacity) {
+		HashMap<String, PoolBuffer> repository = poolRepository;
+		repository = repository != null ? (HashMap<String, PoolBuffer>) repository.clone()
+				: new HashMap<String, PoolBuffer>();
+		repository.put(className, new PoolBuffer(capacity));
+		poolRepository = repository;
+	}
+
+	/**
+	 * Gets the current size of the pool for a named class.
+	 *
+	 * @param className the name of the class.
+	 */
+	public int getSize(String className) {
+		PoolBuffer pool = (PoolBuffer) poolRepository.get(className);
+		return pool != null ? pool.size() : 0;
+	}
+
+	/**
+	 * Clears instances of a named class from the pool.
+	 *
+	 * @param className the name of the class.
+	 */
+	@SuppressWarnings("unchecked")
+	public void clearPool(String className) {
+		HashMap<String, PoolBuffer> repository = poolRepository;
+		if (repository.get(className) != null) {
+			repository = (HashMap<String, PoolBuffer>) repository.clone();
+			repository.remove(className);
+			poolRepository = repository;
+		}
+	}
+
+	/**
+	 * Clears all instances from the pool.
+	 */
+	public void clearPool() {
+		poolRepository = new HashMap<String, PoolBuffer>();
+	}
+
+	/**
+	 * Polls and recycles an object of the named class from the pool.
+	 *
+	 * @param className the name of the class.
+	 * @param params    an array containing the parameters of the constructor.
+	 * @param signature an array containing the signature of the constructor.
+	 * @return the object or null.
+	 * @throws PoolException if recycling fails.
+	 */
+	private Object pollInstance(String className, Object[] params, String[] signature) throws PoolException {
+		PoolBuffer pool = (PoolBuffer) poolRepository.get(className);
+		return pool != null ? pool.poll(params, signature, factoryService) : null;
+	}
+
+	/**
+	 * Gets the factory service.
+	 *
+	 * @return the factory service.
+	 */
+	protected FactoryService getFactory() {
+		return factoryService;
+	}
+
+	// ---------------- Avalon Lifecycle Methods ---------------------
+	/**
+	 * Avalon component lifecycle method
+	 */
+	public void configure(Configuration conf) {
+		final Configuration capacities = conf.getChild(POOL_CAPACITY, false);
+		if (capacities != null) {
+			Configuration defaultConf = capacities.getChild("default");
+			int capacity = defaultConf.getValueAsInteger(DEFAULT_POOL_CAPACITY);
+			if (capacity <= 0) {
+				throw new IllegalArgumentException("Capacity must be >0");
+			}
+			poolCapacity = capacity;
+			Configuration[] nameVal = capacities.getChildren();
+			for (int i = 0; i < nameVal.length; i++) {
+				String key = nameVal[i].getName();
+				if (!"default".equals(key)) {
+					capacity = nameVal[i].getValueAsInteger(poolCapacity);
+					if (capacity < 0) {
+						capacity = poolCapacity;
+					}
+					if (capacityMap == null) {
+						capacityMap = new HashMap<String, Integer>();
+					}
+					capacityMap.put(key, new Integer(capacity));
+				}
+			}
+		}
+	}
+
+	/**
+	 * Avalon component lifecycle method
+	 * 
+	 * {@link org.apache.fulcrum.factory.FactoryService}
+	 * 
+	 * @param manager the service manager
+	 */
+	public void service(ServiceManager manager) {
+		this.manager = manager;
+	}
+
+	/**
+	 * Avalon component lifecycle method Initializes the service by loading default
+	 * class loaders and customized object factories.
+	 *
+	 * @throws Exception if initialization fails.
+	 */
+	public void initialize() throws Exception {
+		try {
+			factoryService = (FactoryService) manager.lookup(FactoryService.ROLE);
+		} catch (Exception e) {
+			throw new Exception("DefaultPoolService.initialize: Failed to get a Factory object", e);
+		}
+	}
+
+	/**
+	 * Avalon component lifecycle method
+	 */
+	public void dispose() {
+		if (factoryService != null) {
+			manager.release(factoryService);
+		}
+		factoryService = null;
+		manager = null;
+	}
 }
diff --git a/src/java/org/apache/fulcrum/pool/InitableRecyclable.java b/src/java/org/apache/fulcrum/pool/InitableRecyclable.java
index f6683a6..7c78ca3 100644
--- a/src/java/org/apache/fulcrum/pool/InitableRecyclable.java
+++ b/src/java/org/apache/fulcrum/pool/InitableRecyclable.java
@@ -1,6 +1,5 @@
 package org.apache.fulcrum.pool;
 
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -21,13 +20,10 @@ package org.apache.fulcrum.pool;
  */
 
 
-
-
-
 /**
  * An interface for objects that can be pooled and recycled several times
  * by different clients.  Pooled objects that implement this interface
- * use no argument ctor and recycle methods.  Initialization is taken
+ * use no argument or recycle methods.  Initialization is taken
  * care of using the init method.  This is a way to avoid
  * introspection/reflection when pooling an object.
  *
@@ -39,6 +35,9 @@ public interface InitableRecyclable extends Recyclable
     /**
      * This method should be called after retrieving the object from
      * the pool.
+     * 
+     * @param initObj the object to initialize
+     * @throws PoolException pool exception if failed to initialize
      */
     public void init(Object initObj) throws PoolException;
 }
diff --git a/src/java/org/apache/fulcrum/pool/PoolBuffer.java b/src/java/org/apache/fulcrum/pool/PoolBuffer.java
index 1c1e97d..8269fb1 100644
--- a/src/java/org/apache/fulcrum/pool/PoolBuffer.java
+++ b/src/java/org/apache/fulcrum/pool/PoolBuffer.java
@@ -64,8 +64,12 @@ public class PoolBuffer
     }
     /**
      * Polls for an instance from the pool.
-     * @param factoryService 
-     *
+     * 
+     * 
+     * @param params object paramaters
+     * @param signature signature of the class
+     * @param factoryService service to add
+     * @throws PoolException if service failed to be found
      * @return an instance or null.
      */
     public Object poll(Object[] params, String[] signature, FactoryService factoryService) throws PoolException
@@ -98,7 +102,9 @@ public class PoolBuffer
                                         clazz.getMethod(
                                             "recycle",
                                             factoryService.getSignature(clazz, params, signature));
-                                    ArrayList<Recycler> cache =
+                                    
+                                    @SuppressWarnings("unchecked")
+									ArrayList<Recycler> cache =
                                         recyclers != null ? (ArrayList<Recycler>) recyclers.clone() : new ArrayList<Recycler>();
                                     cache.add(new Recycler(recycle, signature));
                                     recyclers = cache;
@@ -120,10 +126,12 @@ public class PoolBuffer
         }
         return instance;
     }
+    
     /**
      * Offers an instance to the pool.
-     *
+     * 
      * @param instance an instance.
+     * @return false if failed to dispose
      */
     public boolean offer(Object instance)
     {
diff --git a/src/java/org/apache/fulcrum/pool/PoolService.java b/src/java/org/apache/fulcrum/pool/PoolService.java
index 2c0d654..6e8ec2c 100644
--- a/src/java/org/apache/fulcrum/pool/PoolService.java
+++ b/src/java/org/apache/fulcrum/pool/PoolService.java
@@ -90,6 +90,7 @@ public interface PoolService
      * Gets the capacity of the pool for a named class.
      *
      * @param className the name of the class.
+     * @return total capacity
      */
     public int getCapacity(String className);
 
@@ -106,7 +107,8 @@ public interface PoolService
     /**
      * Gets the current size of the pool for a named class.
      *
-     * @param className the name of the class.
+     * @param className the name of the class
+     * @return the size of the pool for the class
      */
     public int getSize(String className);
 
diff --git a/src/test/org/apache/fulcrum/pool/PoolServiceTest.java b/src/test/org/apache/fulcrum/pool/PoolServiceTest.java
index 6130e95..5724e96 100644
--- a/src/test/org/apache/fulcrum/pool/PoolServiceTest.java
+++ b/src/test/org/apache/fulcrum/pool/PoolServiceTest.java
@@ -25,88 +25,89 @@ import org.apache.fulcrum.testcontainer.BaseUnitTest;
  * @author Eric Pugh
  * @author <a href="mailto:mcconnell@apache.org">Stephen McConnell</a>
  *
- * To change the template for this generated type comment go to
- * Window>Preferences>Java>Code Generation>Code and Comments
  */
-public class PoolServiceTest extends BaseUnitTest
-{
-    private PoolService poolService = null;
-    /**
-    	* Defines the testcase name for JUnit.
-    	*
-    	* @param name the testcase's name.
-    	*/
-    public PoolServiceTest(String name)
-    {
-        super(name);
-    }
-
-    public void setUp() throws Exception
-    {
-        super.setUp();
-
-        poolService = (PoolService) this.resolve( PoolService.class.getName() );
-    }
-
-    /*
-     * Class to test for Object getInstance(Class)
-     */
-    public void testGetInstanceClass() throws PoolException
-    {
-        Object object = poolService.getInstance(StringBuilder.class);
-        assertTrue(object instanceof StringBuilder);
-
-    }
-
-    public void testPutInstance()
-    {
-        String s = "I am a string";
-        assertEquals(0, poolService.getSize("java.lang.String"));
-        poolService.putInstance(s);
-        assertEquals(1, poolService.getSize("java.lang.String"));
-
-    }
-    public void testGetSetCapacity()
-    {
-        assertEquals(128, poolService.getCapacity("java.lang.String"));
-        poolService.setCapacity("java.lang.String", 278);
-        assertEquals(278, poolService.getCapacity("java.lang.String"));
-
-    }
-    public void testGetSize()
-    {
-        String s = "I am a string";
-        assertEquals(0, poolService.getSize("java.lang.String"));
-        poolService.putInstance(s);
-        assertEquals(1, poolService.getSize("java.lang.String"));
-
-    }
-    /*
-     * Class to test for void clearPool(String)
-     */
-    public void testClearPoolString()
-    {
-        String s = "I am a string";
-        assertEquals(0, poolService.getSize("java.lang.String"));
-        poolService.putInstance(s);
-        assertEquals(1, poolService.getSize("java.lang.String"));
-        poolService.clearPool("java.lang.String");
-        assertEquals(0, poolService.getSize("java.lang.String"));
-
-    }
-    /*
-     * Class to test for void clearPool()
-     */
-    public void testClearPool()
-    {
-        String s = "I am a string";
-        assertEquals(0, poolService.getSize("java.lang.String"));
-        poolService.putInstance(s);
-        poolService.putInstance(new Double(32));
-        assertEquals(1, poolService.getSize("java.lang.String"));
-        poolService.clearPool();
-        assertEquals(0, poolService.getSize("java.lang.String"));
-        assertEquals(0, poolService.getSize("java.lang.Double"));
-
-    }
+public class PoolServiceTest extends BaseUnitTest {
+	private PoolService poolService = null;
+
+	/**
+	 * Defines the testcase name for JUnit.
+	 *
+	 * @param name the testcase's name.
+	 */
+	public PoolServiceTest(String name) {
+		super(name);
+	}
+
+	/**
+	 * Perform pool service setup
+	 * 
+	 * @throws Exception generic exception
+	 */
+	public void setUp() throws Exception {
+		super.setUp();
+
+		poolService = (PoolService) this.resolve(PoolService.class.getName());
+	}
+
+	/**
+	 * Class to test for Object getInstance(Class)
+	 * 
+	 * @throws PoolException generic exception
+	 */
+	public void testGetInstanceClass() throws PoolException {
+		Object object = poolService.getInstance(StringBuilder.class);
+		assertTrue(object instanceof StringBuilder);
+
+	}
+
+	public void testPutInstance() {
+		String s = "I am a string";
+		assertEquals(0, poolService.getSize("java.lang.String"));
+		poolService.putInstance(s);
+		assertEquals(1, poolService.getSize("java.lang.String"));
+
+	}
+
+	public void testGetSetCapacity() {
+		assertEquals(128, poolService.getCapacity("java.lang.String"));
+		poolService.setCapacity("java.lang.String", 278);
+		assertEquals(278, poolService.getCapacity("java.lang.String"));
+
+	}
+
+	public void testGetSize() {
+		String s = "I am a string";
+		assertEquals(0, poolService.getSize("java.lang.String"));
+		poolService.putInstance(s);
+		assertEquals(1, poolService.getSize("java.lang.String"));
+
+	}
+
+	/*
+	 * Class to test for void clearPool(String)
+	 */
+	public void testClearPoolString() {
+		String s = "I am a string";
+		assertEquals(0, poolService.getSize("java.lang.String"));
+		poolService.putInstance(s);
+		assertEquals(1, poolService.getSize("java.lang.String"));
+		poolService.clearPool("java.lang.String");
+		assertEquals(0, poolService.getSize("java.lang.String"));
+
+	}
+
+	/*
+	 * Class to test for void clearPool()
+	 */
+	public void testClearPool() {
+		String s = "I am a string";
+		assertEquals(0, poolService.getSize("java.lang.String"));
+		poolService.putInstance(s);
+		poolService.putInstance(new Double(32));
+		assertEquals(1, poolService.getSize("java.lang.String"));
+		poolService.clearPool();
+		assertEquals(0, poolService.getSize("java.lang.String"));
+		assertEquals(0, poolService.getSize("java.lang.Double"));
+
+	}
 }

[turbine-fulcrum-pool] 49/49: - update layout/skin - update raw exceptions in JSON component - fix format error in changes.xml

Posted by gk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

gk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/turbine-fulcrum-pool.git

commit f0282bf14a278cc370ab225ec90a9817411ec5eb
Author: Georg Kallidis <gk...@apache.org>
AuthorDate: Tue Jun 15 08:33:26 2021 +0000

    - update layout/skin
    - update raw exceptions in JSON component
    - fix format error in changes.xml
    
    git-svn-id: https://svn.apache.org/repos/asf/turbine/fulcrum/trunk/pool@1890800 13f79535-47bb-0310-9956-ffa450edef68
---
 src/site/site.xml | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/src/site/site.xml b/src/site/site.xml
index 1c18504..6c86f9d 100644
--- a/src/site/site.xml
+++ b/src/site/site.xml
@@ -21,9 +21,23 @@
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://maven.apache.org/DECORATION/1.4.0 http://maven.apache.org/xsd/decoration-1.4.0.xsd"
   name="Fulcrum Pool">
+  
+   <skin>
+    <groupId>org.apache.maven.skins</groupId>
+    <artifactId>maven-fluido-skin</artifactId>
+    <version>1.9</version>
+  </skin>
+  
   <body>
     <menu name="Overview">
       <item name="Main"                 href="/index.html"/>
     </menu>
   </body>
+  
+  <custom>
+      <fluidoSkin>
+        <topBarEnabled>false</topBarEnabled>
+        <sideBarEnabled>true</sideBarEnabled>
+      </fluidoSkin>
+  </custom> 
 </project>

[turbine-fulcrum-pool] 13/49: Use released versions

Posted by gk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

gk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/turbine-fulcrum-pool.git

commit af9c640113a42c4ab52c8a46eb91abcc5ce9edf4
Author: Thomas Vandahl <tv...@apache.org>
AuthorDate: Sun Jun 21 18:41:44 2009 +0000

    Use released versions
    
    git-svn-id: https://svn.apache.org/repos/asf/turbine/fulcrum/trunk/pool@787064 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index e42931c..b714ea6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -91,7 +91,7 @@
     <dependency>
       <groupId>org.apache.fulcrum</groupId>
       <artifactId>fulcrum-factory</artifactId>
-      <version>1.0.4-SNAPSHOT</version>
+      <version>1.0.4</version>
     </dependency>
     <!-- dependency>
       <groupId>commons-pool</groupId>

[turbine-fulcrum-pool] 36/49: Update all fulcrum components to use release 1.0.8 of yaafi and testcontainer

Posted by gk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

gk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/turbine-fulcrum-pool.git

commit 22e85f6f3ea27c272920c72706652b9b237f74cf
Author: Jeffery Painter <pa...@apache.org>
AuthorDate: Mon Jan 7 16:37:23 2019 +0000

    Update all fulcrum components to use release 1.0.8 of yaafi and testcontainer
    
    git-svn-id: https://svn.apache.org/repos/asf/turbine/fulcrum/trunk/pool@1850666 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index c7aedda..2d3251f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -86,7 +86,7 @@
     <dependency>
       <groupId>org.apache.fulcrum</groupId>
       <artifactId>fulcrum-testcontainer</artifactId>
-      <version>1.0.8-SNAPSHOT</version>
+      <version>1.0.8</version>
       <scope>test</scope>
     </dependency>
     <dependency>

[turbine-fulcrum-pool] 17/49: [maven-release-plugin] prepare release FULCRUM_POOL_1_0_4

Posted by gk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

gk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/turbine-fulcrum-pool.git

commit 5785bd61eca1bbc81c59cb59cfea6ab8590ada38
Author: Thomas Vandahl <tv...@apache.org>
AuthorDate: Sun Jun 21 19:39:50 2009 +0000

    [maven-release-plugin] prepare release FULCRUM_POOL_1_0_4
    
    git-svn-id: https://svn.apache.org/repos/asf/turbine/fulcrum/trunk/pool@787076 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml | 31 +++++++------------------------
 1 file changed, 7 insertions(+), 24 deletions(-)

diff --git a/pom.xml b/pom.xml
index 5be96e7..bcfa1c8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,20 +1,3 @@
-<?xml version="1.0"?>
-<!--
-   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.
--->
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
   <parent>
     <groupId>org.apache.fulcrum</groupId>
@@ -24,16 +7,16 @@
 
   <modelVersion>4.0.0</modelVersion>
   <artifactId>fulcrum-pool</artifactId>
-  <version>1.0.4-SNAPSHOT</version>
+  <version>1.0.4</version>
   <name>Fulcrum Pool</name>
   <inceptionYear>2005</inceptionYear>
   <description>Fulcrum Pool Service</description>
   <url>http://turbine.apache.org/fulcrum/fulcrum-pool</url>
 		
   <scm>
-    <connection>scm:svn:http://svn.apache.org/repos/asf/turbine/fulcrum/trunk/pool/</connection>
-    <developerConnection>scm:svn:https://svn.apache.org/repos/asf/turbine/fulcrum/trunk/pool/</developerConnection>
-    <url>http://svn.apache.org/viewcvs/turbine/fulcrum/trunk/pool/</url>
+    <connection>scm:svn:http://svn.apache.org/repos/asf/turbine/fulcrum/tags/FULCRUM_POOL_1_0_4</connection>
+    <developerConnection>scm:svn:https://svn.apache.org/repos/asf/turbine/fulcrum/tags/FULCRUM_POOL_1_0_4</developerConnection>
+    <url>http://svn.apache.org/viewcvs/turbine/fulcrum/tags/FULCRUM_POOL_1_0_4</url>
   </scm>
 
   <distributionManagement>
@@ -63,7 +46,7 @@
       <name>Siegfried Goeschl</name>
       <id>sgoeschl</id>
       <email>sgoeschl@apache.org</email>
-      <organization></organization>
+      <organization />
       <roles>
         <role>Java Developer</role>
       </roles>
@@ -72,7 +55,7 @@
       <name>Thomas Vandahl</name>
       <id>tv</id>
       <email>tv@apache.org</email>
-      <organization></organization>
+      <organization />
       <roles>
         <role>Java Developer</role>
       </roles>
@@ -136,4 +119,4 @@
     <fulcrum.deployment.protocol>scpexe</fulcrum.deployment.protocol>
   </properties>  
 	
-</project>
+</project>
\ No newline at end of file

[turbine-fulcrum-pool] 16/49: Prepare release

Posted by gk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

gk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/turbine-fulcrum-pool.git

commit d51a5bbfea5c08246b9eb4006ec45210522e323f
Author: Thomas Vandahl <tv...@apache.org>
AuthorDate: Sun Jun 21 19:33:28 2009 +0000

    Prepare release
    
    git-svn-id: https://svn.apache.org/repos/asf/turbine/fulcrum/trunk/pool@787075 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/pom.xml b/pom.xml
index b714ea6..5be96e7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -15,10 +15,7 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 -->
-<project
-    xmlns="http://maven.apache.org/POM/4.0.0"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
   <parent>
     <groupId>org.apache.fulcrum</groupId>
     <artifactId>fulcrum-parent</artifactId>

[turbine-fulcrum-pool] 41/49: [maven-release-plugin] prepare for next development iteration

Posted by gk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

gk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/turbine-fulcrum-pool.git

commit 26d6f223b43ff76705e003d00d81b2058801fec5
Author: Jeffery Painter <pa...@apache.org>
AuthorDate: Fri Jan 11 13:21:58 2019 +0000

    [maven-release-plugin] prepare for next development iteration
    
    git-svn-id: https://svn.apache.org/repos/asf/turbine/fulcrum/trunk/pool@1851043 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/pom.xml b/pom.xml
index e23d387..1a50863 100644
--- a/pom.xml
+++ b/pom.xml
@@ -25,16 +25,16 @@
   <modelVersion>4.0.0</modelVersion>
   <artifactId>fulcrum-pool</artifactId>
   <groupId>org.apache.fulcrum</groupId>
-  <version>1.0.5</version>
+  <version>1.0.6-SNAPSHOT</version>
   <name>Fulcrum Pool</name>
   <inceptionYear>2005</inceptionYear>
   <description>Fulcrum Pool Service</description>
   <url>http://turbine.apache.org/fulcrum/fulcrum-pool</url>
 		
   <scm>
-    <connection>scm:svn:http://svn.apache.org/repos/asf/turbine/fulcrum/tags/fulcrum-pool-1.0.5</connection>
-    <developerConnection>scm:svn:https://svn.apache.org/repos/asf/turbine/fulcrum/tags/fulcrum-pool-1.0.5</developerConnection>
-    <url>http://svn.apache.org/viewvc/turbine/fulcrum/tags/fulcrum-pool-1.0.5</url>
+    <connection>scm:svn:http://svn.apache.org/repos/asf/turbine/fulcrum/trunk/pool/</connection>
+    <developerConnection>scm:svn:https://svn.apache.org/repos/asf/turbine/fulcrum/trunk/pool/</developerConnection>
+    <url>http://svn.apache.org/viewvc/turbine/fulcrum/trunk/pool/</url>
   </scm>
 
   <developers>

[turbine-fulcrum-pool] 11/49: A bit too early...

Posted by gk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

gk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/turbine-fulcrum-pool.git

commit a985aff242453337dc574347bb827622464b318a
Author: Thomas Vandahl <tv...@apache.org>
AuthorDate: Thu Jun 18 20:24:43 2009 +0000

    A bit too early...
    
    git-svn-id: https://svn.apache.org/repos/asf/turbine/fulcrum/trunk/pool@786246 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index b714ea6..e42931c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -91,7 +91,7 @@
     <dependency>
       <groupId>org.apache.fulcrum</groupId>
       <artifactId>fulcrum-factory</artifactId>
-      <version>1.0.4</version>
+      <version>1.0.4-SNAPSHOT</version>
     </dependency>
     <!-- dependency>
       <groupId>commons-pool</groupId>

[turbine-fulcrum-pool] 37/49: Turbine coding standards compliance, update tests with annotations

Posted by gk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

gk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/turbine-fulcrum-pool.git

commit a50b154d9beb096adafdab3899b2526ac5b070af
Author: Jeffery Painter <pa...@apache.org>
AuthorDate: Mon Jan 7 21:25:15 2019 +0000

    Turbine coding standards compliance, update tests with annotations
    
    git-svn-id: https://svn.apache.org/repos/asf/turbine/fulcrum/trunk/pool@1850691 13f79535-47bb-0310-9956-ffa450edef68
---
 NOTICE.txt                                         |   3 +-
 .../apache/fulcrum/pool/DefaultPoolService.java    | 152 ++++++++++++++-------
 src/java/org/apache/fulcrum/pool/PoolBuffer.java   |  62 ++++++---
 .../org/apache/fulcrum/pool/PoolException.java     |  12 +-
 src/java/org/apache/fulcrum/pool/PoolService.java  |   4 +-
 src/java/org/apache/fulcrum/pool/Recyclable.java   |   3 +-
 src/java/org/apache/fulcrum/pool/Recycler.java     |   3 +-
 .../org/apache/fulcrum/pool/PoolServiceTest.java   |  45 ++++--
 xdocs/changes.xml                                  |   3 +
 9 files changed, 197 insertions(+), 90 deletions(-)

diff --git a/NOTICE.txt b/NOTICE.txt
index ebfd86a..ff61d26 100644
--- a/NOTICE.txt
+++ b/NOTICE.txt
@@ -2,5 +2,4 @@ Turbine Fulcrum Pool Component
 Copyright 2005-2019 The Apache Software Foundation.
 
 This product includes software developed at
-The Apache Software Foundation (http://www.apache.org/).
-
+The Apache Software Foundation (http://www.apache.org/).
\ No newline at end of file
diff --git a/src/java/org/apache/fulcrum/pool/DefaultPoolService.java b/src/java/org/apache/fulcrum/pool/DefaultPoolService.java
index b058a1a..f713bda 100644
--- a/src/java/org/apache/fulcrum/pool/DefaultPoolService.java
+++ b/src/java/org/apache/fulcrum/pool/DefaultPoolService.java
@@ -78,11 +78,15 @@ public class DefaultPoolService extends AbstractLogEnabled
 	 * @return the instance.
 	 * @throws PoolException if recycling fails.
 	 */
-	public Object getInstance(String className) throws PoolException {
-		try {
+	public Object getInstance(String className) throws PoolException 
+	{
+		try 
+		{
 			Object instance = pollInstance(className, null, null);
 			return instance == null ? getFactory().getInstance(className) : instance;
-		} catch (FactoryException fe) {
+		} 
+		catch (FactoryException fe) 
+		{
 			throw new PoolException(fe);
 		}
 	}
@@ -97,11 +101,15 @@ public class DefaultPoolService extends AbstractLogEnabled
 	 * @return the instance.
 	 * @throws PoolException if recycling fails.
 	 */
-	public Object getInstance(String className, ClassLoader loader) throws PoolException {
-		try {
+	public Object getInstance(String className, ClassLoader loader) throws PoolException 
+	{
+		try 
+		{
 			Object instance = pollInstance(className, null, null);
 			return instance == null ? getFactory().getInstance(className, loader) : instance;
-		} catch (FactoryException fe) {
+		} 
+		catch (FactoryException fe) 
+		{
 			throw new PoolException(fe);
 		}
 	}
@@ -118,11 +126,15 @@ public class DefaultPoolService extends AbstractLogEnabled
 	 * @return the instance.
 	 * @throws PoolException if recycling fails.
 	 */
-	public Object getInstance(String className, Object[] params, String[] signature) throws PoolException {
-		try {
+	public Object getInstance(String className, Object[] params, String[] signature) throws PoolException 
+	{
+		try 
+		{
 			Object instance = pollInstance(className, params, signature);
 			return instance == null ? getFactory().getInstance(className, params, signature) : instance;
-		} catch (FactoryException fe) {
+		} 
+		catch (FactoryException fe) 
+		{
 			throw new PoolException(fe);
 		}
 	}
@@ -142,11 +154,15 @@ public class DefaultPoolService extends AbstractLogEnabled
 	 * @throws PoolException if recycling fails.
 	 */
 	public Object getInstance(String className, ClassLoader loader, Object[] params, String[] signature)
-			throws PoolException {
-		try {
+			throws PoolException 
+	{
+		try 
+		{
 			Object instance = pollInstance(className, params, signature);
 			return instance == null ? getFactory().getInstance(className, loader, params, signature) : instance;
-		} catch (FactoryException fe) {
+		} 
+		catch (FactoryException fe) 
+		{
 			throw new PoolException(fe);
 		}
 	}
@@ -158,7 +174,8 @@ public class DefaultPoolService extends AbstractLogEnabled
 	 * @return true if class loaders are supported, false otherwise.
 	 * @throws FactoryException if test fails.
 	 */
-	public boolean isLoaderSupported(String className) throws FactoryException {
+	public boolean isLoaderSupported(String className) throws FactoryException 
+	{
 		return getFactory().isLoaderSupported(className);
 	}
 
@@ -171,11 +188,15 @@ public class DefaultPoolService extends AbstractLogEnabled
 	 * @throws PoolException if recycling fails.
 	 */
 	@SuppressWarnings("unchecked")
-	public Object getInstance(Class clazz) throws PoolException {
-		try {
+	public Object getInstance(Class clazz) throws PoolException 
+	{
+		try 
+		{
 			Object instance = pollInstance(clazz.getName(), null, null);
 			return instance == null ? factoryService.getInstance(clazz) : instance;
-		} catch (FactoryException fe) {
+		} 
+		catch (FactoryException fe) 
+		{
 			throw new PoolException(fe);
 		}
 	}
@@ -190,17 +211,19 @@ public class DefaultPoolService extends AbstractLogEnabled
 	 * @return the instance.
 	 * @throws PoolException if recycling fails.
 	 */
-	public Object getInstance(Class clazz, Object params[], String signature[]) throws PoolException {
-		
-		try {
+	public Object getInstance(Class clazz, Object params[], String signature[]) throws PoolException 
+	{
+		try 
+		{
 			Object instance = pollInstance(clazz.getName(), params, signature);
-			// FactoryService fs = getFactory();
 			
 			// TODO There is a whacky .toString() on the clazz object, 
 			// but otherwise it won't compile
 			return instance == null ? getFactory().getInstance(clazz.toString(), params, signature) : instance;
 			
-		} catch (FactoryException fe) {
+		} 
+		catch (FactoryException fe) 
+		{
 			throw new PoolException(fe);
 		}
 	}
@@ -214,17 +237,21 @@ public class DefaultPoolService extends AbstractLogEnabled
 	 * @return true if the instance was accepted.
 	 */
 	@SuppressWarnings("unchecked")
-	public boolean putInstance(Object instance) {
-		if (instance != null) {
+	public boolean putInstance(Object instance) 
+	{
+		if (instance != null) 
+		{
 			HashMap<String, PoolBuffer> repository = poolRepository;
 			String className = instance.getClass().getName();
 			PoolBuffer pool = (PoolBuffer) repository.get(className);
-			if (pool == null) {
+			if (pool == null) 
+			{
 				pool = new PoolBuffer(getCapacity(className));
 				repository = (HashMap<String, PoolBuffer>) repository.clone();
 				repository.put(className, pool);
 				poolRepository = repository;
-				if (instance instanceof ArrayCtorRecyclable) {
+				if (instance instanceof ArrayCtorRecyclable) 
+				{
 					pool.setArrayCtorRecyclable(true);
 				}
 			}
@@ -239,14 +266,18 @@ public class DefaultPoolService extends AbstractLogEnabled
 	 *
 	 * @param className the name of the class.
 	 */
-	public int getCapacity(String className) {
+	public int getCapacity(String className) 
+	{
 		PoolBuffer pool = (PoolBuffer) poolRepository.get(className);
-		if (pool == null) {
+		if (pool == null) 
+		{
 			/* Check class specific capacity. */
 			int capacity = poolCapacity;
-			if (capacityMap != null) {
+			if (capacityMap != null) 
+			{
 				Integer cap = (Integer) capacityMap.get(className);
-				if (cap != null) {
+				if (cap != null) 
+				{
 					capacity = cap.intValue();
 				}
 			}
@@ -264,7 +295,8 @@ public class DefaultPoolService extends AbstractLogEnabled
 	 * @param capacity  the new capacity.
 	 */
 	@SuppressWarnings("unchecked")
-	public void setCapacity(String className, int capacity) {
+	public void setCapacity(String className, int capacity) 
+	{
 		HashMap<String, PoolBuffer> repository = poolRepository;
 		repository = repository != null ? (HashMap<String, PoolBuffer>) repository.clone()
 				: new HashMap<String, PoolBuffer>();
@@ -277,7 +309,8 @@ public class DefaultPoolService extends AbstractLogEnabled
 	 *
 	 * @param className the name of the class.
 	 */
-	public int getSize(String className) {
+	public int getSize(String className) 
+	{
 		PoolBuffer pool = (PoolBuffer) poolRepository.get(className);
 		return pool != null ? pool.size() : 0;
 	}
@@ -288,9 +321,11 @@ public class DefaultPoolService extends AbstractLogEnabled
 	 * @param className the name of the class.
 	 */
 	@SuppressWarnings("unchecked")
-	public void clearPool(String className) {
+	public void clearPool(String className) 
+	{
 		HashMap<String, PoolBuffer> repository = poolRepository;
-		if (repository.get(className) != null) {
+		if (repository.get(className) != null) 
+		{
 			repository = (HashMap<String, PoolBuffer>) repository.clone();
 			repository.remove(className);
 			poolRepository = repository;
@@ -300,7 +335,8 @@ public class DefaultPoolService extends AbstractLogEnabled
 	/**
 	 * Clears all instances from the pool.
 	 */
-	public void clearPool() {
+	public void clearPool() 
+	{
 		poolRepository = new HashMap<String, PoolBuffer>();
 	}
 
@@ -313,7 +349,8 @@ public class DefaultPoolService extends AbstractLogEnabled
 	 * @return the object or null.
 	 * @throws PoolException if recycling fails.
 	 */
-	private Object pollInstance(String className, Object[] params, String[] signature) throws PoolException {
+	private Object pollInstance(String className, Object[] params, String[] signature) throws PoolException 
+	{
 		PoolBuffer pool = (PoolBuffer) poolRepository.get(className);
 		return pool != null ? pool.poll(params, signature, factoryService) : null;
 	}
@@ -323,7 +360,8 @@ public class DefaultPoolService extends AbstractLogEnabled
 	 *
 	 * @return the factory service.
 	 */
-	protected FactoryService getFactory() {
+	protected FactoryService getFactory() 
+	{
 		return factoryService;
 	}
 
@@ -332,26 +370,35 @@ public class DefaultPoolService extends AbstractLogEnabled
 	 * Avalon component lifecycle method
 	 * @see org.apache.avalon.framework.configuration.Configurable#configure(org.apache.avalon.framework.configuration.Configuration)
 	 */
-	public void configure(Configuration conf) {
+	public void configure(Configuration conf) 
+	{
 		final Configuration capacities = conf.getChild(POOL_CAPACITY, false);
-		if (capacities != null) {
+		if (capacities != null) 
+		{
 			Configuration defaultConf = capacities.getChild("default");
 			int capacity = defaultConf.getValueAsInteger(DEFAULT_POOL_CAPACITY);
-			if (capacity <= 0) {
+			if (capacity <= 0) 
+			{
 				throw new IllegalArgumentException("Capacity must be >0");
 			}
 			poolCapacity = capacity;
 			Configuration[] nameVal = capacities.getChildren();
-			for (int i = 0; i < nameVal.length; i++) {
+			for (int i = 0; i < nameVal.length; i++) 
+			{
 				String key = nameVal[i].getName();
-				if (!"default".equals(key)) {
+				if (!"default".equals(key)) 
+				{
 					capacity = nameVal[i].getValueAsInteger(poolCapacity);
-					if (capacity < 0) {
+					if (capacity < 0) 
+					{
 						capacity = poolCapacity;
 					}
-					if (capacityMap == null) {
+					
+					if (capacityMap == null) 
+					{
 						capacityMap = new HashMap<String, Integer>();
 					}
+					
 					capacityMap.put(key, capacity);
 				}
 			}
@@ -365,7 +412,8 @@ public class DefaultPoolService extends AbstractLogEnabled
 	 * 
 	 * @param manager the service manager
 	 */
-	public void service(ServiceManager manager) {
+	public void service(ServiceManager manager) 
+	{
 		this.manager = manager;
 	}
 
@@ -375,10 +423,14 @@ public class DefaultPoolService extends AbstractLogEnabled
 	 *
 	 * @throws Exception if initialization fails.
 	 */
-	public void initialize() throws Exception {
-		try {
+	public void initialize() throws Exception 
+	{
+		try 
+		{
 			factoryService = (FactoryService) manager.lookup(FactoryService.ROLE);
-		} catch (Exception e) {
+		} 
+		catch (Exception e) 
+		{
 			throw new Exception("DefaultPoolService.initialize: Failed to get a Factory object", e);
 		}
 	}
@@ -386,8 +438,10 @@ public class DefaultPoolService extends AbstractLogEnabled
 	/**
 	 * Avalon component lifecycle method
 	 */
-	public void dispose() {
-		if (factoryService != null) {
+	public void dispose() 
+	{
+		if (factoryService != null) 
+		{
 			manager.release(factoryService);
 		}
 		factoryService = null;
diff --git a/src/java/org/apache/fulcrum/pool/PoolBuffer.java b/src/java/org/apache/fulcrum/pool/PoolBuffer.java
index 3189119..7b36d94 100644
--- a/src/java/org/apache/fulcrum/pool/PoolBuffer.java
+++ b/src/java/org/apache/fulcrum/pool/PoolBuffer.java
@@ -27,7 +27,8 @@ import org.apache.fulcrum.factory.FactoryService;
 /**
  * An inner class for class specific pools.
  */
-public class PoolBuffer {
+public class PoolBuffer 
+{
 
 	/**
 	 * A buffer for class instances.
@@ -49,7 +50,8 @@ public class PoolBuffer {
 	 *
 	 * @param capacity a capacity.
 	 */
-	public PoolBuffer(int capacity) {
+	public PoolBuffer(int capacity) 
+	{
 		pool = new BoundedBuffer(capacity);
 	}
 
@@ -59,7 +61,8 @@ public class PoolBuffer {
 	 *
 	 * @param isArrayCtor a <code>boolean</code> value
 	 */
-	public void setArrayCtorRecyclable(boolean isArrayCtor) {
+	public void setArrayCtorRecyclable(boolean isArrayCtor) 
+	{
 		arrayCtorRecyclable = isArrayCtor;
 	}
 
@@ -73,21 +76,28 @@ public class PoolBuffer {
 	 * @throws PoolException if service failed to be found
 	 * @return an instance or null.
 	 */
-	public Object poll(Object[] params, String[] signature, FactoryService factoryService) throws PoolException {
+	public Object poll(Object[] params, String[] signature, FactoryService factoryService) throws PoolException 
+	{
 		Object instance = pool.poll();
-		if (instance != null) {
-			if (arrayCtorRecyclable) {
+		if (instance != null) 
+		{
+			if (arrayCtorRecyclable) 
+			{
 				((ArrayCtorRecyclable) instance).recycle(params);
 			} else if (instance instanceof Recyclable) {
-				try {
-					if (signature != null && signature.length > 0) {
+				try 
+				{
+					if (signature != null && signature.length > 0) 
+					{
 						/* Get the recycle method from the cache. */
 						Method recycle = getRecycle(signature);
-						if (recycle == null) {
+						if (recycle == null) 
+						{
 							synchronized (this) {
 								/* Make a synchronized recheck. */
 								recycle = getRecycle(signature);
-								if (recycle == null) {
+								if (recycle == null) 
+								{
 									Class<? extends Object> clazz = instance.getClass();
 									recycle = clazz.getMethod("recycle",
 											factoryService.getSignature(clazz, params, signature));
@@ -105,7 +115,9 @@ public class PoolBuffer {
 					} else {
 						((Recyclable) instance).recycle();
 					}
-				} catch (Exception x) {
+				} 
+				catch (Exception x) 
+				{
 					throw new PoolException("Recycling failed for " + instance.getClass().getName(), x);
 				}
 			}
@@ -119,11 +131,16 @@ public class PoolBuffer {
 	 * @param instance an instance.
 	 * @return false if failed to dispose
 	 */
-	public boolean offer(Object instance) {
-		if (instance instanceof Recyclable) {
-			try {
+	public boolean offer(Object instance) 
+	{
+		if (instance instanceof Recyclable) 
+		{
+			try 
+			{
 				((Recyclable) instance).dispose();
-			} catch (Exception x) {
+			} 
+			catch (Exception x) 
+			{
 				return false;
 			}
 		}
@@ -135,7 +152,8 @@ public class PoolBuffer {
 	 *
 	 * @return the capacity.
 	 */
-	public int capacity() {
+	public int capacity() 
+	{
 		return pool.capacity();
 	}
 
@@ -144,7 +162,8 @@ public class PoolBuffer {
 	 *
 	 * @return the size.
 	 */
-	public int size() {
+	public int size() 
+	{
 		return pool.size();
 	}
 
@@ -154,11 +173,14 @@ public class PoolBuffer {
 	 * @param signature the signature.
 	 * @return the recycle method or null.
 	 */
-	private Method getRecycle(String[] signature) {
+	private Method getRecycle(String[] signature) 
+	{
 		ArrayList<Recycler> cache = recyclers;
-		if (cache != null) {
+		if (cache != null) 
+		{
 			Method recycle;
-			for (Recycler recycler : cache) {
+			for (Recycler recycler : cache) 
+			{
 				recycle = recycler.match(signature);
 				if (recycle != null)
 					return recycle;
diff --git a/src/java/org/apache/fulcrum/pool/PoolException.java b/src/java/org/apache/fulcrum/pool/PoolException.java
index d3daf0b..3456641 100644
--- a/src/java/org/apache/fulcrum/pool/PoolException.java
+++ b/src/java/org/apache/fulcrum/pool/PoolException.java
@@ -25,22 +25,26 @@ package org.apache.fulcrum.pool;
  * @author <a href="mailto:epugh@upstate.com">Eric Pugh</a>
  * @version $Id$
  */
-public class PoolException extends Exception {
+public class PoolException extends Exception 
+{
 	
 	/**
 	 * Serial number
 	 */
 	private static final long serialVersionUID = 8192045560423973532L;
 
-	public PoolException(String msg) {
+	public PoolException(String msg) 
+	{
 		super(msg);
 	}
 
-	public PoolException(Exception ex) {
+	public PoolException(Exception ex) 
+	{
 		super(ex);
 	}
 
-	public PoolException(String msg, Exception ex) {
+	public PoolException(String msg, Exception ex) 
+	{
 		super(msg, ex);
 	}
 }
diff --git a/src/java/org/apache/fulcrum/pool/PoolService.java b/src/java/org/apache/fulcrum/pool/PoolService.java
index 19c8927..7f3f755 100644
--- a/src/java/org/apache/fulcrum/pool/PoolService.java
+++ b/src/java/org/apache/fulcrum/pool/PoolService.java
@@ -30,12 +30,14 @@ package org.apache.fulcrum.pool;
  * For objects implementing the Recyclable interface, a recycle method will be
  * called, when they are taken from the pool, and a dispose method, when they
  * are returned to the pool.
+ * </p>
  *
  * @author <a href="mailto:ilkka.priha@simsoft.fi">Ilkka Priha</a>
  * @author <a href="mailto:mcconnell@apache.org">Stephen McConnell</a>
  * @version $Id$
  */
-public interface PoolService {
+public interface PoolService 
+{
 	/** Avalon role - used to id the component within the manager */
 	String ROLE = PoolService.class.getName();
 
diff --git a/src/java/org/apache/fulcrum/pool/Recyclable.java b/src/java/org/apache/fulcrum/pool/Recyclable.java
index cddbe5b..d400c8d 100644
--- a/src/java/org/apache/fulcrum/pool/Recyclable.java
+++ b/src/java/org/apache/fulcrum/pool/Recyclable.java
@@ -26,7 +26,8 @@ package org.apache.fulcrum.pool;
  * @author <a href="mailto:ilkka.priha@simsoft.fi">Ilkka Priha</a>
  * @version $Id$
  */
-public interface Recyclable {
+public interface Recyclable 
+{
 	
 	/**
 	 * Recycles the object for a new client. Recycle methods with parameters must be
diff --git a/src/java/org/apache/fulcrum/pool/Recycler.java b/src/java/org/apache/fulcrum/pool/Recycler.java
index db5d41c..9ead245 100644
--- a/src/java/org/apache/fulcrum/pool/Recycler.java
+++ b/src/java/org/apache/fulcrum/pool/Recycler.java
@@ -64,7 +64,8 @@ public class Recycler
     	} else {
 
     		// test if there is a match 
-	    	if ( !Arrays.equals(sign,  signature) ) {
+	    	if ( !Arrays.equals(sign,  signature) ) 
+	    	{
 	    		return null;
 	    	} else {
 	    		return recycle;
diff --git a/src/test/org/apache/fulcrum/pool/PoolServiceTest.java b/src/test/org/apache/fulcrum/pool/PoolServiceTest.java
index 5724e96..be471e9 100644
--- a/src/test/org/apache/fulcrum/pool/PoolServiceTest.java
+++ b/src/test/org/apache/fulcrum/pool/PoolServiceTest.java
@@ -20,13 +20,17 @@ package org.apache.fulcrum.pool;
  */
 
 import org.apache.fulcrum.testcontainer.BaseUnitTest;
+import org.junit.Before;
+import org.junit.Test;
 
 /**
  * @author Eric Pugh
  * @author <a href="mailto:mcconnell@apache.org">Stephen McConnell</a>
  *
  */
-public class PoolServiceTest extends BaseUnitTest {
+public class PoolServiceTest extends BaseUnitTest 
+{
+	/** Default pool service **/
 	private PoolService poolService = null;
 
 	/**
@@ -34,7 +38,8 @@ public class PoolServiceTest extends BaseUnitTest {
 	 *
 	 * @param name the testcase's name.
 	 */
-	public PoolServiceTest(String name) {
+	public PoolServiceTest(String name) 
+	{
 		super(name);
 	}
 
@@ -43,7 +48,9 @@ public class PoolServiceTest extends BaseUnitTest {
 	 * 
 	 * @throws Exception generic exception
 	 */
-	public void setUp() throws Exception {
+	@Before
+	public void setUp() throws Exception 
+	{
 		super.setUp();
 
 		poolService = (PoolService) this.resolve(PoolService.class.getName());
@@ -54,13 +61,17 @@ public class PoolServiceTest extends BaseUnitTest {
 	 * 
 	 * @throws PoolException generic exception
 	 */
-	public void testGetInstanceClass() throws PoolException {
+	@Test
+	public void testGetInstanceClass() throws PoolException 
+	{
 		Object object = poolService.getInstance(StringBuilder.class);
 		assertTrue(object instanceof StringBuilder);
 
 	}
 
-	public void testPutInstance() {
+	@Test
+	public void testPutInstance() 
+	{
 		String s = "I am a string";
 		assertEquals(0, poolService.getSize("java.lang.String"));
 		poolService.putInstance(s);
@@ -68,14 +79,18 @@ public class PoolServiceTest extends BaseUnitTest {
 
 	}
 
-	public void testGetSetCapacity() {
+	@Test
+	public void testGetSetCapacity() 
+	{
 		assertEquals(128, poolService.getCapacity("java.lang.String"));
 		poolService.setCapacity("java.lang.String", 278);
 		assertEquals(278, poolService.getCapacity("java.lang.String"));
 
 	}
 
-	public void testGetSize() {
+	@Test
+	public void testGetSize() 
+	{
 		String s = "I am a string";
 		assertEquals(0, poolService.getSize("java.lang.String"));
 		poolService.putInstance(s);
@@ -83,31 +98,37 @@ public class PoolServiceTest extends BaseUnitTest {
 
 	}
 
-	/*
+	/**
 	 * Class to test for void clearPool(String)
 	 */
-	public void testClearPoolString() {
+	@Test
+	public void testClearPoolString() 
+	{
 		String s = "I am a string";
 		assertEquals(0, poolService.getSize("java.lang.String"));
+		
 		poolService.putInstance(s);
 		assertEquals(1, poolService.getSize("java.lang.String"));
+		
 		poolService.clearPool("java.lang.String");
 		assertEquals(0, poolService.getSize("java.lang.String"));
-
 	}
 
 	/*
 	 * Class to test for void clearPool()
 	 */
-	public void testClearPool() {
+	@Test
+	public void testClearPool() 
+	{
 		String s = "I am a string";
 		assertEquals(0, poolService.getSize("java.lang.String"));
+		
 		poolService.putInstance(s);
 		poolService.putInstance(new Double(32));
 		assertEquals(1, poolService.getSize("java.lang.String"));
+		
 		poolService.clearPool();
 		assertEquals(0, poolService.getSize("java.lang.String"));
 		assertEquals(0, poolService.getSize("java.lang.Double"));
-
 	}
 }
diff --git a/xdocs/changes.xml b/xdocs/changes.xml
index 2e0867b..6131005 100644
--- a/xdocs/changes.xml
+++ b/xdocs/changes.xml
@@ -28,6 +28,9 @@
        <action dev="painter" type="update">
          Derive from Turbine parent POM 5
        </action>
+       <action dev="painter" type="update">
+         Update dependencies to yaafi and testcontainer 1.0.8
+       </action>
     </release>  
     <release version="1.0.4" date="2009-06-21">
       <action dev="tv" type="add">

[turbine-fulcrum-pool] 22/49: Replace viewcvs with viewvc. Fixes TRB-95

Posted by gk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

gk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/turbine-fulcrum-pool.git

commit 51fc73ad547cc6f1c143b0594b885fc636736f66
Author: Thomas Vandahl <tv...@apache.org>
AuthorDate: Sun Feb 8 19:05:08 2015 +0000

    Replace viewcvs with viewvc. Fixes TRB-95
    
    git-svn-id: https://svn.apache.org/repos/asf/turbine/fulcrum/trunk/pool@1658247 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 1b9fa4e..dae8826 100644
--- a/pom.xml
+++ b/pom.xml
@@ -33,7 +33,7 @@
   <scm>
     <connection>scm:svn:http://svn.apache.org/repos/asf/turbine/fulcrum/trunk/pool/</connection>
     <developerConnection>scm:svn:https://svn.apache.org/repos/asf/turbine/fulcrum/trunk/pool/</developerConnection>
-    <url>http://svn.apache.org/viewcvs/turbine/fulcrum/trunk/pool/</url>
+    <url>http://svn.apache.org/viewvc/turbine/fulcrum/trunk/pool/</url>
   </scm>
 
   <distributionManagement>

[turbine-fulcrum-pool] 46/49: Add missing NOTICE.txt files and update copyright year to 2021

Posted by gk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

gk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/turbine-fulcrum-pool.git

commit 7cbeb490b980813d3090b6b6549e9505bb7b9f69
Author: Jeffery Painter <pa...@apache.org>
AuthorDate: Mon May 24 16:49:39 2021 +0000

    Add missing NOTICE.txt files and update copyright year to 2021
    
    git-svn-id: https://svn.apache.org/repos/asf/turbine/fulcrum/trunk/pool@1890170 13f79535-47bb-0310-9956-ffa450edef68
---
 NOTICE.txt | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/NOTICE.txt b/NOTICE.txt
index ff61d26..e571fef 100644
--- a/NOTICE.txt
+++ b/NOTICE.txt
@@ -1,5 +1,5 @@
 Turbine Fulcrum Pool Component
-Copyright 2005-2019 The Apache Software Foundation.
+Copyright 2005-2021 The Apache Software Foundation.
 
 This product includes software developed at
-The Apache Software Foundation (http://www.apache.org/).
\ No newline at end of file
+The Apache Software Foundation (http://www.apache.org/).

[turbine-fulcrum-pool] 18/49: [maven-release-plugin] prepare for next development iteration

Posted by gk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

gk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/turbine-fulcrum-pool.git

commit c585d49e10021d2c00c1ee03b5e7e407a9750550
Author: Thomas Vandahl <tv...@apache.org>
AuthorDate: Sun Jun 21 19:40:19 2009 +0000

    [maven-release-plugin] prepare for next development iteration
    
    git-svn-id: https://svn.apache.org/repos/asf/turbine/fulcrum/trunk/pool@787078 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/pom.xml b/pom.xml
index bcfa1c8..4477eaf 100644
--- a/pom.xml
+++ b/pom.xml
@@ -7,16 +7,16 @@
 
   <modelVersion>4.0.0</modelVersion>
   <artifactId>fulcrum-pool</artifactId>
-  <version>1.0.4</version>
+  <version>1.0.5-SNAPSHOT</version>
   <name>Fulcrum Pool</name>
   <inceptionYear>2005</inceptionYear>
   <description>Fulcrum Pool Service</description>
   <url>http://turbine.apache.org/fulcrum/fulcrum-pool</url>
 		
   <scm>
-    <connection>scm:svn:http://svn.apache.org/repos/asf/turbine/fulcrum/tags/FULCRUM_POOL_1_0_4</connection>
-    <developerConnection>scm:svn:https://svn.apache.org/repos/asf/turbine/fulcrum/tags/FULCRUM_POOL_1_0_4</developerConnection>
-    <url>http://svn.apache.org/viewcvs/turbine/fulcrum/tags/FULCRUM_POOL_1_0_4</url>
+    <connection>scm:svn:http://svn.apache.org/repos/asf/turbine/fulcrum/trunk/pool/</connection>
+    <developerConnection>scm:svn:https://svn.apache.org/repos/asf/turbine/fulcrum/trunk/pool/</developerConnection>
+    <url>http://svn.apache.org/viewcvs/turbine/fulcrum/trunk/pool/</url>
   </scm>
 
   <distributionManagement>

[turbine-fulcrum-pool] 38/49: Update junit 5, fix changes doc location for report generation

Posted by gk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

gk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/turbine-fulcrum-pool.git

commit 7c8b75d4fdc56aec908ac9f46ad9519949cc5103
Author: Jeffery Painter <pa...@apache.org>
AuthorDate: Fri Jan 11 12:28:28 2019 +0000

    Update junit 5, fix changes doc location for report generation
    
    git-svn-id: https://svn.apache.org/repos/asf/turbine/fulcrum/trunk/pool@1851029 13f79535-47bb-0310-9956-ffa450edef68
---
 {xdocs => src/changes}/changes.xml                 |  3 ++
 .../org/apache/fulcrum/pool/PoolServiceTest.java   | 46 +++++++++++++---------
 2 files changed, 30 insertions(+), 19 deletions(-)

diff --git a/xdocs/changes.xml b/src/changes/changes.xml
similarity index 95%
rename from xdocs/changes.xml
rename to src/changes/changes.xml
index 6131005..b6d4c63 100644
--- a/xdocs/changes.xml
+++ b/src/changes/changes.xml
@@ -26,6 +26,9 @@
   <body>
     <release version="1.0.5" date="in SVN">
        <action dev="painter" type="update">
+         Update test to use junit 5
+       </action>
+       <action dev="painter" type="update">
          Derive from Turbine parent POM 5
        </action>
        <action dev="painter" type="update">
diff --git a/src/test/org/apache/fulcrum/pool/PoolServiceTest.java b/src/test/org/apache/fulcrum/pool/PoolServiceTest.java
index be471e9..bd080de 100644
--- a/src/test/org/apache/fulcrum/pool/PoolServiceTest.java
+++ b/src/test/org/apache/fulcrum/pool/PoolServiceTest.java
@@ -1,5 +1,8 @@
 package org.apache.fulcrum.pool;
 
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -19,41 +22,37 @@ package org.apache.fulcrum.pool;
  * under the License.
  */
 
-import org.apache.fulcrum.testcontainer.BaseUnitTest;
-import org.junit.Before;
-import org.junit.Test;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+import org.apache.fulcrum.testcontainer.BaseUnit5Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+
 
 /**
+ * Basic testing of the PoolService Component
+ *
+ * @author <a href="mailto:painter@apache.org">Jeffery Painter</a>
  * @author Eric Pugh
  * @author <a href="mailto:mcconnell@apache.org">Stephen McConnell</a>
  *
  */
-public class PoolServiceTest extends BaseUnitTest 
+public class PoolServiceTest extends BaseUnit5Test 
 {
 	/** Default pool service **/
 	private PoolService poolService = null;
 
 	/**
-	 * Defines the testcase name for JUnit.
-	 *
-	 * @param name the testcase's name.
-	 */
-	public PoolServiceTest(String name) 
-	{
-		super(name);
-	}
-
-	/**
 	 * Perform pool service setup
 	 * 
 	 * @throws Exception generic exception
 	 */
-	@Before
+	@BeforeEach
 	public void setUp() throws Exception 
 	{
-		super.setUp();
-
-		poolService = (PoolService) this.resolve(PoolService.class.getName());
+        setConfigurationFileName("src/test/TestComponentConfig.xml");
+        setRoleFileName("src/test/TestRoleConfig.xml");
+        poolService = (PoolService) this.lookup(PoolService.class.getName());
 	}
 
 	/**
@@ -69,6 +68,9 @@ public class PoolServiceTest extends BaseUnitTest
 
 	}
 
+	/**
+	 * Test adding an instance to the pool
+	 */
 	@Test
 	public void testPutInstance() 
 	{
@@ -79,6 +81,9 @@ public class PoolServiceTest extends BaseUnitTest
 
 	}
 
+	/**
+	 * Test altering pool capacity
+	 */
 	@Test
 	public void testGetSetCapacity() 
 	{
@@ -88,6 +93,9 @@ public class PoolServiceTest extends BaseUnitTest
 
 	}
 
+	/**
+	 * Test to determine current size of the pool
+	 */
 	@Test
 	public void testGetSize() 
 	{
@@ -114,7 +122,7 @@ public class PoolServiceTest extends BaseUnitTest
 		assertEquals(0, poolService.getSize("java.lang.String"));
 	}
 
-	/*
+	/**
 	 * Class to test for void clearPool()
 	 */
 	@Test

[turbine-fulcrum-pool] 20/49: Added eclipse generated files to svn:ignore for all remaining fulcrum components.

Posted by gk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

gk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/turbine-fulcrum-pool.git

commit b78223ad241092e4a5d451318e4c03c4ac5a14ff
Author: Ludwig Magnusson <lu...@apache.org>
AuthorDate: Mon Oct 10 12:34:37 2011 +0000

    Added eclipse generated files to svn:ignore for all remaining fulcrum components.
    
    git-svn-id: https://svn.apache.org/repos/asf/turbine/fulcrum/trunk/pool@1180920 13f79535-47bb-0310-9956-ffa450edef68

[turbine-fulcrum-pool] 14/49: Prepare release

Posted by gk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

gk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/turbine-fulcrum-pool.git

commit 977d1ad64545aa07581cc581dc5f2e278dc37849
Author: Thomas Vandahl <tv...@apache.org>
AuthorDate: Sun Jun 21 19:22:57 2009 +0000

    Prepare release
    
    git-svn-id: https://svn.apache.org/repos/asf/turbine/fulcrum/trunk/pool@787070 13f79535-47bb-0310-9956-ffa450edef68
---
 xdocs/changes.xml | 7 ++++++-
 xdocs/index.xml   | 4 ++--
 2 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/xdocs/changes.xml b/xdocs/changes.xml
index cfae165..fbff7f4 100644
--- a/xdocs/changes.xml
+++ b/xdocs/changes.xml
@@ -19,11 +19,16 @@
 -->
 <document>
   <properties>
-    <title>Fulcrum Pool Impl</title>
+    <title>Fulcrum Pool Component</title>
     <author email="epugh@opensourceconnections.com">Eric Pugh</author>
   </properties>
 
   <body>
+    <release version="1.0.4" date="2009-06-21">
+      <action dev="tv" type="add">
+        Added a Maven-2 build
+      </action>
+    </release>
     <release version="1.0.3" date="2004-11-24">
       <action dev="epugh" type="update" due-to="Kostyantyn Shchekotykhin">
         Merge api and impl jars into one project.
diff --git a/xdocs/index.xml b/xdocs/index.xml
index 62d3c0b..7aa2370 100644
--- a/xdocs/index.xml
+++ b/xdocs/index.xml
@@ -21,7 +21,7 @@
 <document>
 
   <properties>
-    <title>Pool Component</title>
+    <title>Fulcrum Pool Component</title>
     <author email="epugh@upstate.com">Eric PUgh</author>
   </properties>
 
@@ -31,7 +31,7 @@
 
     <p>
       The Pool Service extends the functionality of the Factory Service by adding
-      support for pooling objects intantiated from the given class name or
+      support for pooling objects instantiated from the given class name or
       Class object reference. Pooling of objects stabilizes memory consumption and
       reduces garbage collection making response times in server applications
       more predictable.

[turbine-fulcrum-pool] 12/49: Prepare release

Posted by gk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

gk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/turbine-fulcrum-pool.git

commit b4eda40fc304020ca9fa18fccca631b493606ee0
Author: Thomas Vandahl <tv...@apache.org>
AuthorDate: Thu Jun 18 20:25:10 2009 +0000

    Prepare release
    
    git-svn-id: https://svn.apache.org/repos/asf/turbine/fulcrum/trunk/pool@786247 13f79535-47bb-0310-9956-ffa450edef68
---
 src/site/site.xml | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/src/site/site.xml b/src/site/site.xml
new file mode 100644
index 0000000..8e64fd1
--- /dev/null
+++ b/src/site/site.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+ 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.
+-->
+<project
+  name="Fulcrum Pool"
+  href="http://turbine.apache.org/fulcrum/fulcrum-pool/">
+
+  <body>
+    <menu name="Overview">
+      <item name="Main"                 href="/index.html"/>
+    </menu>
+  </body>
+</project>

[turbine-fulcrum-pool] 03/49: (Hopefully) improve documentation

Posted by gk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

gk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/turbine-fulcrum-pool.git

commit 7cc01d8df7e8c117fc0c7b398997b2dfa2f19d7e
Author: Thomas Vandahl <tv...@apache.org>
AuthorDate: Tue Aug 5 16:32:32 2008 +0000

    (Hopefully) improve documentation
    
    git-svn-id: https://svn.apache.org/repos/asf/turbine/fulcrum/trunk/pool@682777 13f79535-47bb-0310-9956-ffa450edef68
---
 xdocs/index.xml | 150 ++++++++++++++++++++++++++++++++------------------------
 1 file changed, 87 insertions(+), 63 deletions(-)

diff --git a/xdocs/index.xml b/xdocs/index.xml
index f50c7f1..62d3c0b 100644
--- a/xdocs/index.xml
+++ b/xdocs/index.xml
@@ -29,98 +29,122 @@
 
   <section name="Overview">
 
-<p>
-The Pool Service extends the functionality of the Factory Service by adding
-support for pooling objects intantiated from the given class name or
-Class object reference. Pooling of objects stabilizes memory consumption and
-reduces garbage collection making response times in server applications
-more predictable.
-</p>
-
-<p>
-When a new instance is requested from the service, it first checks its pool
-if one is available. If the the pool is empty, a new object will be instantiated
-from the given class. If the class is specified by its name, the request to create
-an instance will be forwarded to the Factory Service.
-</p>
-
-<p>
-For pooled objects implementing the Recyclable interface, a recycle method
-will be called, when they are taken from the pool, and a dispose method,
-when they are returned to the pool. Implementations of the methods should
-clear and initialize the pooled instances correspondingly. Objects
-that do not implement the interface can also be pooled, if they do not
-need to perform any specific actions during pooling. A RecyclableSupport class
-can be extended to get a minimal implementation of the interface.
-</p>
-
-<p>
-An ArrayCtorRecyclable interface extends the Recyclable interface providing
-a more efficient recycle method with less reflection for recycling frequently
-used objects having constuctors with parameters.
-</p>
-  </section>
-
-<section name="Configuration">
+    <p>
+      The Pool Service extends the functionality of the Factory Service by adding
+      support for pooling objects intantiated from the given class name or
+      Class object reference. Pooling of objects stabilizes memory consumption and
+      reduces garbage collection making response times in server applications
+      more predictable.
+    </p>
+    
+    <p>
+      When a new instance is requested from the service, it first checks its pool
+      if one is available. If the the pool is empty, a new object will be instantiated
+      from the given class. If the class is specified by its name, the request to create
+      an instance will be forwarded to the Factory Service.
+    </p>
 
     <p>
-      First, here is the role configuration.  This component requires the FactoryService
-      component.
+      For pooled objects implementing the Recyclable interface, a recycle method
+      will be called, when they are taken from the pool, and a dispose method,
+      when they are returned to the pool. Implementations of the methods should
+      clear and initialize the pooled instances correspondingly. Objects
+      that do not implement the interface can also be pooled, if they do not
+      need to perform any specific actions during pooling. A RecyclableSupport class
+      can be extended to get a minimal implementation of the interface.
+    </p>
+    
+    <p>
+      An ArrayCtorRecyclable interface extends the Recyclable interface providing
+      a more efficient recycle method with less reflection for recycling frequently
+      used objects having constructors with parameters.
     </p>
+  </section>
 
-<source>
-<![CDATA[
+  <section name="Configuration">
+    <subsection name="Role Configuration">
+      <p>
+        This component requires the FactoryService component.
+      </p>
+      <source><![CDATA[
     <role
         name="org.apache.fulcrum.pool.PoolService"
         shorthand="pool"
         default-class="org.apache.fulcrum.pool.DefaultPoolService"/>
 
-
     <role
         name="org.apache.fulcrum.factory.FactoryService"
         shorthand="factory"
         default-class="org.apache.fulcrum.factory.DefaultFactoryService"/>
-]]>
-</source>
-
-  <p>
-    Now comes the basic configuration of the component.  Here will will
-    configure the various bundles.
-  </p>
-<source>
-
-<![CDATA[
+      ]]></source>
+    </subsection>
+
+    <subsection name="Component Configuration">
+      <table>
+        <tr>
+          <th>Item</th>
+          <th>Datatype</th>
+          <th>Cardinality</th>
+          <th>Description</th>
+        </tr>
+        <tr>
+          <td>capacity</td>
+          <td>Complex</td>
+          <td>[0|1]</td>
+          <td>
+            The parent element for defining pool capacities. Sub-elements define
+            capacities for certain class names. You can define one
+            <code>default</code> pool that will be used if no others
+            match. If not specified, a default capacity of 128 is used. See 
+            the configuration example below.
+          </td>
+        </tr>
+      </table>
+    </subsection>
+
+    <subsection name="Component Configuration Example">
+      <source><![CDATA[
     <pool>
-      <capacity default="256"/>
+        <capacity>
+            <javax.xml.parsers.DocumentBuilder>
+                256
+            </javax.xml.parsers.DocumentBuilder>
+            <default>
+                128
+            </default>
+        </capacity>
     </pool>
 
-    <factory/>
-]]>
-</source>
-
+    <factory>
+        ...
+    </factory>
+      ]]></source>
+    </subsection>
   </section>
 
   <section name="Usage">
 
-<p>
-The Pool Service can be called instead of the Factory Service, when instantiating
-objects that are needed repeatedly e.g. for processing client requests. Intances
-of RunData implementations, ParameterParser and CookieParser implementations,
-Pull Service tools, etc, are typical examples of pooled objects. Used objects
-must be returned to the Pool Service for recycling. The TurbinePool class is a
-static accessor for common methods of the Pool Service:
-</p>
+    <p>
+      The Pool Service can be called instead of the Factory Service, when instantiating
+      objects that are needed repeatedly e.g. for processing client requests. Instances
+      of RunData implementations, ParameterParser and CookieParser implementations,
+      Pull Service tools, etc, are typical examples of pooled objects. Used objects
+      must be returned to the Pool Service for recycling.
+    </p>
 
 <source><![CDATA[
+// Access the service singleton.
+PoolService service = (PoolService)container.lookup(PoolService.ROLE);
+
 // Get a pooled DOM parser.
 DocumentBuilder parser =
-    TurbinePool.getInstance("javax.xml.parsers.DocumentBuilder");
+    service.getInstance("javax.xml.parsers.DocumentBuilder");
 
 // Parse an XML document.
 Document doc = parser.parse(myfile);
 
 // Return the parser to the pool.
-TurbinePool.putInstance(parser);
+service.putInstance(parser);
 ]]></source>
 
   </section>

[turbine-fulcrum-pool] 28/49: Remove old dependency reference

Posted by gk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

gk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/turbine-fulcrum-pool.git

commit 3a233c177f701477515b0b0a934feab0622a5528
Author: Jeffery Painter <pa...@apache.org>
AuthorDate: Wed Oct 24 12:36:40 2018 +0000

    Remove old dependency reference
    
    git-svn-id: https://svn.apache.org/repos/asf/turbine/fulcrum/trunk/pool@1844760 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml | 6 ------
 1 file changed, 6 deletions(-)

diff --git a/pom.xml b/pom.xml
index c6f79fd..4c0d98c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -91,12 +91,6 @@
       <artifactId>fulcrum-factory</artifactId>
       <version>1.1.1-SNAPSHOT</version>
     </dependency>
-    <!-- dependency>
-      <groupId>commons-pool</groupId>
-      <artifactId>commons-pool</artifactId>
-      <version>1.4</version>
-      <optional>true</optional>
-    </dependency -->
     <dependency>
       <groupId>org.apache.fulcrum</groupId>
       <artifactId>fulcrum-testcontainer</artifactId>

[turbine-fulcrum-pool] 06/49: Use release version 1.0.6 of YAAFI for test environment

Posted by gk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

gk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/turbine-fulcrum-pool.git

commit 58b5a91ef235eca6c4aa76cda9c15a556b676d32
Author: Thomas Vandahl <tv...@apache.org>
AuthorDate: Sun May 3 18:55:34 2009 +0000

    Use release version 1.0.6 of YAAFI for test environment
    
    git-svn-id: https://svn.apache.org/repos/asf/turbine/fulcrum/trunk/pool@771100 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 804a366..9a4abc5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -103,7 +103,7 @@
     <dependency>
       <groupId>org.apache.fulcrum</groupId>
       <artifactId>fulcrum-yaafi</artifactId>
-      <version>1.0.7-SNAPSHOT</version>
+      <version>1.0.6</version>
       <scope>test</scope>
     </dependency>
   </dependencies>

[turbine-fulcrum-pool] 26/49: working with yaafi snapshot

Posted by gk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

gk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/turbine-fulcrum-pool.git

commit d3fa05cc9a3ed9424d3a41b69b2fc02ef84a4368
Author: Jeffery Painter <pa...@apache.org>
AuthorDate: Wed Oct 3 15:06:23 2018 +0000

    working with yaafi snapshot
    
    git-svn-id: https://svn.apache.org/repos/asf/turbine/fulcrum/trunk/pool@1842731 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/pom.xml b/pom.xml
index b3e14ab..3d0e7cc 100644
--- a/pom.xml
+++ b/pom.xml
@@ -89,7 +89,7 @@
     <dependency>
       <groupId>org.apache.fulcrum</groupId>
       <artifactId>fulcrum-factory</artifactId>
-      <version>1.0.4</version>
+      <version>1.1.1-SNAPSHOT</version>
     </dependency>
     <!-- dependency>
       <groupId>commons-pool</groupId>
@@ -100,13 +100,13 @@
     <dependency>
       <groupId>org.apache.fulcrum</groupId>
       <artifactId>fulcrum-testcontainer</artifactId>
-      <version>1.0.6</version>
+      <version>1.0.8-SNAPSHOT</version>
       <scope>test</scope>
     </dependency>
     <dependency>
       <groupId>org.apache.fulcrum</groupId>
       <artifactId>fulcrum-yaafi</artifactId>
-      <version>1.0.6</version>
+      <version>1.0.8-SNAPSHOT</version>
       <scope>test</scope>
     </dependency>
   </dependencies>
@@ -137,4 +137,4 @@
     <fulcrum.deployment.protocol>scpexe</fulcrum.deployment.protocol>
   </properties>  
 	
-</project>
\ No newline at end of file
+</project>

[turbine-fulcrum-pool] 42/49: Start conversion to generics, please review and give feedback

Posted by gk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

gk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/turbine-fulcrum-pool.git

commit 1e3320acc3528d5eae92b0072cd7befb1caa3dad
Author: Jeffery Painter <pa...@apache.org>
AuthorDate: Fri Jan 11 14:19:15 2019 +0000

    Start conversion to generics, please review and give feedback
    
    git-svn-id: https://svn.apache.org/repos/asf/turbine/fulcrum/trunk/pool@1851054 13f79535-47bb-0310-9956-ffa450edef68
---
 src/changes/changes.xml                                 |  7 ++++++-
 src/java/org/apache/fulcrum/pool/BoundedBuffer.java     |  5 +++--
 .../org/apache/fulcrum/pool/DefaultPoolService.java     | 17 +++++++++--------
 src/java/org/apache/fulcrum/pool/PoolBuffer.java        |  8 ++++----
 src/java/org/apache/fulcrum/pool/PoolService.java       |  6 ++++--
 5 files changed, 26 insertions(+), 17 deletions(-)

diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index b6d4c63..ad37d4e 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -24,7 +24,12 @@
   </properties>
 
   <body>
-    <release version="1.0.5" date="in SVN">
+    <release version="1.0.6" date="in SVN">
+       <action dev="painter" type="update">
+         Move to generics
+       </action>
+    </release>
+    <release version="1.0.5" date="2019-01-11">
        <action dev="painter" type="update">
          Update test to use junit 5
        </action>
diff --git a/src/java/org/apache/fulcrum/pool/BoundedBuffer.java b/src/java/org/apache/fulcrum/pool/BoundedBuffer.java
index 56bfbed..d75a268 100644
--- a/src/java/org/apache/fulcrum/pool/BoundedBuffer.java
+++ b/src/java/org/apache/fulcrum/pool/BoundedBuffer.java
@@ -133,12 +133,13 @@ public class BoundedBuffer
      *
      * @return the oldest item from the buffer, or null if the buffer is empty.
      */
-    public synchronized Object poll()
+    public synchronized <T> T poll()
     {
         if (usedSlots_ > 0)
         {
             --usedSlots_;
-            Object old = array_[takePtr_];
+            @SuppressWarnings("unchecked")
+			T old = (T) array_[takePtr_];
             array_[takePtr_] = null;
             if (++takePtr_ >= array_.length)
                 takePtr_ = 0;
diff --git a/src/java/org/apache/fulcrum/pool/DefaultPoolService.java b/src/java/org/apache/fulcrum/pool/DefaultPoolService.java
index f713bda..6e8e0f9 100644
--- a/src/java/org/apache/fulcrum/pool/DefaultPoolService.java
+++ b/src/java/org/apache/fulcrum/pool/DefaultPoolService.java
@@ -78,11 +78,11 @@ public class DefaultPoolService extends AbstractLogEnabled
 	 * @return the instance.
 	 * @throws PoolException if recycling fails.
 	 */
-	public Object getInstance(String className) throws PoolException 
+	public <T> T getInstance(String className) throws PoolException 
 	{
 		try 
 		{
-			Object instance = pollInstance(className, null, null);
+			T instance = pollInstance(className, null, null);
 			return instance == null ? getFactory().getInstance(className) : instance;
 		} 
 		catch (FactoryException fe) 
@@ -183,17 +183,18 @@ public class DefaultPoolService extends AbstractLogEnabled
 	 * Gets an instance of a specified class either from the pool or by instatiating
 	 * from the class if the pool is empty.
 	 *
+	 * @param <T> type of the class
 	 * @param clazz the class.
 	 * @return the instance.
 	 * @throws PoolException if recycling fails.
 	 */
 	@SuppressWarnings("unchecked")
-	public Object getInstance(Class clazz) throws PoolException 
+	public <T> T getInstance(Class<?> clazz) throws PoolException 
 	{
 		try 
 		{
-			Object instance = pollInstance(clazz.getName(), null, null);
-			return instance == null ? factoryService.getInstance(clazz) : instance;
+			T instance = pollInstance(clazz.getName(), null, null);
+			return instance == null ? (T) factoryService.getInstance(clazz) : instance;
 		} 
 		catch (FactoryException fe) 
 		{
@@ -211,11 +212,11 @@ public class DefaultPoolService extends AbstractLogEnabled
 	 * @return the instance.
 	 * @throws PoolException if recycling fails.
 	 */
-	public Object getInstance(Class clazz, Object params[], String signature[]) throws PoolException 
+	public <T> T getInstance(Class<?> clazz, Object params[], String signature[]) throws PoolException 
 	{
 		try 
 		{
-			Object instance = pollInstance(clazz.getName(), params, signature);
+			T instance = pollInstance(clazz.getName(), params, signature);
 			
 			// TODO There is a whacky .toString() on the clazz object, 
 			// but otherwise it won't compile
@@ -349,7 +350,7 @@ public class DefaultPoolService extends AbstractLogEnabled
 	 * @return the object or null.
 	 * @throws PoolException if recycling fails.
 	 */
-	private Object pollInstance(String className, Object[] params, String[] signature) throws PoolException 
+	private <T> T pollInstance(String className, Object[] params, String[] signature) throws PoolException 
 	{
 		PoolBuffer pool = (PoolBuffer) poolRepository.get(className);
 		return pool != null ? pool.poll(params, signature, factoryService) : null;
diff --git a/src/java/org/apache/fulcrum/pool/PoolBuffer.java b/src/java/org/apache/fulcrum/pool/PoolBuffer.java
index 7b36d94..4cb732c 100644
--- a/src/java/org/apache/fulcrum/pool/PoolBuffer.java
+++ b/src/java/org/apache/fulcrum/pool/PoolBuffer.java
@@ -46,7 +46,7 @@ public class PoolBuffer
 	private ArrayList<Recycler> recyclers;
 
 	/**
-	 * Contructs a new pool buffer with a specific capacity.
+	 * Constructs a new pool buffer with a specific capacity.
 	 *
 	 * @param capacity a capacity.
 	 */
@@ -70,15 +70,15 @@ public class PoolBuffer
 	 * Polls for an instance from the pool.
 	 * 
 	 * 
-	 * @param params         object paramaters
+	 * @param params         object parameters
 	 * @param signature      signature of the class
 	 * @param factoryService service to add
 	 * @throws PoolException if service failed to be found
 	 * @return an instance or null.
 	 */
-	public Object poll(Object[] params, String[] signature, FactoryService factoryService) throws PoolException 
+	public <T> T poll(Object[] params, String[] signature, FactoryService factoryService) throws PoolException 
 	{
-		Object instance = pool.poll();
+		T instance = pool.poll();
 		if (instance != null) 
 		{
 			if (arrayCtorRecyclable) 
diff --git a/src/java/org/apache/fulcrum/pool/PoolService.java b/src/java/org/apache/fulcrum/pool/PoolService.java
index 7f3f755..a61b298 100644
--- a/src/java/org/apache/fulcrum/pool/PoolService.java
+++ b/src/java/org/apache/fulcrum/pool/PoolService.java
@@ -50,23 +50,25 @@ public interface PoolService
 	 * Gets an instance of a specified class either from the pool or by
 	 * instantiating from the class if the pool is empty.
 	 *
+	 * @param <T> type of the instance
 	 * @param clazz the class.
 	 * @return the instance.
 	 * @throws PoolException if recycling fails.
 	 */
-	public Object getInstance(Class clazz) throws PoolException;
+	public <T> T getInstance(Class<?> clazz) throws PoolException;
 
 	/**
 	 * Gets an instance of a specified class either from the pool or by
 	 * instantiating from the class if the pool is empty.
 	 *
+	 * @param <T>       type of the instance class
 	 * @param clazz     the class.
 	 * @param params    an array containing the parameters of the constructor.
 	 * @param signature an array containing the signature of the constructor.
 	 * @return the instance.
 	 * @throws PoolException if recycling fails.
 	 */
-	public Object getInstance(Class clazz, Object params[], String signature[]) throws PoolException;
+	public <T> T getInstance(Class<?> clazz, Object params[], String signature[]) throws PoolException;
 
 	/**
 	 * Puts a used object back to the pool. Objects implementing the Recyclable

[turbine-fulcrum-pool] 32/49: Followed gv's example on yaafi-crypto to clean up all poms, removed old deployment management profiles, removed old maven 1.x build files, fixed test case in PBE that relied on old project file, added missing licenses to poms

Posted by gk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

gk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/turbine-fulcrum-pool.git

commit e04a8a947aff20f86d41e8352351ec2f4ae7829b
Author: Jeffery Painter <pa...@apache.org>
AuthorDate: Wed Nov 7 13:36:32 2018 +0000

    Followed gv's example on yaafi-crypto to clean up all poms, removed old deployment management profiles, removed old maven 1.x build files, fixed test case in PBE that relied on old project file, added missing licenses to poms
    
    git-svn-id: https://svn.apache.org/repos/asf/turbine/fulcrum/trunk/pool@1846008 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml | 42 +-----------------------------------------
 1 file changed, 1 insertion(+), 41 deletions(-)

diff --git a/pom.xml b/pom.xml
index 1ad71da..552aa65 100644
--- a/pom.xml
+++ b/pom.xml
@@ -37,14 +37,6 @@
     <url>http://svn.apache.org/viewvc/turbine/fulcrum/trunk/pool/</url>
   </scm>
 
-  <distributionManagement>
-    <site>
-      <id>apache.website</id>
-      <name>Fulcrum Website</name>
-      <url>${fulcrum.deployment.protocol}://people.apache.org/www/turbine.apache.org/fulcrum/fulcrum-pool/</url>
-    </site>    
-  </distributionManagement>
-	
   <developers>
     <developer>
       <name>Eric Pugh</name>
@@ -108,42 +100,10 @@
   <build>
     <sourceDirectory>${basedir}/src/java</sourceDirectory>
     <testSourceDirectory>${basedir}/src/test</testSourceDirectory>
-    
-    <plugins>
-		<plugin>
-		    <groupId>org.apache.maven.plugins</groupId>
-		    <artifactId>maven-compiler-plugin</artifactId>
-		    <configuration>
-		        <source>${maven.compiler.source}</source>
-		        <target>${maven.compiler.target}</target>
-		    </configuration>
-		</plugin>    
-    </plugins>
   </build>
 
-  <profiles>
-    <profile>
-      <id>rc</id>
-      <distributionManagement>
-        <!-- Cannot define in parent ATM, see COMMONSSITE-26 -->
-        <site>
-          <id>apache.website</id>
-          <name>Apache Fulcrum Release Candidate Staging Site</name>
-          <url>${fulcrum.deployment.protocol}://people.apache.org/www/turbine.apache.org/builds/fulcrum/${fulcrum.componentid}/${fulcrum.release.version}/${fulcrum.rc.version}/site</url>
-        </site>
-      </distributionManagement>
-    </profile>
-  </profiles>
-  
-  
   <properties>
-	<maven.compiler.target>1.8</maven.compiler.target>
-	<maven.compiler.source>1.8</maven.compiler.source>
-  
-    <!-- This bits are used for the staging directory -->
-    <fulcrum.release.version>1.0.4</fulcrum.release.version>
-    <fulcrum.rc.version>RC1</fulcrum.rc.version>  
-    <fulcrum.deployment.protocol>scpexe</fulcrum.deployment.protocol>
+    <turbine.site.path>fulcrum/fulcrum-pool</turbine.site.path>
   </properties>  
 	
 </project>

[turbine-fulcrum-pool] 23/49: Ignoring the remaining IntelliJ project files in SVN

Posted by gk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

gk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/turbine-fulcrum-pool.git

commit ea075844e6f14b378671d41b60e61e7ff30dbd89
Author: Siegfried Goeschl <sg...@apache.org>
AuthorDate: Mon Jun 22 21:03:10 2015 +0000

    Ignoring the remaining IntelliJ project files in SVN
    
    git-svn-id: https://svn.apache.org/repos/asf/turbine/fulcrum/trunk/pool@1686939 13f79535-47bb-0310-9956-ffa450edef68