You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-dev@portals.apache.org by ta...@apache.org on 2005/10/14 06:14:25 UTC
svn commit: r320995 - in /portals/jetspeed-2/trunk/components/profiler/src:
java/org/apache/jetspeed/profiler/impl/
java/org/apache/jetspeed/profiler/rules/impl/
test/org/apache/jetspeed/profiler/
Author: taylor
Date: Thu Oct 13 21:14:21 2005
New Revision: 320995
URL: http://svn.apache.org/viewcvs?rev=320995&view=rev
Log:
http://issues.apache.org/jira/browse/JS2-379
move initialization of criterion resolvers into a spring component (ProfileResolversImpl)
Added:
portals/jetspeed-2/trunk/components/profiler/src/java/org/apache/jetspeed/profiler/rules/impl/ProfileResolversImpl.java
Modified:
portals/jetspeed-2/trunk/components/profiler/src/java/org/apache/jetspeed/profiler/impl/JetspeedProfilerImpl.java
portals/jetspeed-2/trunk/components/profiler/src/java/org/apache/jetspeed/profiler/rules/impl/AbstractProfilingRule.java
portals/jetspeed-2/trunk/components/profiler/src/java/org/apache/jetspeed/profiler/rules/impl/RoleFallbackProfilingRule.java
portals/jetspeed-2/trunk/components/profiler/src/java/org/apache/jetspeed/profiler/rules/impl/StandardProfilingRule.java
portals/jetspeed-2/trunk/components/profiler/src/test/org/apache/jetspeed/profiler/TestProfiler.java
Modified: portals/jetspeed-2/trunk/components/profiler/src/java/org/apache/jetspeed/profiler/impl/JetspeedProfilerImpl.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/components/profiler/src/java/org/apache/jetspeed/profiler/impl/JetspeedProfilerImpl.java?rev=320995&r1=320994&r2=320995&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/components/profiler/src/java/org/apache/jetspeed/profiler/impl/JetspeedProfilerImpl.java (original)
+++ portals/jetspeed-2/trunk/components/profiler/src/java/org/apache/jetspeed/profiler/impl/JetspeedProfilerImpl.java Thu Oct 13 21:14:21 2005
@@ -31,6 +31,7 @@
import org.apache.jetspeed.profiler.Profiler;
import org.apache.jetspeed.profiler.ProfilerException;
import org.apache.jetspeed.profiler.rules.PrincipalRule;
+import org.apache.jetspeed.profiler.rules.ProfileResolvers;
import org.apache.jetspeed.profiler.rules.ProfilingRule;
import org.apache.jetspeed.profiler.rules.impl.AbstractProfilingRule;
import org.apache.jetspeed.profiler.rules.impl.PrincipalRuleImpl;
@@ -76,9 +77,12 @@
private Map rulesPerPrincipal = new HashMap();
- public JetspeedProfilerImpl(String repositoryPath)
+ private ProfileResolvers resolvers;
+
+ public JetspeedProfilerImpl(String repositoryPath, ProfileResolvers resolvers)
{
super(repositoryPath);
+ this.resolvers = resolvers;
}
/**
@@ -93,17 +97,17 @@
* if any the implementation classes defined within the <code>properties</code> argument could not be
* found.
*/
- public JetspeedProfilerImpl(String repositoryPath, String defaultRule) throws ClassNotFoundException
+ public JetspeedProfilerImpl(String repositoryPath, String defaultRule, ProfileResolvers resolvers)
+ throws ClassNotFoundException
{
- this(repositoryPath);
+ this(repositoryPath, resolvers);
this.defaultRule = defaultRule;
- // start()
}
- public JetspeedProfilerImpl(String repositoryPath, String defaultRule, Properties properties)
+ public JetspeedProfilerImpl(String repositoryPath, String defaultRule, Properties properties, ProfileResolvers resolvers)
throws ClassNotFoundException
{
- this(repositoryPath, defaultRule);
+ this(repositoryPath, defaultRule, resolvers);
initModelClasses(properties); // TODO: move this to
// start()
}
@@ -279,6 +283,7 @@
pr.setLocatorName(locatorName);
pr.setProfilingRule(rule);
}
+ rule.setResolvers(resolvers);
pr.setProfilingRule(rule);
getPersistenceBrokerTemplate().store(pr);
principalRules.put(makePrincipalRuleKey(principal.getName(), locatorName), pr);
@@ -310,8 +315,10 @@
pr = (PrincipalRule) getPersistenceBrokerTemplate().getObjectByQuery(
QueryFactory.newQuery(principalRuleClass, c));
-
+
principalRules.put(makePrincipalRuleKey(principal, locatorName), pr);
+ if (pr != null)
+ pr.getProfilingRule().setResolvers(resolvers);
return pr;
}
@@ -332,8 +339,15 @@
*/
public Collection getRules()
{
- return getPersistenceBrokerTemplate().getCollectionByQuery(
+ Collection rules = getPersistenceBrokerTemplate().getCollectionByQuery(
QueryFactory.newQuery(profilingRuleClass, new Criteria()));
+ Iterator r = rules.iterator();
+ while (r.hasNext())
+ {
+ ProfilingRule rule = (ProfilingRule)r.next();
+ rule.setResolvers(resolvers);
+ }
+ return rules;
}
/*
@@ -343,12 +357,16 @@
*/
public ProfilingRule getRule(String id)
{
- // TODO: implement caching
Criteria c = new Criteria();
c.addEqualTo("id", id);
- return (ProfilingRule) getPersistenceBrokerTemplate().getObjectByQuery(
+ ProfilingRule rule = (ProfilingRule)getPersistenceBrokerTemplate().getObjectByQuery(
QueryFactory.newQuery(profilingRuleClass, c));
+ if (rule != null)
+ {
+ rule.setResolvers(resolvers);
+ }
+ return rule;
}
/*
@@ -375,6 +393,7 @@
{
PrincipalRule pr = (PrincipalRule) it.next();
names[ix] = pr.getLocatorName();
+ pr.getProfilingRule().setResolvers(resolvers);
ix++;
}
return names;
@@ -393,6 +412,14 @@
Criteria c = new Criteria();
c.addEqualTo("principalName", principal.getName());
rules = getPersistenceBrokerTemplate().getCollectionByQuery(QueryFactory.newQuery(principalRuleClass, c));
+ Iterator r = rules.iterator();
+ while (r.hasNext())
+ {
+ PrincipalRule pr = (PrincipalRule)r.next();
+ ProfilingRule rule = pr.getProfilingRule();
+ if (rule != null)
+ rule.setResolvers(resolvers);
+ }
this.rulesPerPrincipal.put(principal.getName(), rules);
return rules;
}
Modified: portals/jetspeed-2/trunk/components/profiler/src/java/org/apache/jetspeed/profiler/rules/impl/AbstractProfilingRule.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/components/profiler/src/java/org/apache/jetspeed/profiler/rules/impl/AbstractProfilingRule.java?rev=320995&r1=320994&r2=320995&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/components/profiler/src/java/org/apache/jetspeed/profiler/rules/impl/AbstractProfilingRule.java (original)
+++ portals/jetspeed-2/trunk/components/profiler/src/java/org/apache/jetspeed/profiler/rules/impl/AbstractProfilingRule.java Thu Oct 13 21:14:21 2005
@@ -22,6 +22,7 @@
import org.apache.jetspeed.profiler.ProfileLocator;
import org.apache.jetspeed.profiler.Profiler;
+import org.apache.jetspeed.profiler.rules.ProfileResolvers;
import org.apache.jetspeed.profiler.rules.ProfilingRule;
import org.apache.jetspeed.profiler.rules.RuleCriterionResolver;
import org.apache.jetspeed.request.RequestContext;
@@ -34,36 +35,28 @@
*/
public abstract class AbstractProfilingRule implements ProfilingRule
{
+ private static final long serialVersionUID = 1;
protected Collection criteria = new Vector();
protected String id;
protected String title;
protected String ojbConcreteClass;
/** Map of profile locators kept around for reuse TODO: evict entries after max size reached */
- static Map locators = new HashMap();
+ protected Map locators = new HashMap();
/** Map of resolver rules for criteria. The map goes from criterion name to resolver class */
- static Map resolvers = new HashMap();
+ protected ProfileResolvers resolvers;
+
+ public AbstractProfilingRule()
+ {
+ }
- static
+ public AbstractProfilingRule(ProfileResolvers resolvers)
{
- resolvers.put(RuleCriterionResolver.REQUEST, new StandardResolver());
- resolvers.put(RuleCriterionResolver.REQUEST_SESSION, new RequestSessionResolver());
- resolvers.put(RuleCriterionResolver.PATH, new PathResolver());
- resolvers.put(RuleCriterionResolver.PATH_SESSION, new PathSessionResolver());
- resolvers.put(RuleCriterionResolver.HARD_CODED, new HardCodedResolver());
- resolvers.put(RuleCriterionResolver.USER, new UserCriterionResolver());
- resolvers.put(RuleCriterionResolver.ROLE, new RoleCriterionResolver());
- resolvers.put(RuleCriterionResolver.GROUP, new GroupCriterionResolver());
- resolvers.put(RuleCriterionResolver.MEDIATYPE, new MediatypeCriterionResolver());
- resolvers.put(RuleCriterionResolver.LANGUAGE, new LanguageCriterionResolver());
- resolvers.put(RuleCriterionResolver.COUNTRY, new CountryCriterionResolver());
- resolvers.put(RuleCriterionResolver.GROUP_ROLE_USER, new GroupRoleUserCriterionResolver());
- resolvers.put(RuleCriterionResolver.USER_ATTRIBUTE, new UserAttributeResolver());
- resolvers.put(RuleCriterionResolver.NAVIGATION, new NavigationCriterionResolver());
- resolvers.put(RuleCriterionResolver.USER_AGENT, new UserAgentCriterionResolver());
+ this.resolvers = resolvers;
}
+
protected ProfileLocator getLocatorFromCache(String key)
{
return (ProfileLocator)locators.get(key);
@@ -162,4 +155,18 @@
return this.getClass().toString();
}
+ /**
+ * @return Returns the resolvers.
+ */
+ public ProfileResolvers getResolvers()
+ {
+ return resolvers;
+ }
+ /**
+ * @param resolvers The resolvers to set.
+ */
+ public void setResolvers(ProfileResolvers resolvers)
+ {
+ this.resolvers = resolvers;
+ }
}
Added: portals/jetspeed-2/trunk/components/profiler/src/java/org/apache/jetspeed/profiler/rules/impl/ProfileResolversImpl.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/components/profiler/src/java/org/apache/jetspeed/profiler/rules/impl/ProfileResolversImpl.java?rev=320995&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/components/profiler/src/java/org/apache/jetspeed/profiler/rules/impl/ProfileResolversImpl.java (added)
+++ portals/jetspeed-2/trunk/components/profiler/src/java/org/apache/jetspeed/profiler/rules/impl/ProfileResolversImpl.java Thu Oct 13 21:14:21 2005
@@ -0,0 +1,42 @@
+/*
+ * Copyright 2000-2004 The Apache Software Foundation.
+ *
+ * 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.
+ */
+package org.apache.jetspeed.profiler.rules.impl;
+
+import java.util.Map;
+
+import org.apache.jetspeed.profiler.rules.ProfileResolvers;
+import org.apache.jetspeed.profiler.rules.RuleCriterionResolver;
+
+/**
+ * Profile Resolvers
+ *
+ * @author <a href="mailto:taylor@apache.org">David Sean Taylor</a>
+ * @version $Id: $
+ */
+public class ProfileResolversImpl implements ProfileResolvers
+{
+ private Map resolvers;
+
+ public ProfileResolversImpl(Map resolvers)
+ {
+ this.resolvers = resolvers;
+ }
+
+ public RuleCriterionResolver get(String resolverName)
+ {
+ return (RuleCriterionResolver)resolvers.get(resolverName);
+ }
+}
Modified: portals/jetspeed-2/trunk/components/profiler/src/java/org/apache/jetspeed/profiler/rules/impl/RoleFallbackProfilingRule.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/components/profiler/src/java/org/apache/jetspeed/profiler/rules/impl/RoleFallbackProfilingRule.java?rev=320995&r1=320994&r2=320995&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/components/profiler/src/java/org/apache/jetspeed/profiler/rules/impl/RoleFallbackProfilingRule.java (original)
+++ portals/jetspeed-2/trunk/components/profiler/src/java/org/apache/jetspeed/profiler/rules/impl/RoleFallbackProfilingRule.java Thu Oct 13 21:14:21 2005
@@ -22,6 +22,7 @@
import org.apache.commons.logging.LogFactory;
import org.apache.jetspeed.profiler.ProfileLocator;
import org.apache.jetspeed.profiler.Profiler;
+import org.apache.jetspeed.profiler.rules.ProfileResolvers;
import org.apache.jetspeed.profiler.rules.ProfilingRule;
import org.apache.jetspeed.profiler.rules.RuleCriterion;
import org.apache.jetspeed.profiler.rules.RuleCriterionResolver;
@@ -38,6 +39,17 @@
implements ProfilingRule
{
protected final static Log log = LogFactory.getLog(RoleFallbackProfilingRule.class);
+ private final static long serialVersionUID = 1L;
+
+ public RoleFallbackProfilingRule()
+ {
+ }
+
+ public RoleFallbackProfilingRule(ProfileResolvers resolvers)
+ {
+ super(resolvers);
+ }
+
/* (non-Javadoc)
* @see org.apache.jetspeed.profiler.rules.ProfilingRule#apply(org.apache.jetspeed.request.RequestContext, org.apache.jetspeed.profiler.Profiler)
Modified: portals/jetspeed-2/trunk/components/profiler/src/java/org/apache/jetspeed/profiler/rules/impl/StandardProfilingRule.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/components/profiler/src/java/org/apache/jetspeed/profiler/rules/impl/StandardProfilingRule.java?rev=320995&r1=320994&r2=320995&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/components/profiler/src/java/org/apache/jetspeed/profiler/rules/impl/StandardProfilingRule.java (original)
+++ portals/jetspeed-2/trunk/components/profiler/src/java/org/apache/jetspeed/profiler/rules/impl/StandardProfilingRule.java Thu Oct 13 21:14:21 2005
@@ -21,6 +21,7 @@
import org.apache.commons.logging.LogFactory;
import org.apache.jetspeed.profiler.ProfileLocator;
import org.apache.jetspeed.profiler.Profiler;
+import org.apache.jetspeed.profiler.rules.ProfileResolvers;
import org.apache.jetspeed.profiler.rules.ProfilingRule;
import org.apache.jetspeed.profiler.rules.RuleCriterion;
import org.apache.jetspeed.profiler.rules.RuleCriterionResolver;
@@ -37,9 +38,18 @@
extends AbstractProfilingRule
implements ProfilingRule
{
- protected final static Log log = LogFactory.getLog(StandardProfilingRule.class);
-
+ protected final static Log log = LogFactory.getLog(StandardProfilingRule.class);
+ private static final long serialVersionUID = 1;
+ public StandardProfilingRule()
+ {
+ }
+
+ public StandardProfilingRule(ProfileResolvers resolvers)
+ {
+ super(resolvers);
+ }
+
/* (non-Javadoc)
* @see org.apache.jetspeed.profiler.rules.ProfilingRule#apply(org.apache.jetspeed.request.RequestContext, org.apache.jetspeed.profiler.Profiler)
*/
Modified: portals/jetspeed-2/trunk/components/profiler/src/test/org/apache/jetspeed/profiler/TestProfiler.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/components/profiler/src/test/org/apache/jetspeed/profiler/TestProfiler.java?rev=320995&r1=320994&r2=320995&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/components/profiler/src/test/org/apache/jetspeed/profiler/TestProfiler.java (original)
+++ portals/jetspeed-2/trunk/components/profiler/src/test/org/apache/jetspeed/profiler/TestProfiler.java Thu Oct 13 21:14:21 2005
@@ -27,6 +27,7 @@
import org.apache.jetspeed.components.test.AbstractSpringTestCase;
import org.apache.jetspeed.mockobjects.request.MockRequestContext;
import org.apache.jetspeed.profiler.impl.JetspeedProfilerImpl;
+import org.apache.jetspeed.profiler.rules.ProfileResolvers;
import org.apache.jetspeed.profiler.rules.ProfilingRule;
import org.apache.jetspeed.profiler.rules.RuleCriterion;
import org.apache.jetspeed.profiler.rules.impl.RoleFallbackProfilingRule;
@@ -44,7 +45,8 @@
public class TestProfiler extends AbstractSpringTestCase
{
private Profiler profiler = null;
-
+ private ProfileResolvers resolvers = null;
+
protected static final Properties TEST_PROPS = new Properties();
static
@@ -83,6 +85,9 @@
super.setUp();
this.profiler = (Profiler) ctx.getBean("profiler");
JetspeedProfilerImpl profilerImpl = (JetspeedProfilerImpl) ctx.getBean("profilerImpl");
+ assertNotNull("profiler not found ", profiler);
+ ProfileResolvers resolvers = (ProfileResolvers) ctx.getBean("ProfileResolvers");
+ assertNotNull("resolvers not found ", resolvers);
profilerImpl.setDefaultRule(JetspeedProfilerImpl.DEFAULT_RULE);
}
@@ -373,7 +378,7 @@
{
System.out.println("Maintenance tests commencing....");
assertNotNull("profiler service is null", profiler);
- ProfilingRule rule = new StandardProfilingRule();
+ ProfilingRule rule = new StandardProfilingRule(resolvers);
rule.setClassname("org.apache.jetspeed.profiler.rules.impl.StandardProfilingRule");
rule.setId("testmo");
rule.setTitle("The Grand Title");
---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org