portals-jetspeed-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From wea...@apache.org
Subject cvs commit: jakarta-jetspeed-2/components/profiler/src/java/org/apache/jetspeed/profiler/impl JetspeedProfilerImpl.java JetspeedProfiler.java
Date Wed, 03 Nov 2004 15:59:47 GMT
weaver      2004/11/03 07:59:47

  Modified:    components/profiler/src/java/org/apache/jetspeed/profiler/impl
                        JetspeedProfilerImpl.java JetspeedProfiler.java
  Log:
  Added support for allowing default ("*") to be associated with principals that do not have
any profiler rules specifically assocaited with them.
  
  Revision  Changes    Path
  1.2       +149 -83   jakarta-jetspeed-2/components/profiler/src/java/org/apache/jetspeed/profiler/impl/JetspeedProfilerImpl.java
  
  Index: JetspeedProfilerImpl.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jetspeed-2/components/profiler/src/java/org/apache/jetspeed/profiler/impl/JetspeedProfilerImpl.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- JetspeedProfilerImpl.java	30 Oct 2004 00:15:36 -0000	1.1
  +++ JetspeedProfilerImpl.java	3 Nov 2004 15:59:47 -0000	1.2
  @@ -38,22 +38,27 @@
   import org.apache.jetspeed.request.RequestContext;
   import org.apache.jetspeed.security.SecurityHelper;
   import org.apache.jetspeed.security.UserPrincipal;
  +import org.apache.jetspeed.security.impl.UserPrincipalImpl;
   import org.apache.ojb.broker.query.Criteria;
   import org.apache.ojb.broker.query.QueryFactory;
   
  -
   /**
    * JetspeedTransactionalProfiler
    * 
  - * @author <a href="mailto:taylor@apache.org">David Sean Taylor</a>
  + * @author <a href="mailto:taylor@apache.org">David Sean Taylor </a>
    * @version $Id$
    */
  -public class JetspeedProfilerImpl extends
  -        InitablePersistenceBrokerDaoSupport implements Profiler
  +public class JetspeedProfilerImpl extends InitablePersistenceBrokerDaoSupport implements
Profiler
   {
       /** Commons logging */
       protected final static Log log = LogFactory.getLog(JetspeedProfilerImpl.class);
   
  +    /**
  +     * This is the princapl that is used if there are no principal to rule
  +     * associations for the current principal
  +     */
  +    public final static Principal DEFAULT_RULE_PRINCIPAL = new UserPrincipalImpl("*");
  +
       /** The default locator class implementation */
       private Class locatorClass = JetspeedProfileLocator.class;
       /** The default profiled page context class implementation */
  @@ -69,8 +74,8 @@
       private String anonymousUser = "guest";
   
       private Map principalRules = new HashMap();
  -    
  -    public JetspeedProfilerImpl(String repositoryPath)
  +
  +    public JetspeedProfilerImpl( String repositoryPath )
       {
           super(repositoryPath);
       }
  @@ -86,20 +91,20 @@
        * impl
        * 
        * @param properties
  -     *            Properties for this component described above
  +     *                     Properties for this component described above
        * @throws ClassNotFoundException
  -     *             if any the implementation classes defined within the
  -     *             <code>properties</code> argument could not be found.
  -     */    
  -    public JetspeedProfilerImpl(String repositoryPath, Properties properties)
  -    throws ClassNotFoundException    
  +     *                    if any the implementation classes defined within the
  +     *                    <code>properties</code> argument could not be found.
  +     */
  +    public JetspeedProfilerImpl( String repositoryPath, Properties properties ) throws
ClassNotFoundException
       {
           this(repositoryPath);
           this.defaultRule = properties.getProperty("defaultRule", "j1");
           this.anonymousUser = properties.getProperty("anonymousUser", "guest");
  -        initModelClasses(properties); // TODO: move this to start()        
  +        initModelClasses(properties); // TODO: move this to
  +        // start()
       }
  -    
  +
       private void initModelClasses( Properties properties ) throws ClassNotFoundException
       {
           String modelName = "";
  @@ -121,9 +126,8 @@
               profilingRuleClass = Class.forName(modelName);
           }
       }
  -    
  -    public ProfileLocator getProfile(RequestContext context, String locatorName) 
  -    throws ProfilerException
  +
  +    public ProfileLocator getProfile( RequestContext context, String locatorName ) throws
ProfilerException
       {
           // get the principal representing the currently logged on user
           Subject subject = context.getSubject();
  @@ -160,21 +164,45 @@
           // create a profile locator for given rule
           return rule.apply(context, this);
       }
  +    
  +    public ProfileLocator getDefaultProfile( RequestContext context, String locatorName
) throws ProfilerException
  +    {
  +       
  +        ProfilingRule rule = getRuleForPrincipal(DEFAULT_RULE_PRINCIPAL, locatorName);
  +        if (null == rule)
  +        {
  +            log.warn("Could not find profiling rule for principal: " + DEFAULT_RULE_PRINCIPAL);
  +            rule = this.getDefaultRule();
  +        }
  +
  +        if (null == rule)
  +        {
  +            String msg = "Couldn't find any profiling rules including default rule for
principal " + DEFAULT_RULE_PRINCIPAL;
  +            log.error(msg);
  +            throw new ProfilerException(msg);
  +        }
  +        // create a profile locator for given rule
  +        return rule.apply(context, this);
  +    }
   
  -    /* (non-Javadoc)
  -     * @see org.apache.jetspeed.profiler.Profiler#getProfile(org.apache.jetspeed.request.RequestContext,
org.apache.jetspeed.profiler.rules.ProfilingRule)
  +    /*
  +     * (non-Javadoc)
  +     * 
  +     * @see org.apache.jetspeed.profiler.Profiler#getProfile(org.apache.jetspeed.request.RequestContext,
  +     *          org.apache.jetspeed.profiler.rules.ProfilingRule)
        */
  -    public ProfileLocator getProfile(RequestContext context, ProfilingRule rule)
  -            throws ProfilerException
  +    public ProfileLocator getProfile( RequestContext context, ProfilingRule rule ) throws
ProfilerException
       {
           // create a profile locator for given rule
           return rule.apply(context, this);
       }
   
  -    /* (non-Javadoc)
  +    /*
  +     * (non-Javadoc)
  +     * 
        * @see org.apache.jetspeed.profiler.Profiler#createLocator(org.apache.jetspeed.request.RequestContext)
        */
  -    public ProfileLocator createLocator(RequestContext context)
  +    public ProfileLocator createLocator( RequestContext context )
       {
           try
           {
  @@ -189,10 +217,12 @@
           return null;
       }
   
  -    /* (non-Javadoc)
  +    /*
  +     * (non-Javadoc)
  +     * 
        * @see org.apache.jetspeed.profiler.Profiler#createProfiledPageContext(java.util.Map)
        */
  -    public ProfiledPageContext createProfiledPageContext(Map locators)
  +    public ProfiledPageContext createProfiledPageContext( Map locators )
       {
           try
           {
  @@ -207,11 +237,13 @@
           return null;
       }
   
  -    /* (non-Javadoc)
  -     * @see org.apache.jetspeed.profiler.Profiler#getRuleForPrincipal(java.security.Principal,
java.lang.String)
  +    /*
  +     * (non-Javadoc)
  +     * 
  +     * @see org.apache.jetspeed.profiler.Profiler#getRuleForPrincipal(java.security.Principal,
  +     *          java.lang.String)
        */
  -    public ProfilingRule getRuleForPrincipal(Principal principal,
  -            String locatorName)
  +    public ProfilingRule getRuleForPrincipal( Principal principal, String locatorName )
       {
           // lookup the rule for the given principal in our user/rule table
           PrincipalRule pr = lookupPrincipalRule(principal.getName(), locatorName);
  @@ -226,21 +258,21 @@
           return pr.getProfilingRule();
       }
   
  -    /* (non-Javadoc)
  -     * @see org.apache.jetspeed.profiler.Profiler#setRuleForPrincipal(java.security.Principal,
org.apache.jetspeed.profiler.rules.ProfilingRule, java.lang.String)
  +    /*
  +     * (non-Javadoc)
  +     * 
  +     * @see org.apache.jetspeed.profiler.Profiler#setRuleForPrincipal(java.security.Principal,
  +     *          org.apache.jetspeed.profiler.rules.ProfilingRule, java.lang.String)
        */
  -    public void setRuleForPrincipal(Principal principal, 
  -                                    ProfilingRule rule,
  -                                    String locatorName)
  +    public void setRuleForPrincipal( Principal principal, ProfilingRule rule, String locatorName
)
       {
           Criteria c = new Criteria();
           c.addEqualTo("principalName", principal);
           c.addEqualTo("locatorName", locatorName);
   
  -        PrincipalRule pr = (PrincipalRule)  
  -                getPersistenceBrokerTemplate().getObjectByQuery(
  +        PrincipalRule pr = (PrincipalRule) getPersistenceBrokerTemplate().getObjectByQuery(
                   QueryFactory.newQuery(principalRuleClass, c));
  -                
  +
           if (pr == null)
           {
               pr = new PrincipalRuleImpl(); // TODO: factory
  @@ -252,21 +284,21 @@
           getPersistenceBrokerTemplate().store(pr);
           principalRules.put(makePrincipalRuleKey(principal.getName(), locatorName), pr);
       }
  -    
  -    private String makePrincipalRuleKey(String principal, String locator)
  +
  +    private String makePrincipalRuleKey( String principal, String locator )
       {
           return principal + ":" + locator;
       }
  -    
  +
       /**
        * Helper function to lookup principal rule associations by principal
        * 
        * @param principal
  -     *            The string representation of the principal name.
  +     *                     The string representation of the principal name.
        * @return The found PrincipalRule associated with the principal key or null
  -     *         if not found.
  +     *                if not found.
        */
  -    private PrincipalRule lookupPrincipalRule(String principal, String locatorName)
  +    private PrincipalRule lookupPrincipalRule( String principal, String locatorName )
       {
           PrincipalRule pr = (PrincipalRule) principalRules.get(makePrincipalRuleKey(principal,
locatorName));
           if (pr != null)
  @@ -277,15 +309,16 @@
           c.addEqualTo("principalName", principal);
           c.addEqualTo("locatorName", locatorName);
   
  -        pr = (PrincipalRule)  
  -                getPersistenceBrokerTemplate().getObjectByQuery(
  +        pr = (PrincipalRule) getPersistenceBrokerTemplate().getObjectByQuery(
                   QueryFactory.newQuery(principalRuleClass, c));
  -        
  +
           principalRules.put(makePrincipalRuleKey(principal, locatorName), pr);
           return pr;
       }
  -    
  -    /* (non-Javadoc)
  +
  +    /*
  +     * (non-Javadoc)
  +     * 
        * @see org.apache.jetspeed.profiler.Profiler#getDefaultRule()
        */
       public ProfilingRule getDefaultRule()
  @@ -293,7 +326,9 @@
           return getRule(this.defaultRule);
       }
   
  -    /* (non-Javadoc)
  +    /*
  +     * (non-Javadoc)
  +     * 
        * @see org.apache.jetspeed.profiler.Profiler#getRules()
        */
       public Collection getRules()
  @@ -302,21 +337,24 @@
                   QueryFactory.newQuery(profilingRuleClass, new Criteria()));
       }
   
  -    /* (non-Javadoc)
  +    /*
  +     * (non-Javadoc)
  +     * 
        * @see org.apache.jetspeed.profiler.Profiler#getRule(java.lang.String)
        */
  -    public ProfilingRule getRule(String id)
  +    public ProfilingRule getRule( String id )
       {
           // TODO: implement caching
           Criteria c = new Criteria();
           c.addEqualTo("id", id);
   
  -        return (ProfilingRule)  
  -                getPersistenceBrokerTemplate().getObjectByQuery(
  +        return (ProfilingRule) getPersistenceBrokerTemplate().getObjectByQuery(
                   QueryFactory.newQuery(profilingRuleClass, c));
       }
   
  -    /* (non-Javadoc)
  +    /*
  +     * (non-Javadoc)
  +     * 
        * @see org.apache.jetspeed.profiler.Profiler#getAnonymousUser()
        */
       public String getAnonymousUser()
  @@ -324,91 +362,119 @@
           return this.anonymousUser;
       }
   
  -    /* (non-Javadoc)
  +    /*
  +     * (non-Javadoc)
  +     * 
        * @see org.apache.jetspeed.profiler.Profiler#getLocatorNamesForPrincipal(java.security.Principal)
        */
  -    public String[] getLocatorNamesForPrincipal(Principal principal)
  +    public String[] getLocatorNamesForPrincipal( Principal principal )
       {
           Criteria c = new Criteria();
           c.addEqualTo("principalName", principal.getName());
  -        
  +
           Collection result = getPersistenceBrokerTemplate().getCollectionByQuery(
  -                QueryFactory.newQuery(principalRuleClass, c));        
  +                QueryFactory.newQuery(principalRuleClass, c));
           if (result.size() == 0)
           {
               return new String[]{};
           }
  -        String [] names = new String[result.size()];
  +        String[] names = new String[result.size()];
           Iterator it = result.iterator();
           int ix = 0;
           while (it.hasNext())
           {
  -            PrincipalRule pr = (PrincipalRule)it.next();
  +            PrincipalRule pr = (PrincipalRule) it.next();
               names[ix] = pr.getLocatorName();
               ix++;
           }
           return names;
       }
   
  -    /* (non-Javadoc)
  +    /*
  +     * (non-Javadoc)
  +     * 
        * @see org.apache.jetspeed.profiler.Profiler#getRulesForPrincipal(java.security.Principal)
        */
  -    public Collection getRulesForPrincipal(Principal principal)
  +    public Collection getRulesForPrincipal( Principal principal )
       {
           Criteria c = new Criteria();
           c.addEqualTo("principalName", principal.getName());
  -        return getPersistenceBrokerTemplate().getCollectionByQuery(
  -                QueryFactory.newQuery(principalRuleClass, c));        
  +        return getPersistenceBrokerTemplate().getCollectionByQuery(QueryFactory.newQuery(principalRuleClass,
c));
       }
   
  -    /* (non-Javadoc)
  -     * @see org.apache.jetspeed.profiler.Profiler#getProfileLocators(org.apache.jetspeed.request.RequestContext,
java.security.Principal)
  +    /*
  +     * (non-Javadoc)
  +     * 
  +     * @see org.apache.jetspeed.profiler.Profiler#getProfileLocators(org.apache.jetspeed.request.RequestContext,
  +     *          java.security.Principal)
        */
  -    public Map getProfileLocators(RequestContext context, Principal principal)
  -            throws ProfilerException
  +    public Map getProfileLocators( RequestContext context, Principal principal ) throws
ProfilerException
  +    {
  +        Map locators = new HashMap();
  +        Collection rules = getRulesForPrincipal(principal);
  +    
  +        Iterator it = rules.iterator();
  +        while (it.hasNext())
  +        {
  +            PrincipalRule pr = (PrincipalRule) it.next();
  +            locators.put(pr.getLocatorName(), getProfile(context, pr.getLocatorName()));
  +        }
  +        return locators;
  +    }
  +
  +    public Map getDefaultProfileLocators( RequestContext context) throws ProfilerException
       {
           Map locators = new HashMap();
  -        Iterator it = getRulesForPrincipal(principal).iterator();
  +
  +        Collection rules = getRulesForPrincipal(DEFAULT_RULE_PRINCIPAL);
  +
  +        Iterator it = rules.iterator();
           while (it.hasNext())
           {
  -            PrincipalRule pr = (PrincipalRule)it.next();
  -            locators.put(pr.getLocatorName(), getProfile(context, pr.getLocatorName()));
  
  +            PrincipalRule pr = (PrincipalRule) it.next();
  +            locators.put(pr.getLocatorName(), getDefaultProfile(context, pr.getLocatorName()));
           }
           return locators;
       }
   
  -    /* (non-Javadoc)
  +    /*
  +     * (non-Javadoc)
  +     * 
        * @see org.apache.jetspeed.profiler.Profiler#storeProfilingRule(org.apache.jetspeed.profiler.rules.ProfilingRule)
        */
  -    public void storeProfilingRule(ProfilingRule rule) throws ProfilerException
  +    public void storeProfilingRule( ProfilingRule rule ) throws ProfilerException
       {
           getPersistenceBrokerTemplate().store(rule);
       }
   
  -    /* (non-Javadoc)
  +    /*
  +     * (non-Javadoc)
  +     * 
        * @see org.apache.jetspeed.profiler.Profiler#deleteProfilingRule(org.apache.jetspeed.profiler.rules.ProfilingRule)
        */
  -    public void deleteProfilingRule(ProfilingRule rule)
  -            throws ProfilerException
  +    public void deleteProfilingRule( ProfilingRule rule ) throws ProfilerException
       {
           getPersistenceBrokerTemplate().delete(rule);
       }
   
  -    /* (non-Javadoc)
  +    /*
  +     * (non-Javadoc)
  +     * 
        * @see org.apache.jetspeed.profiler.Profiler#storePrincipalRule(org.apache.jetspeed.profiler.rules.PrincipalRule)
        */
  -    public void storePrincipalRule(PrincipalRule rule) throws ProfilerException
  +    public void storePrincipalRule( PrincipalRule rule ) throws ProfilerException
       {
           getPersistenceBrokerTemplate().store(rule);
       }
   
  -    /* (non-Javadoc)
  +    /*
  +     * (non-Javadoc)
  +     * 
        * @see org.apache.jetspeed.profiler.Profiler#deletePrincipalRule(org.apache.jetspeed.profiler.rules.PrincipalRule)
        */
  -    public void deletePrincipalRule(PrincipalRule rule)
  -            throws ProfilerException
  +    public void deletePrincipalRule( PrincipalRule rule ) throws ProfilerException
       {
           getPersistenceBrokerTemplate().delete(rule);
       }
   
  -}
  +}
  \ No newline at end of file
  
  
  
  1.16      +12 -2     jakarta-jetspeed-2/components/profiler/src/java/org/apache/jetspeed/profiler/impl/JetspeedProfiler.java
  
  Index: JetspeedProfiler.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jetspeed-2/components/profiler/src/java/org/apache/jetspeed/profiler/impl/JetspeedProfiler.java,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- JetspeedProfiler.java	30 Oct 2004 00:15:36 -0000	1.15
  +++ JetspeedProfiler.java	3 Nov 2004 15:59:47 -0000	1.16
  @@ -49,7 +49,7 @@
    * @author <a href="mailto:taylor@apache.org">David Sean Taylor </a>
    * @version $Id$
    */
  -public class JetspeedProfiler implements Profiler
  +public class JetspeedProfiler implements Profiler 
   {
       /** Commons logging */
       protected final static Log log = LogFactory.getLog(JetspeedProfiler.class);
  @@ -466,5 +466,15 @@
           {
               throw new ProfilerException("failed to delete: " + rule.getLocatorName(), e);
           }        
  +    }
  +    public ProfileLocator getDefaultProfile( RequestContext context, String locatorName
) throws ProfilerException
  +    {
  +        // TODO Auto-generated method stub
  +        return null;
  +    }
  +    public Map getDefaultProfileLocators( RequestContext context ) throws ProfilerException
  +    {
  +        // TODO Auto-generated method stub
  +        return null;
       }
   }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org


Mime
View raw message