You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by do...@apache.org on 2009/04/30 03:21:12 UTC
svn commit: r770028 - in /ofbiz/trunk: applications/securityext/src/META-INF/
applications/securityext/src/META-INF/services/
framework/security/src/META-INF/ framework/security/src/META-INF/services/
framework/security/src/org/ofbiz/security/authz/da/
Author: doogie
Date: Thu Apr 30 01:21:11 2009
New Revision: 770028
URL: http://svn.apache.org/viewvc?rev=770028&view=rev
Log:
Oops, this class got modified to use the removed AbstractHandler
before I removed AbstractResolver. Rewrote it to use ServiceRegistry
instead, which, as before, simplifies the code.
Added:
ofbiz/trunk/applications/securityext/src/META-INF/
ofbiz/trunk/applications/securityext/src/META-INF/services/
ofbiz/trunk/applications/securityext/src/META-INF/services/org.ofbiz.security.authz.da.DynamicAccessHandler
ofbiz/trunk/framework/security/src/META-INF/
ofbiz/trunk/framework/security/src/META-INF/services/
ofbiz/trunk/framework/security/src/META-INF/services/org.ofbiz.security.authz.da.DynamicAccessHandler
Modified:
ofbiz/trunk/framework/security/src/org/ofbiz/security/authz/da/DynamicAccessFactory.java
Added: ofbiz/trunk/applications/securityext/src/META-INF/services/org.ofbiz.security.authz.da.DynamicAccessHandler
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/securityext/src/META-INF/services/org.ofbiz.security.authz.da.DynamicAccessHandler?rev=770028&view=auto
==============================================================================
--- ofbiz/trunk/applications/securityext/src/META-INF/services/org.ofbiz.security.authz.da.DynamicAccessHandler (added)
+++ ofbiz/trunk/applications/securityext/src/META-INF/services/org.ofbiz.security.authz.da.DynamicAccessHandler Thu Apr 30 01:21:11 2009
@@ -0,0 +1,18 @@
+# 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.
+
+org.ofbiz.securityext.da.ServiceDaHandler
Added: ofbiz/trunk/framework/security/src/META-INF/services/org.ofbiz.security.authz.da.DynamicAccessHandler
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/security/src/META-INF/services/org.ofbiz.security.authz.da.DynamicAccessHandler?rev=770028&view=auto
==============================================================================
--- ofbiz/trunk/framework/security/src/META-INF/services/org.ofbiz.security.authz.da.DynamicAccessHandler (added)
+++ ofbiz/trunk/framework/security/src/META-INF/services/org.ofbiz.security.authz.da.DynamicAccessHandler Thu Apr 30 01:21:11 2009
@@ -0,0 +1,19 @@
+# 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.
+
+org.ofbiz.security.authz.da.GroovyDaHandler
+org.ofbiz.security.authz.da.ObjectDaHandler
Modified: ofbiz/trunk/framework/security/src/org/ofbiz/security/authz/da/DynamicAccessFactory.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/security/src/org/ofbiz/security/authz/da/DynamicAccessFactory.java?rev=770028&r1=770027&r2=770028&view=diff
==============================================================================
--- ofbiz/trunk/framework/security/src/org/ofbiz/security/authz/da/DynamicAccessFactory.java (original)
+++ ofbiz/trunk/framework/security/src/org/ofbiz/security/authz/da/DynamicAccessFactory.java Thu Apr 30 01:21:11 2009
@@ -1,13 +1,11 @@
package org.ofbiz.security.authz.da;
-import java.util.List;
import java.util.Set;
+import java.util.Iterator;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
+import javax.imageio.spi.ServiceRegistry;
-import javolution.util.FastList;
-
-import org.ofbiz.base.util.AbstractResolver;
import org.ofbiz.base.util.Debug;
import org.ofbiz.base.util.ObjectType;
import org.ofbiz.base.util.cache.UtilCache;
@@ -20,7 +18,6 @@
*/
private static UtilCache<String,DynamicAccessHandler> dynamicAccessHandlerCache = new UtilCache<String,DynamicAccessHandler>("security.DynamicAccessHandlerCache");
private static final String module = DynamicAccessFactory.class.getName();
- private static AccessHandlerResolver resolver = new AccessHandlerResolver();
public static DynamicAccessHandler getDynamicAccessHandler(GenericDelegator delegator, String accessString) {
if (dynamicAccessHandlerCache.size() == 0) { // should always be at least 1
@@ -44,8 +41,9 @@
}
private static void loadAccessHandlers(GenericDelegator delegator) {
- List<DynamicAccessHandler> handlers = resolver.getHandlers();
- for (DynamicAccessHandler handler : handlers) {
+ Iterator<DynamicAccessHandler> it = ServiceRegistry.lookupProviders(DynamicAccessHandler.class, DynamicAccessFactory.class.getClassLoader());
+ while (it.hasNext()) {
+ DynamicAccessHandler handler = it.next();
handler.setDelegator(delegator);
dynamicAccessHandlerCache.put(handler.getPattern(), handler);
}
@@ -80,54 +78,4 @@
return da;
}
-
- static class AccessHandlerResolver extends AbstractResolver {
-
- protected List<DynamicAccessHandler> handlers;
-
- protected List<DynamicAccessHandler> getHandlers() {
- handlers = FastList.newInstance();
- find("org.ofbiz");
- return handlers;
- }
-
- @SuppressWarnings("unchecked")
- @Override
- public void resolveClass(Class clazz) {
- Class theClass = clazz;
- boolean checking = true;
- boolean found = false;
-
- while (checking) {
- Class[] ifaces = theClass.getInterfaces();
- for (Class iface : ifaces) {
- if (DynamicAccessHandler.class.equals(iface)) {
- loadHandler(theClass);
- found = true;
- }
- }
-
- if (!found) {
- theClass = theClass.getSuperclass();
- if (theClass == null) {
- checking = false;
- }
- } else {
- checking = false;
- }
- }
- }
-
- private void loadHandler(Class<DynamicAccessHandler> clazz) {
- DynamicAccessHandler handler = null;
- try {
- handler = clazz.newInstance();
- handlers.add(handler);
- } catch (InstantiationException e) {
- Debug.logError(e, module);
- } catch (IllegalAccessException e) {
- Debug.logError(e, module);
- }
- }
- }
}