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 we...@apache.org on 2004/05/11 20:35:56 UTC

cvs commit: jakarta-jetspeed-2/components/profiler/src/java/org/apache/jetspeed/profiler/impl JetspeedProfiler.java

weaver      2004/05/11 11:35:56

  Modified:    components/profiler/src/java/org/apache/jetspeed/profiler/impl
                        Tag: NANOCONTAINER_DEPLOYER JetspeedProfiler.java
  Log:
  added constructor delegation
  
  Revision  Changes    Path
  No                   revision
  No                   revision
  1.1.2.2   +381 -373  jakarta-jetspeed-2/components/profiler/src/java/org/apache/jetspeed/profiler/impl/Attic/JetspeedProfiler.java
  
  Index: JetspeedProfiler.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jetspeed-2/components/profiler/src/java/org/apache/jetspeed/profiler/impl/Attic/JetspeedProfiler.java,v
  retrieving revision 1.1.2.1
  retrieving revision 1.1.2.2
  diff -u -r1.1.2.1 -r1.1.2.2
  --- JetspeedProfiler.java	20 Apr 2004 03:08:47 -0000	1.1.2.1
  +++ JetspeedProfiler.java	11 May 2004 18:35:56 -0000	1.1.2.2
  @@ -1,373 +1,381 @@
  -/*
  - * Copyright 2000-2001,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.impl;
  -
  -import org.apache.jetspeed.profiler.Profiler;
  -import org.picocontainer.Startable;
  -
  -import java.security.Principal;
  -import java.util.Collection;
  -import java.util.Iterator;
  -import java.util.Properties;
  -
  -import javax.security.auth.Subject;
  -
  -import org.apache.commons.logging.Log;
  -import org.apache.commons.logging.LogFactory;
  -import org.apache.jetspeed.components.persistence.store.Filter;
  -import org.apache.jetspeed.components.persistence.store.PersistenceStore;
  -import org.apache.jetspeed.components.persistence.store.PersistenceStoreContainer;
  -import org.apache.jetspeed.components.persistence.store.Transaction;
  -
  -import org.apache.jetspeed.om.desktop.Desktop;
  -import org.apache.jetspeed.om.page.Fragment;
  -import org.apache.jetspeed.om.page.Page;
  -
  -import org.apache.jetspeed.profiler.ProfileLocator;
  -import org.apache.jetspeed.profiler.ProfilerException;
  -import org.apache.jetspeed.profiler.rules.PrincipalRule;
  -import org.apache.jetspeed.profiler.rules.ProfilingRule;
  -import org.apache.jetspeed.profiler.rules.impl.AbstractProfilingRule;
  -import org.apache.jetspeed.profiler.rules.impl.PrincipalRuleImpl;
  -import org.apache.jetspeed.request.RequestContext;
  -import org.apache.jetspeed.security.SecurityHelper;
  -import org.apache.jetspeed.security.UserPrincipal;
  -import org.apache.jetspeed.page.PageManager;
  -
  -
  -/**
  - * JetspeedProfilerService
  - *
  - * @author <a href="mailto:taylor@apache.org">David Sean Taylor</a>
  - * @version $Id$
  - */
  -public class JetspeedProfiler implements Profiler, Startable 
  -{
  -    /** Commons logging */
  -    protected final static Log log = LogFactory.getLog(JetspeedProfiler.class);
  -
  -    private PersistenceStoreContainer pContainer;
  -    private String storeName = "jetspeed";
  -    
  -    PageManager pageManager; 
  -        
  -    /** The default locator class implementation */
  -    private Class locatorClass = JetspeedProfileLocator.class;
  -    /** The default principalRule association class implementation */
  -    private Class principalRuleClass = PrincipalRuleImpl.class;
  -    /** The base (abstract) profilingRule class implementation */
  -    private Class profilingRuleClass = AbstractProfilingRule.class; 
  -        
  -    /** The configured default rule for this portal */
  -    private String defaultRule = "j1";
  -
  -    private String anonymousUser = "anon";
  -    
  -    public JetspeedProfiler(PersistenceStoreContainer pContainer, PageManager pageManager, String storeName)
  -	{
  -        this.pContainer = pContainer;
  -        this.pageManager = pageManager;
  -        this.storeName = storeName;
  -    }
  -    
  -    /**
  -     * Create a JetspeedProfiler with properties. Expected properties are:
  -     * 
  -     * 	   defaultRule   = the default profiling rule
  -     *     anonymousUser = the name of the anonymous user
  -     *     storeName = The name of the persistence store component to connect to  
  -     *     services.profiler.locator.impl = the pluggable Profile Locator impl
  -     *     services.profiler.principalRule.impl = the pluggable Principal Rule impl
  -     *     services.profiler.profilingRule.impl = the pluggable Profiling Rule impl
  -     *      
  -     * @param pContainer  The persistence store container
  -     * @param properties  Properties for this component described above
  -     */
  -    public JetspeedProfiler(PersistenceStoreContainer pContainer, PageManager pageManager, Properties properties)
  -	{
  -        this.pContainer = pContainer;
  -        this.pageManager = pageManager;        
  -        this.storeName = properties.getProperty("storeName", "jetspeed");        
  -        this.defaultRule = properties.getProperty("defaultRule", "j1");
  -        this.anonymousUser = properties.getProperty("anonymousUser", "anon");
  -        initModelClasses(properties); // TODO: move this to start()
  -    }
  -
  -    public JetspeedProfiler(PersistenceStoreContainer pContainer, PageManager pageManager)
  -	{
  -        this.pageManager = pageManager;        
  -        this.pContainer = pContainer;
  -	}
  -    
  -    private void initModelClasses(Properties properties)
  -	{
  -        String modelName = "";
  -        try
  -        {
  -	        if ((modelName = properties.getProperty("locator.impl")) != null)
  -	        {
  -	            locatorClass = Class.forName(modelName);
  -	        }
  -	        if ((modelName = properties.getProperty("principalRule.impl")) != null)
  -	        {
  -	            principalRuleClass = Class.forName(modelName);
  -	        }
  -	        if ((modelName = properties.getProperty("profilingRule.impl")) != null)
  -	        {
  -	            profilingRuleClass = Class.forName(modelName);
  -	        }	        	        
  -        }
  -        catch (ClassNotFoundException e)
  -        {
  -            log.error("Model class not found: " + modelName);
  -        }
  -    }
  -    
  -    public void start()
  -	{                
  -	}
  -    
  -    public void stop()
  -	{
  -	}
  -    
  -    /* (non-Javadoc)
  -     * @see org.apache.jetspeed.profiler.ProfilerService#getProfile(org.apache.jetspeed.request.RequestContext)
  -     */
  -    public ProfileLocator getProfile(RequestContext context)
  -        throws ProfilerException
  -    {
  -        // get the principal representing the currently logged on user 
  -        Subject subject = context.getSubject();
  -        if (subject == null)
  -        {
  -            String msg = "Invalid (null) Subject in request pipeline";
  -            log.error(msg);
  -            throw new ProfilerException(msg);
  -        }
  -        // get the UserPrincipal, finding the first UserPrincipal, or
  -        // find the first principal if no UserPrincipal isn't available
  -        Principal principal = SecurityHelper.getBestPrincipal(subject, UserPrincipal.class);      
  -        if (principal == null)
  -        {
  -            String msg = "Could not find a principle for subject in request pipeline";
  -            log.error(msg);
  -            throw new ProfilerException(msg);            
  -        }
  -        
  -        // find a profiling rule for this principal
  -        ProfilingRule rule = getRuleForPrincipal(principal);
  -        if (null == rule)
  -        {
  -            log.warn("Could not find profiling rule for principal: " + principal);
  -            rule = this.getDefaultRule();
  -        }
  -    
  -        if (null == rule)
  -        {
  -            String msg = "Couldn't find any profiling rules including default rule for principal " + 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.ProfilerService#getProfile(org.apache.jetspeed.request.RequestContext, org.apache.jetspeed.profiler.rules.ProfilingRule)
  -     */
  -    public ProfileLocator getProfile(RequestContext context, ProfilingRule rule)
  -    {        
  -        // create a profile locator for given rule
  -        return rule.apply(context, this);                
  -    }
  -    
  -    /* (non-Javadoc)
  -     * @see org.apache.jetspeed.profiler.ProfilerService#getDefaultRule()
  -     */
  -    public ProfilingRule getDefaultRule()
  -    {
  -        return lookupProfilingRule(this.defaultRule);
  -    }
  -    
  -    /* (non-Javadoc)
  -     * @see org.apache.jetspeed.profiler.ProfilerService#getRuleForPrincipal(java.security.Principal)
  -     */
  -    public ProfilingRule getRuleForPrincipal(Principal principal)
  -    {
  -        // lookup the rule for the given principal in our user/rule table
  -        PrincipalRule pr = lookupPrincipalRule(principal.getName());
  -                
  -        // if not found, fallback to the system wide rule         
  -        if (pr == null)
  -        {
  -            return getDefaultRule();
  -        }
  -                
  -        // Now get the associated rule 
  -        return pr.getProfilingRule();
  -    }
  -
  -    /**
  -     * Helper function to lookup principal rule associations by principal
  -     * 
  -     * @param principal The string representation of the principal name.
  -     * @return The found PrincipalRule associated with the principal key or null if not found.
  -     */
  -    private PrincipalRule lookupPrincipalRule(String principal)
  -    {
  -        // TODO: implement caching      
  -        PersistenceStore store = getPersistenceStore();
  -        Filter filter = store.newFilter();        
  -        filter.addEqualTo("principalName", principal);
  -        Object query = store.newQuery(principalRuleClass, filter);
  -        PrincipalRule pr = (PrincipalRule) store.getObjectByQuery(query);
  -        return pr;            
  -    }
  -
  -    /**
  -     * Helper function to lookup a profiling rule by rule id 
  -     * 
  -     * @param ruleid The unique identifier for a rule.
  -     * @return The found ProfilingRule associated with the rule id or null if not found.
  -     */
  -    private ProfilingRule lookupProfilingRule(String ruleid)
  -    {
  -        // TODO: implement caching
  -        PersistenceStore store = getPersistenceStore();
  -        Filter filter = store.newFilter();        
  -        Object query = store.newQuery(profilingRuleClass, filter);
  -        ProfilingRule rule = (ProfilingRule) store.getObjectByQuery(query);
  -        return rule;            
  -    }
  -    
  -    /* (non-Javadoc)
  -     * @see org.apache.jetspeed.profiler.ProfilerService#getDesktop(org.apache.jetspeed.profiler.ProfileLocator)
  -     */
  -    public Desktop getDesktop(ProfileLocator locator)
  -    {
  -        Desktop desktop = null;
  -        Iterator fallback = locator.iterator();
  -        while (fallback.hasNext())
  -        {
  -            // desktop = PageManager.getDesktop((String)locator.next());
  -            if (desktop != null)
  -            {
  -                break;
  -            }            
  -        }        
  -        return desktop;
  -    }
  -    
  -    /* (non-Javadoc)
  -     * @see org.apache.jetspeed.profiler.ProfilerService#getPage(org.apache.jetspeed.profiler.ProfileLocator)
  -     */
  -    public Page getPage(ProfileLocator locator)
  -    {
  -        // TODO: under construction, for now use the name
  -        
  -        return pageManager.getPage(locator);
  -        
  -        /*
  -        Page page = null;
  -        Iterator fallback = locator.iterator();
  -        while (fallback.hasNext())
  -        {
  -            page = PageManager.getPage((String)fallback.next());
  -            if (page != null)
  -            {
  -                break;
  -            }            
  -        }               
  -        return page;
  -        */
  -    }   
  -    
  -    /* (non-Javadoc)
  -     * @see org.apache.jetspeed.profiler.ProfilerService#getFragment(org.apache.jetspeed.profiler.ProfileLocator)
  -     */
  -    public Fragment getFragment(ProfileLocator locator)
  -    {
  -        Fragment fragment = null;
  -        Iterator fallback = locator.iterator();        
  -        while (fallback.hasNext())
  -        {
  -            // fragment = PageManager.getFragment((String)fallback.next());
  -            if (fragment != null)
  -            {
  -                break;
  -            }
  -        }
  -        return fragment;
  -    }
  -    
  -    /* (non-Javadoc)
  -     * @see org.apache.jetspeed.profiler.ProfilerService#createLocator()
  -     */
  -     public ProfileLocator createLocator()
  -     {
  -         try
  -         {
  -             return (ProfileLocator)locatorClass.newInstance();
  -         }
  -         catch (Exception e)
  -         {
  -             log.error("Failed to create locator for " + locatorClass);
  -         }
  -         return null;
  -     }
  -
  -    /* (non-Javadoc)
  -     * @see org.apache.jetspeed.profiler.ProfilerService#getRules()
  -     */
  -    public Collection getRules()
  -    {
  -        PersistenceStore store = getPersistenceStore();        
  -        return store.getExtent(profilingRuleClass);
  -    }
  -    
  -    /* (non-Javadoc)
  -     * @see org.apache.jetspeed.profiler.ProfilerService#getRule(java.lang.String)
  -     */
  -    public ProfilingRule getRule(String id)
  -    {
  -        PersistenceStore store = getPersistenceStore();
  -        Filter filter = store.newFilter();        
  -        filter.addEqualTo("id", id);
  -        Object query = store.newQuery(profilingRuleClass, filter);
  -        return (ProfilingRule) store.getObjectByQuery(query);        
  -    }
  -
  -    /* (non-Javadoc)
  -     * @see org.apache.jetspeed.profiler.ProfilerService#getAnonymousUser()
  -     */
  -    public String getAnonymousUser()
  -    {
  -         return this.anonymousUser;
  -    }
  -    
  -    protected PersistenceStore getPersistenceStore()
  -    {
  -        PersistenceStore store = pContainer.getStoreForThread(storeName);
  -        Transaction tx = store.getTransaction();
  -        if (!tx.isOpen())
  -        {
  -            tx.begin();
  -        }
  -        return store;
  -    }
  -	
  -}
  +/*
  + * Copyright 2000-2001,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.impl;
  +
  +import org.apache.jetspeed.profiler.Profiler;
  +import org.picocontainer.Startable;
  +
  +import java.security.Principal;
  +import java.util.Collection;
  +import java.util.Iterator;
  +import java.util.Properties;
  +
  +import javax.security.auth.Subject;
  +
  +import org.apache.commons.logging.Log;
  +import org.apache.commons.logging.LogFactory;
  +import org.apache.jetspeed.components.persistence.store.Filter;
  +import org.apache.jetspeed.components.persistence.store.PersistenceStore;
  +import org.apache.jetspeed.components.persistence.store.PersistenceStoreContainer;
  +import org.apache.jetspeed.components.persistence.store.Transaction;
  +
  +import org.apache.jetspeed.om.desktop.Desktop;
  +import org.apache.jetspeed.om.page.Fragment;
  +import org.apache.jetspeed.om.page.Page;
  +
  +import org.apache.jetspeed.profiler.ProfileLocator;
  +import org.apache.jetspeed.profiler.ProfilerException;
  +import org.apache.jetspeed.profiler.rules.PrincipalRule;
  +import org.apache.jetspeed.profiler.rules.ProfilingRule;
  +import org.apache.jetspeed.profiler.rules.impl.AbstractProfilingRule;
  +import org.apache.jetspeed.profiler.rules.impl.PrincipalRuleImpl;
  +import org.apache.jetspeed.request.RequestContext;
  +import org.apache.jetspeed.security.SecurityHelper;
  +import org.apache.jetspeed.security.UserPrincipal;
  +import org.apache.jetspeed.page.PageManager;
  +
  +
  +/**
  + * JetspeedProfilerService
  + *
  + * @author <a href="mailto:taylor@apache.org">David Sean Taylor</a>
  + * @version $Id$
  + */
  +public class JetspeedProfiler implements Profiler, Startable 
  +{
  +    /** Commons logging */
  +    protected final static Log log = LogFactory.getLog(JetspeedProfiler.class);
  +
  +    private PersistenceStoreContainer pContainer;
  +    private String storeName = "jetspeed";
  +    
  +    PageManager pageManager; 
  +        
  +    /** The default locator class implementation */
  +    private Class locatorClass = JetspeedProfileLocator.class;
  +    /** The default principalRule association class implementation */
  +    private Class principalRuleClass = PrincipalRuleImpl.class;
  +    /** The base (abstract) profilingRule class implementation */
  +    private Class profilingRuleClass = AbstractProfilingRule.class; 
  +        
  +    /** The configured default rule for this portal */
  +    private String defaultRule = "j1";
  +
  +    private String anonymousUser = "anon";
  +    
  +    public JetspeedProfiler(PersistenceStoreContainer pContainer, PageManager pageManager, String storeName)
  +	{
  +        this(pContainer, pageManager);
  +        this.storeName = storeName;        
  +    }
  +    
  +    /**
  +     * Create a JetspeedProfiler with properties. Expected properties are:
  +     * 
  +     * 	   defaultRule   = the default profiling rule
  +     *     anonymousUser = the name of the anonymous user
  +     *     storeName = The name of the persistence store component to connect to  
  +     *     services.profiler.locator.impl = the pluggable Profile Locator impl
  +     *     services.profiler.principalRule.impl = the pluggable Principal Rule impl
  +     *     services.profiler.profilingRule.impl = the pluggable Profiling Rule impl
  +     *      
  +     * @param pContainer  The persistence store container
  +     * @param properties  Properties for this component described above
  +     */
  +    public JetspeedProfiler(PersistenceStoreContainer pContainer, PageManager pageManager, Properties properties)
  +	{
  +        this(pContainer, pageManager, properties.getProperty("storeName", "jetspeed"));
  +        this.defaultRule = properties.getProperty("defaultRule", "j1");
  +        this.anonymousUser = properties.getProperty("anonymousUser", "anon");
  +        initModelClasses(properties); // TODO: move this to start()
  +    }
  +
  +    public JetspeedProfiler(PersistenceStoreContainer pContainer, PageManager pageManager)
  +	{
  +        
  +        if(pageManager == null)
  +        {
  +            throw new IllegalArgumentException("JetspeedProfiler requires a non-null PageManager instance.");
  +        }
  +        
  +        if(pContainer == null)
  +        {
  +            throw new IllegalArgumentException("JetspeedProfiler requires a non-null PersistenceStoreContainer instance.");
  +        }
  +        
  +        this.pageManager = pageManager;        
  +        this.pContainer = pContainer;
  +	}
  +    
  +    private void initModelClasses(Properties properties)
  +	{
  +        String modelName = "";
  +        try
  +        {
  +	        if ((modelName = properties.getProperty("locator.impl")) != null)
  +	        {
  +	            locatorClass = Class.forName(modelName);
  +	        }
  +	        if ((modelName = properties.getProperty("principalRule.impl")) != null)
  +	        {
  +	            principalRuleClass = Class.forName(modelName);
  +	        }
  +	        if ((modelName = properties.getProperty("profilingRule.impl")) != null)
  +	        {
  +	            profilingRuleClass = Class.forName(modelName);
  +	        }	        	        
  +        }
  +        catch (ClassNotFoundException e)
  +        {
  +            log.error("Model class not found: " + modelName);
  +        }
  +    }
  +    
  +    public void start()
  +	{                
  +	}
  +    
  +    public void stop()
  +	{
  +	}
  +    
  +    /* (non-Javadoc)
  +     * @see org.apache.jetspeed.profiler.ProfilerService#getProfile(org.apache.jetspeed.request.RequestContext)
  +     */
  +    public ProfileLocator getProfile(RequestContext context)
  +        throws ProfilerException
  +    {
  +        // get the principal representing the currently logged on user 
  +        Subject subject = context.getSubject();
  +        if (subject == null)
  +        {
  +            String msg = "Invalid (null) Subject in request pipeline";
  +            log.error(msg);
  +            throw new ProfilerException(msg);
  +        }
  +        // get the UserPrincipal, finding the first UserPrincipal, or
  +        // find the first principal if no UserPrincipal isn't available
  +        Principal principal = SecurityHelper.getBestPrincipal(subject, UserPrincipal.class);      
  +        if (principal == null)
  +        {
  +            String msg = "Could not find a principle for subject in request pipeline";
  +            log.error(msg);
  +            throw new ProfilerException(msg);            
  +        }
  +        
  +        // find a profiling rule for this principal
  +        ProfilingRule rule = getRuleForPrincipal(principal);
  +        if (null == rule)
  +        {
  +            log.warn("Could not find profiling rule for principal: " + principal);
  +            rule = this.getDefaultRule();
  +        }
  +    
  +        if (null == rule)
  +        {
  +            String msg = "Couldn't find any profiling rules including default rule for principal " + 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.ProfilerService#getProfile(org.apache.jetspeed.request.RequestContext, org.apache.jetspeed.profiler.rules.ProfilingRule)
  +     */
  +    public ProfileLocator getProfile(RequestContext context, ProfilingRule rule)
  +    {        
  +        // create a profile locator for given rule
  +        return rule.apply(context, this);                
  +    }
  +    
  +    /* (non-Javadoc)
  +     * @see org.apache.jetspeed.profiler.ProfilerService#getDefaultRule()
  +     */
  +    public ProfilingRule getDefaultRule()
  +    {
  +        return lookupProfilingRule(this.defaultRule);
  +    }
  +    
  +    /* (non-Javadoc)
  +     * @see org.apache.jetspeed.profiler.ProfilerService#getRuleForPrincipal(java.security.Principal)
  +     */
  +    public ProfilingRule getRuleForPrincipal(Principal principal)
  +    {
  +        // lookup the rule for the given principal in our user/rule table
  +        PrincipalRule pr = lookupPrincipalRule(principal.getName());
  +                
  +        // if not found, fallback to the system wide rule         
  +        if (pr == null)
  +        {
  +            return getDefaultRule();
  +        }
  +                
  +        // Now get the associated rule 
  +        return pr.getProfilingRule();
  +    }
  +
  +    /**
  +     * Helper function to lookup principal rule associations by principal
  +     * 
  +     * @param principal The string representation of the principal name.
  +     * @return The found PrincipalRule associated with the principal key or null if not found.
  +     */
  +    private PrincipalRule lookupPrincipalRule(String principal)
  +    {
  +        // TODO: implement caching      
  +        PersistenceStore store = getPersistenceStore();
  +        Filter filter = store.newFilter();        
  +        filter.addEqualTo("principalName", principal);
  +        Object query = store.newQuery(principalRuleClass, filter);
  +        PrincipalRule pr = (PrincipalRule) store.getObjectByQuery(query);
  +        return pr;            
  +    }
  +
  +    /**
  +     * Helper function to lookup a profiling rule by rule id 
  +     * 
  +     * @param ruleid The unique identifier for a rule.
  +     * @return The found ProfilingRule associated with the rule id or null if not found.
  +     */
  +    private ProfilingRule lookupProfilingRule(String ruleid)
  +    {
  +        // TODO: implement caching
  +        PersistenceStore store = getPersistenceStore();
  +        Filter filter = store.newFilter();        
  +        Object query = store.newQuery(profilingRuleClass, filter);
  +        ProfilingRule rule = (ProfilingRule) store.getObjectByQuery(query);
  +        return rule;            
  +    }
  +    
  +    /* (non-Javadoc)
  +     * @see org.apache.jetspeed.profiler.ProfilerService#getDesktop(org.apache.jetspeed.profiler.ProfileLocator)
  +     */
  +    public Desktop getDesktop(ProfileLocator locator)
  +    {
  +        Desktop desktop = null;
  +        Iterator fallback = locator.iterator();
  +        while (fallback.hasNext())
  +        {
  +            // desktop = PageManager.getDesktop((String)locator.next());
  +            if (desktop != null)
  +            {
  +                break;
  +            }            
  +        }        
  +        return desktop;
  +    }
  +    
  +    /* (non-Javadoc)
  +     * @see org.apache.jetspeed.profiler.ProfilerService#getPage(org.apache.jetspeed.profiler.ProfileLocator)
  +     */
  +    public Page getPage(ProfileLocator locator)
  +    {
  +        // TODO: under construction, for now use the name
  +        
  +        return pageManager.getPage(locator);
  +        
  +        /*
  +        Page page = null;
  +        Iterator fallback = locator.iterator();
  +        while (fallback.hasNext())
  +        {
  +            page = PageManager.getPage((String)fallback.next());
  +            if (page != null)
  +            {
  +                break;
  +            }            
  +        }               
  +        return page;
  +        */
  +    }   
  +    
  +    /* (non-Javadoc)
  +     * @see org.apache.jetspeed.profiler.ProfilerService#getFragment(org.apache.jetspeed.profiler.ProfileLocator)
  +     */
  +    public Fragment getFragment(ProfileLocator locator)
  +    {
  +        Fragment fragment = null;
  +        Iterator fallback = locator.iterator();        
  +        while (fallback.hasNext())
  +        {
  +            // fragment = PageManager.getFragment((String)fallback.next());
  +            if (fragment != null)
  +            {
  +                break;
  +            }
  +        }
  +        return fragment;
  +    }
  +    
  +    /* (non-Javadoc)
  +     * @see org.apache.jetspeed.profiler.ProfilerService#createLocator()
  +     */
  +     public ProfileLocator createLocator()
  +     {
  +         try
  +         {
  +             return (ProfileLocator)locatorClass.newInstance();
  +         }
  +         catch (Exception e)
  +         {
  +             log.error("Failed to create locator for " + locatorClass);
  +         }
  +         return null;
  +     }
  +
  +    /* (non-Javadoc)
  +     * @see org.apache.jetspeed.profiler.ProfilerService#getRules()
  +     */
  +    public Collection getRules()
  +    {
  +        PersistenceStore store = getPersistenceStore();        
  +        return store.getExtent(profilingRuleClass);
  +    }
  +    
  +    /* (non-Javadoc)
  +     * @see org.apache.jetspeed.profiler.ProfilerService#getRule(java.lang.String)
  +     */
  +    public ProfilingRule getRule(String id)
  +    {
  +        PersistenceStore store = getPersistenceStore();
  +        Filter filter = store.newFilter();        
  +        filter.addEqualTo("id", id);
  +        Object query = store.newQuery(profilingRuleClass, filter);
  +        return (ProfilingRule) store.getObjectByQuery(query);        
  +    }
  +
  +    /* (non-Javadoc)
  +     * @see org.apache.jetspeed.profiler.ProfilerService#getAnonymousUser()
  +     */
  +    public String getAnonymousUser()
  +    {
  +         return this.anonymousUser;
  +    }
  +    
  +    protected PersistenceStore getPersistenceStore()
  +    {
  +        PersistenceStore store = pContainer.getStoreForThread(storeName);
  +        Transaction tx = store.getTransaction();
  +        if (!tx.isOpen())
  +        {
  +            tx.begin();
  +        }
  +        return store;
  +    }
  +	
  +}
  
  
  

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