You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@abdera.apache.org by jm...@apache.org on 2006/09/19 20:50:56 UTC
svn commit: r447929 -
/incubator/abdera/java/trunk/server/src/main/java/org/apache/abdera/protocol/server/util/AbstractSingletonProviderManager.java
Author: jmsnell
Date: Tue Sep 19 11:50:56 2006
New Revision: 447929
URL: http://svn.apache.org/viewvc?view=rev&rev=447929
Log:
Helpful ProviderManager implementation that makes it easier
for an implementation to provide a single Provider instance
for all handlers
Added:
incubator/abdera/java/trunk/server/src/main/java/org/apache/abdera/protocol/server/util/AbstractSingletonProviderManager.java
Added: incubator/abdera/java/trunk/server/src/main/java/org/apache/abdera/protocol/server/util/AbstractSingletonProviderManager.java
URL: http://svn.apache.org/viewvc/incubator/abdera/java/trunk/server/src/main/java/org/apache/abdera/protocol/server/util/AbstractSingletonProviderManager.java?view=auto&rev=447929
==============================================================================
--- incubator/abdera/java/trunk/server/src/main/java/org/apache/abdera/protocol/server/util/AbstractSingletonProviderManager.java (added)
+++ incubator/abdera/java/trunk/server/src/main/java/org/apache/abdera/protocol/server/util/AbstractSingletonProviderManager.java Tue Sep 19 11:50:56 2006
@@ -0,0 +1,27 @@
+package org.apache.abdera.protocol.server.util;
+
+import org.apache.abdera.protocol.server.provider.Provider;
+import org.apache.abdera.protocol.server.provider.ProviderManager;
+
+public abstract class AbstractSingletonProviderManager
+ implements ProviderManager {
+
+ protected Provider provider;
+
+ public Provider getProvider() {
+ if (provider == null) {
+ synchronized(this) {
+ provider = initProvider();
+ }
+ }
+ return provider;
+ }
+
+ protected abstract Provider initProvider();
+
+ public void release(Provider provider) {
+ // nothing to release. subclasses could choose to do reference counting
+ // if they want
+ }
+
+}