From 6a5618b2741471546e0b0885e1758c391837dff6 Mon Sep 17 00:00:00 2001 From: antelder Date: Thu, 16 Feb 2012 15:38:02 +0000 Subject: Rename beta3 tag to final name git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1245031 13f79535-47bb-0310-9956-ffa450edef68 --- .../tuscany/sca/common/xml/dom/ParserPool.java | 99 ---------------------- 1 file changed, 99 deletions(-) delete mode 100644 sca-java-2.x/tags/2.0-Beta3-RC2/modules/common-xml/src/main/java/org/apache/tuscany/sca/common/xml/dom/ParserPool.java (limited to 'sca-java-2.x/tags/2.0-Beta3-RC2/modules/common-xml/src/main/java/org/apache/tuscany/sca/common/xml/dom/ParserPool.java') diff --git a/sca-java-2.x/tags/2.0-Beta3-RC2/modules/common-xml/src/main/java/org/apache/tuscany/sca/common/xml/dom/ParserPool.java b/sca-java-2.x/tags/2.0-Beta3-RC2/modules/common-xml/src/main/java/org/apache/tuscany/sca/common/xml/dom/ParserPool.java deleted file mode 100644 index 6c987b39d4..0000000000 --- a/sca-java-2.x/tags/2.0-Beta3-RC2/modules/common-xml/src/main/java/org/apache/tuscany/sca/common/xml/dom/ParserPool.java +++ /dev/null @@ -1,99 +0,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. - */ - -package org.apache.tuscany.sca.common.xml.dom; - -import java.util.IdentityHashMap; -import java.util.Map; - -public abstract class ParserPool { - private int maxSize; - private Map objects; - - public ParserPool() { - this(32, 0); - } - - public ParserPool(int maxSize, int initialSize) { - super(); - this.maxSize = maxSize; - this.objects = new IdentityHashMap(maxSize); - for (int i = 0; i < Math.min(initialSize, maxSize); i++) { - objects.put(newInstance(), Boolean.FALSE); - } - } - - public synchronized V borrowFromPool() { - while (true) { - for (Map.Entry e : objects.entrySet()) { - if (Boolean.FALSE.equals(e.getValue())) { - e.setValue(Boolean.TRUE); // in use - return e.getKey(); - } - } - if (objects.size() < maxSize) { - V obj = newInstance(); - objects.put(obj, Boolean.TRUE); - return obj; - } - try { - wait(); - } catch (InterruptedException e1) { - throw new IllegalStateException(e1); - } - } - } - - public synchronized void returnToPool(V obj) { - resetInstance(obj); - objects.put(obj, Boolean.FALSE); - notifyAll(); - } - - public synchronized void clear() { - objects.clear(); - } - - public synchronized int inUse() { - int size = 0; - for (Map.Entry e : objects.entrySet()) { - if (Boolean.TRUE.equals(e.getValue())) { - size++; - } - } - return size; - } - - /** - * Create a new instance - * @return - */ - protected abstract V newInstance(); - - /** - * Reset the instance before returning to the pool - * @param obj - */ - protected abstract void resetInstance(V obj); - - // Expose it for testing purpose - public Map getObjects() { - return objects; - } -} -- cgit v1.2.3