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 2004/08/16 20:29:17 UTC

cvs commit: jakarta-jetspeed-2/components/registry/src/java/org/apache/jetspeed/components/portletregistry PortletRegistryComponentImpl.java

taylor      2004/08/16 11:29:17

  Modified:    components/registry/src/java/META-INF ojb_repository.xml
               components/registry/src/java/org/apache/jetspeed/om/portlet/impl
                        PortletDefinitionImpl.java
                        PortletApplicationDefinitionImpl.java
               components/registry/src/java/org/apache/jetspeed/om/impl
                        LanguageImpl.java LanguageSetImpl.java
               components/registry/src/java/org/apache/jetspeed/components/portletregistry
                        PortletRegistryComponentImpl.java
  Log:
  adding support for full language support for JSR 168, contribution from Shinsuke
  
  CVS: ----------------------------------------------------------------------
  CVS: PR:
  CVS:   If this change addresses a PR in the problem report tracking
  CVS:   database, then enter the PR number(s) here.
  CVS: Obtained from:
  CVS:   If this change has been taken from another system, such as NCSA,
  CVS:   then name the system in this line, otherwise delete it.
  CVS: Submitted by:
  CVS:   If this code has been contributed to Apache by someone else; i.e.,
  CVS:   they sent us a patch or a new module, then include their name/email
  CVS:   address here. If this is your work then delete this line.
  CVS: Reviewed by:
  CVS:   If we are doing pre-commit code reviews and someone else has
  CVS:   reviewed your changes, include their name(s) here.
  CVS:   If you have not had it reviewed then delete this line.
  
  Revision  Changes    Path
  1.13      +6 -0      jakarta-jetspeed-2/components/registry/src/java/META-INF/ojb_repository.xml
  
  Index: ojb_repository.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-jetspeed-2/components/registry/src/java/META-INF/ojb_repository.xml,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- ojb_repository.xml	10 Aug 2004 15:02:51 -0000	1.12
  +++ ojb_repository.xml	16 Aug 2004 18:29:11 -0000	1.13
  @@ -341,6 +341,12 @@
         />
         
         <field-descriptor
  +         name="resourceBundle"
  +         column="RESOURCE_BUNDLE"
  +         jdbc-type="VARCHAR"
  +      />
  +      
  +      <field-descriptor
            name="preferenceValidatorClassname"
            column="PREFERENCE_VALIDATOR"
            jdbc-type="VARCHAR"
  
  
  
  1.17      +80 -2     jakarta-jetspeed-2/components/registry/src/java/org/apache/jetspeed/om/portlet/impl/PortletDefinitionImpl.java
  
  Index: PortletDefinitionImpl.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jetspeed-2/components/registry/src/java/org/apache/jetspeed/om/portlet/impl/PortletDefinitionImpl.java,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- PortletDefinitionImpl.java	14 Aug 2004 00:21:30 -0000	1.16
  +++ PortletDefinitionImpl.java	16 Aug 2004 18:29:13 -0000	1.17
  @@ -23,15 +23,20 @@
   import java.util.Iterator;
   import java.util.List;
   import java.util.Locale;
  +import java.util.StringTokenizer;
   import java.util.prefs.BackingStoreException;
   import java.util.prefs.Preferences;
   
  +import javax.portlet.Portlet;
  +
   import org.apache.commons.logging.Log;
   import org.apache.commons.logging.LogFactory;
  +import org.apache.jetspeed.factory.JetspeedPortletFactoryProxy;
   import org.apache.jetspeed.om.common.GenericMetadata;
   import org.apache.jetspeed.om.common.MutableDescription;
   import org.apache.jetspeed.om.common.MutableDisplayName;
   import org.apache.jetspeed.om.common.ParameterComposite;
  +import org.apache.jetspeed.om.common.Support;
   import org.apache.jetspeed.om.common.portlet.MutablePortletApplication;
   import org.apache.jetspeed.om.common.portlet.PortletDefinitionComposite;
   import org.apache.jetspeed.om.common.preference.PreferenceComposite;
  @@ -76,7 +81,7 @@
    * @version $Id$
    *  
    */
  -public class PortletDefinitionImpl implements PortletDefinitionComposite, Serializable
  +public class PortletDefinitionImpl implements PortletDefinitionComposite, Serializable, Support
   {
       private static final Log log = LogFactory.getLog(PortletDefinitionImpl.class);
       private long id;
  @@ -98,6 +103,8 @@
       private DisplayNameSetImpl DNListWrapper = new DisplayNameSetImpl();
       private Collection descriptions;
       private DescriptionSetImpl descListWrapper = new DescriptionSetImpl(DescriptionImpl.TYPE_PORTLET);
  +    private String resourceBundle;
  +    private ArrayList supportedLocales;
   
       private Collection contentTypes;
       private ContentTypeSetImpl ctListWrapper = new ContentTypeSetImpl();
  @@ -124,6 +131,7 @@
               //userAttributeSet = new ArrayList();
               //userAttributeRefSet = new ArrayList();
               contentTypes = new ArrayList();
  +            supportedLocales= new ArrayList();
           }
           catch (RuntimeException e)
           {
  @@ -168,6 +176,22 @@
       {
           if ( languageSet != null )
               langListWrapper.setInnerCollection(languageSet);
  +        try
  +        {
  +            Portlet portlet = JetspeedPortletFactoryProxy.loadPortletClass(getClassName());
  +            if (portlet != null)
  +            {
  +                setPortletClassLoader(portlet.getClass().getClassLoader());
  +                langListWrapper.setClassLoader(getPortletClassLoader());
  +            }
  +        }
  +        catch (InstantiationException e)
  +        {
  +        }
  +        catch (IllegalAccessException e)
  +        {
  +        }
  +
           return langListWrapper;
       }
   
  @@ -765,4 +789,58 @@
       {
           this.metadataFields = metadataFields;
       }
  +    
  +    /**
  +     * @return
  +     */
  +    public String getResourceBundle()
  +    {
  +        return resourceBundle;
  +    }
  +
  +    /**
  +     * @param string
  +     */
  +    public void setResourceBundle(String string)
  +    {
  +        resourceBundle = string;
  +    }
  +
  +    public void addSupportedLocale(String locale)
  +    {
  +        // parse locale String
  +        StringTokenizer tokenizer = new StringTokenizer(locale, "_");
  +        String[] localeDef = new String[3];
  +        for (int i = 0; i < 3; i++)
  +        {
  +            if (tokenizer.hasMoreTokens())
  +            {
  +                localeDef[i] = tokenizer.nextToken();
  +            }
  +            else
  +            {
  +                localeDef[i] = "";
  +            }
  +        }
  +        supportedLocales.add(new Locale(localeDef[0], localeDef[1], localeDef[2]));
  +    }
  +
  +    /* (non-Javadoc)
  +     * @see org.apache.jetspeed.om.Support#postLoad(java.lang.Object)
  +     */
  +    public void postLoad(Object parameter) throws Exception
  +    {
  +        if (resourceBundle != null)
  +        {
  +            langListWrapper.setResources(resourceBundle);
  +        }
  +        Portlet portlet = JetspeedPortletFactoryProxy.loadPortletClass(getClassName());
  +        if (portlet != null)
  +        {
  +            setPortletClassLoader(portlet.getClass().getClassLoader());
  +            langListWrapper.setClassLoader(getPortletClassLoader());
  +        }
  +        langListWrapper.postLoad(this.supportedLocales);
  +    }
  +
   }
  
  
  
  1.19      +17 -2     jakarta-jetspeed-2/components/registry/src/java/org/apache/jetspeed/om/portlet/impl/PortletApplicationDefinitionImpl.java
  
  Index: PortletApplicationDefinitionImpl.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jetspeed-2/components/registry/src/java/org/apache/jetspeed/om/portlet/impl/PortletApplicationDefinitionImpl.java,v
  retrieving revision 1.18
  retrieving revision 1.19
  diff -u -r1.18 -r1.19
  --- PortletApplicationDefinitionImpl.java	14 Aug 2004 00:21:30 -0000	1.18
  +++ PortletApplicationDefinitionImpl.java	16 Aug 2004 18:29:13 -0000	1.19
  @@ -19,9 +19,11 @@
   import java.io.Serializable;
   import java.util.ArrayList;
   import java.util.Collection;
  +import java.util.Iterator;
   
   import org.apache.jetspeed.om.common.GenericMetadata;
   import org.apache.jetspeed.om.common.JetspeedServiceReference;
  +import org.apache.jetspeed.om.common.Support;
   import org.apache.jetspeed.om.common.UserAttribute;
   import org.apache.jetspeed.om.common.UserAttributeRef;
   import org.apache.jetspeed.om.common.portlet.MutablePortletApplication;
  @@ -39,7 +41,7 @@
    * @version $Id$
    * @since 1.0
    */
  -public class PortletApplicationDefinitionImpl implements MutablePortletApplication, Serializable
  +public class PortletApplicationDefinitionImpl implements MutablePortletApplication, Serializable, Support
   { 
       /**
        * Unique id of the application.  This serves as the primary key in database
  @@ -371,4 +373,17 @@
           this.checksumLong = checksum;
           this.checksum = Long.toString(checksum);
       }
  +    
  +    /* (non-Javadoc)
  +     * @see org.apache.jetspeed.om.common.Support#postLoad(java.lang.Object)
  +     */
  +    public void postLoad(Object parameter) throws Exception
  +    {
  +        Iterator portletDefinitions = getPortletDefinitions().iterator();
  +        while (portletDefinitions.hasNext())
  +        {
  +            ((Support) portletDefinitions.next()).postLoad(this);
  +        }
  +    }
  +
   }
  
  
  
  1.5       +95 -6     jakarta-jetspeed-2/components/registry/src/java/org/apache/jetspeed/om/impl/LanguageImpl.java
  
  Index: LanguageImpl.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jetspeed-2/components/registry/src/java/org/apache/jetspeed/om/impl/LanguageImpl.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- LanguageImpl.java	8 Jul 2004 19:22:05 -0000	1.4
  +++ LanguageImpl.java	16 Aug 2004 18:29:14 -0000	1.5
  @@ -18,7 +18,10 @@
   import java.io.Serializable;
   import java.util.ArrayList;
   import java.util.Collection;
  +import java.util.Enumeration;
  +import java.util.HashMap;
   import java.util.Iterator;
  +import java.util.ListResourceBundle;
   import java.util.Locale;
   import java.util.ResourceBundle;
   import java.util.StringTokenizer;
  @@ -26,6 +29,7 @@
   import org.apache.jetspeed.om.common.MutableLanguage;
   import org.apache.jetspeed.util.HashCodeBuilder;
   import org.apache.pluto.om.common.Language;
  +import org.apache.pluto.util.Enumerator;
   
   /**
    * 
  @@ -47,10 +51,11 @@
   public class LanguageImpl implements MutableLanguage, Serializable
   {
   
  -    private Locale locale = new Locale("en");
  +    private Locale locale; // new Locale("en");
       private String title;
       private String shortTitle;
       private Collection keywords;
  +    private ResourceBundle resourceBundle;
   
       /**
        * This field can be used by persistence tools for storing PK info
  @@ -60,16 +65,32 @@
   
       protected long portletId;
   
  -    protected static final String RESOURCE_BUNDLE_NAME = "portlet";
  -
       public LanguageImpl()
       {
  +        this(Locale.getDefault(), null, "", "", "");
       }
   
       public LanguageImpl(Locale locale, String title)
       {
  +        this(locale, null, "", "", "");
  +    }
  +
  +    public LanguageImpl(
  +        Locale locale,
  +        ResourceBundle bundle,
  +        String defaultTitle,
  +        String defaultShortTitle,
  +        String defaultKeyWords)
  +    {
  +        this.resourceBundle =
  +            new ResourceBundleImpl(
  +                bundle,
  +                new DefaultsResourceBundle(defaultTitle, defaultShortTitle, defaultKeyWords));
  +
           this.locale = locale;
  -        this.title = title;
  +        setTitle(this.resourceBundle.getString("javax.portlet.title"));
  +        setShortTitle(this.resourceBundle.getString("javax.portlet.short-title"));
  +        setKeywords(this.resourceBundle.getString("javax.portlet.keywords"));
       }
   
       /**
  @@ -115,7 +136,8 @@
        */
       public ResourceBundle getResourceBundle()
       {
  -        return ResourceBundle.getBundle(RESOURCE_BUNDLE_NAME, getLocale(), Thread.currentThread().getContextClassLoader());
  +        
  +        return resourceBundle;
       }
   
       /**
  @@ -195,6 +217,73 @@
           while (tok.hasMoreTokens())
           {
               keywords.add(tok.nextToken());
  +        }
  +    }
  +
  +    private static class DefaultsResourceBundle extends ListResourceBundle
  +    {
  +        private Object[][] resources;
  +
  +        public DefaultsResourceBundle(String defaultTitle, String defaultShortTitle, String defaultKeyWords)
  +        {
  +            if (defaultTitle == null)
  +            {
  +                defaultTitle = "";
  +            }
  +            if (defaultShortTitle == null)
  +            {
  +                defaultShortTitle = "";
  +            }
  +            if (defaultKeyWords == null)
  +            {
  +                defaultKeyWords = "";
  +            }
  +            resources = new Object[][] { { "javax.portlet.title", defaultTitle }, {
  +                    "javax.portlet.short-title", defaultShortTitle }, {
  +                    "javax.portlet.keywords", defaultKeyWords
  +                }
  +            };
  +        }
  +
  +        protected Object[][] getContents()
  +        {
  +            return resources;
  +        }
  +    }
  +
  +    private static class ResourceBundleImpl extends ResourceBundle
  +    {
  +        private HashMap data;
  +
  +        public ResourceBundleImpl(ResourceBundle bundle, ResourceBundle defaults)
  +        {
  +            data = new HashMap();
  +
  +            importData(defaults);
  +            importData(bundle);
  +        }
  +
  +        private void importData(ResourceBundle bundle)
  +        {
  +            if (bundle != null)
  +            {
  +                for (Enumeration enum = bundle.getKeys(); enum.hasMoreElements();)
  +                {
  +                    String key = (String) enum.nextElement();
  +                    Object value = bundle.getObject(key);
  +                    data.put(key, value);
  +                }
  +            }
  +        }
  +
  +        protected Object handleGetObject(String key)
  +        {
  +            return data.get(key);
  +        }
  +
  +        public Enumeration getKeys()
  +        {
  +            return new Enumerator(data.keySet());
           }
       }
   
  
  
  
  1.4       +137 -4    jakarta-jetspeed-2/components/registry/src/java/org/apache/jetspeed/om/impl/LanguageSetImpl.java
  
  Index: LanguageSetImpl.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jetspeed-2/components/registry/src/java/org/apache/jetspeed/om/impl/LanguageSetImpl.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- LanguageSetImpl.java	8 Jul 2004 19:22:05 -0000	1.3
  +++ LanguageSetImpl.java	16 Aug 2004 18:29:14 -0000	1.4
  @@ -21,10 +21,14 @@
   import java.util.HashSet;
   import java.util.Iterator;
   import java.util.Locale;
  +import java.util.MissingResourceException;
  +import java.util.ResourceBundle;
   
   
  +import org.apache.commons.lang.StringUtils;
   import org.apache.jetspeed.util.JetspeedLocale;
   import org.apache.jetspeed.om.common.MutableLanguage;
  +import org.apache.jetspeed.om.common.Support;
   import org.apache.pluto.om.common.Language;
   import org.apache.pluto.om.common.LanguageSet;
   
  @@ -36,11 +40,12 @@
    * @version $Id$
    *
    */
  -public class LanguageSetImpl implements LanguageSet, Serializable
  +public class LanguageSetImpl implements LanguageSet, Serializable, Support
   {
   
  +    private ClassLoader classLoader = null;
       
  -
  +    private String resources;
       protected Collection innerCollection;
   
       /**
  @@ -96,8 +101,20 @@
               
               if (lang.getLocale().equals(locale))
               {
  +                if (resources != null)
  +                {
  +                    return createLanguage(
  +                        lang.getLocale(),
  +                        loadResourceBundle(lang.getLocale()),
  +                        lang.getTitle(),
  +                        lang.getShortTitle(),
  +                        StringUtils.join(lang.getKeywords(), ","));
  +                }
  +                else
  +                {
                   return lang;
               }
  +            }
               else if (lang.getLocale().getLanguage().equals(locale.getLanguage()))
               {
                   fallBack = lang;
  @@ -106,7 +123,25 @@
           }
           if (fallBack == null)
           {
  -            fallBack = new LanguageImpl(locale, "");
  +            ResourceBundle bundle = null;
  +            if (resources != null)
  +            {
  +                bundle = loadResourceBundle(locale);
  +            }
  +            fallBack = createLanguage(locale, bundle);
  +        }
  +        else
  +        {
  +            if (resources != null)
  +            {
  +                fallBack =
  +                    createLanguage(
  +                        fallBack.getLocale(),
  +                        loadResourceBundle(fallBack.getLocale()),
  +                        fallBack.getTitle(),
  +                        fallBack.getShortTitle(),
  +                        StringUtils.join(fallBack.getKeywords(), ","));
  +            }
           }
           return fallBack;
       }
  @@ -163,4 +198,102 @@
       	return innerCollection.size();
       }
   
  +    /**
  +     * @param string
  +     */
  +    public void setResources(String string)
  +    {
  +        resources = string;
  +    }
  +
  +    /* (non-Javadoc)
  +     * @see org.apache.jetspeed.om.common.Support#postLoad(java.lang.Object)
  +     */
  +    public void postLoad(Object parameter) throws Exception
  +    {
  +        Iterator iter = ((Collection) parameter).iterator();
  +        while (iter.hasNext())
  +        {
  +            Locale locale = (Locale) iter.next();
  +            Language language = createLanguage(locale, null);
  +            remove(language);
  +            add(language);
  +        }
  +    }
  +
  +    protected ResourceBundle loadResourceBundle(Locale locale)
  +    {
  +        ResourceBundle resourceBundle = null;
  +        try
  +        {
  +            if (classLoader != null)
  +            {
  +                resourceBundle=ResourceBundle.getBundle(resources, locale, classLoader);
  +            }
  +            else
  +            {
  +                resourceBundle=ResourceBundle.getBundle(resources, locale, Thread.currentThread().getContextClassLoader());
  +            }
  +        }
  +        catch (MissingResourceException x)
  +        {
  +            return null;
  +        }
  +        return resourceBundle;
  +    }
  +
  +    /**
  +     * 
  +     * Sets Portlet Class Loader
  +     * 
  +     * @param loader
  +     */
  +    public void setClassLoader(ClassLoader loader)
  +    {
  +        classLoader = loader;
  +    }
  +
  +    /**
  +     * Creates Language instance from a default Language
  +     * 
  +     * @param locale
  +     * @param bundle
  +     * @return
  +     */
  +    private Language createLanguage(Locale locale, ResourceBundle bundle)
  +    {
  +        String title = "";
  +        String shortTitle = "";
  +        String keywords = "";
  +        Language defaultLang = get(getDefaultLocale());
  +
  +        if (defaultLang != null)
  +        {
  +            title = defaultLang.getTitle();
  +            shortTitle = defaultLang.getShortTitle();
  +            keywords = StringUtils.join(defaultLang.getKeywords(), ",");
  +        }
  +        return createLanguage(locale, bundle, title, shortTitle, keywords);
  +    }
  +    
  +    /**
  +     * Creates Language instance.
  +     * 
  +     * @param locale
  +     * @param bundle
  +     * @param title
  +     * @param shortTitle
  +     * @param keywords
  +     * @return
  +     */
  +    private Language createLanguage(
  +        Locale locale,
  +        ResourceBundle bundle,
  +        String title,
  +        String shortTitle,
  +        String keywords)
  +    {
  +        LanguageImpl lang = new LanguageImpl(locale, bundle, title, shortTitle, keywords);
  +        return (Language) lang;
  +    }
   }
  
  
  
  1.15      +52 -7     jakarta-jetspeed-2/components/registry/src/java/org/apache/jetspeed/components/portletregistry/PortletRegistryComponentImpl.java
  
  Index: PortletRegistryComponentImpl.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jetspeed-2/components/registry/src/java/org/apache/jetspeed/components/portletregistry/PortletRegistryComponentImpl.java,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- PortletRegistryComponentImpl.java	2 Jul 2004 13:31:56 -0000	1.14
  +++ PortletRegistryComponentImpl.java	16 Aug 2004 18:29:17 -0000	1.15
  @@ -29,6 +29,7 @@
   import org.apache.jetspeed.components.persistence.store.LockFailedException;
   import org.apache.jetspeed.components.persistence.store.PersistenceStore;
   import org.apache.jetspeed.om.common.MutableLanguage;
  +import org.apache.jetspeed.om.common.Support;
   import org.apache.jetspeed.om.common.portlet.MutablePortletApplication;
   import org.apache.jetspeed.om.common.portlet.PortletDefinitionComposite;
   import org.apache.jetspeed.om.impl.LanguageImpl;
  @@ -150,7 +151,19 @@
       {
           PersistenceStore store = getPersistenceStore();
           prepareTransaction(store);
  -        return new ArrayList(store.getExtent(portletDefClass));
  +        Collection pds = store.getExtent(portletDefClass);
  +        Iterator itrPds = pds.iterator();
  +        while (itrPds.hasNext())
  +        {
  +            try
  +            {
  +                ((Support) itrPds.next()).postLoad(this);
  +            }
  +            catch (Exception e)
  +            {
  +            }
  +        }
  +        return new ArrayList(pds);
       }
   
       public PersistenceStore getPersistenceStore()
  @@ -174,7 +187,7 @@
           Filter filter = store.newFilter();
           filter.addEqualTo("id", new Long(id.toString()));
           Object query = store.newQuery(portletAppClass, filter);
  -        return (MutablePortletApplication) store.getObjectByQuery(query);
  +        return (MutablePortletApplication) postLoad(store.getObjectByQuery(query));
       }
   
       private void prepareTransaction(PersistenceStore store)
  @@ -201,7 +214,7 @@
           Filter filter = store.newFilter();
           filter.addEqualTo("name", name);
           Object query = store.newQuery(portletAppClass, filter);
  -        return (MutablePortletApplication) store.getObjectByQuery(query);
  +        return (MutablePortletApplication) postLoad(store.getObjectByQuery(query));
       }
   
       /**
  @@ -220,7 +233,7 @@
           Filter filter = store.newFilter();
           filter.addEqualTo("applicationIdentifier", ident);
           Object query = store.newQuery(portletAppClass, filter);
  -        return (MutablePortletApplication) store.getObjectByQuery(query);
  +        return (MutablePortletApplication) postLoad(store.getObjectByQuery(query));
       }
   
       /**
  @@ -235,7 +248,19 @@
       {
           PersistenceStore store = getPersistenceStore();
           prepareTransaction(store);
  -        return new ArrayList(store.getExtent(portletAppClass));
  +        Collection pas = store.getExtent(portletAppClass);
  +        Iterator itrPas = pas.iterator();
  +        while (itrPas.hasNext())
  +        {
  +            try
  +            {
  +                ((Support) itrPas.next()).postLoad(this);
  +            }
  +            catch (Exception e)
  +            {
  +            }
  +        }
  +        return new ArrayList(pas);
       }
   
       /**
  @@ -264,7 +289,7 @@
                   log.error(msg);
                   throw new IllegalStateException(msg);
               }
  -            return getStoreableInstance(portlet);
  +            return getStoreableInstance((PortletDefinitionComposite) postLoad(portlet));
           }
           else
           {
  @@ -312,7 +337,7 @@
                   }
                   portlet.setPortletApplicationDefinition(app);
               }
  -            return getStoreableInstance(portlet);
  +            return getStoreableInstance((PortletDefinitionComposite)postLoad(portlet));
           }
           else
           {
  @@ -514,5 +539,25 @@
           {
               return null;
           }
  +    }
  +    
  +    private Object postLoad(Object obj)
  +    {
  +        if (obj == null)
  +        {
  +            return obj;
  +        }
  +
  +        if (obj instanceof Support)
  +        {
  +            try
  +            {
  +                ((Support) obj).postLoad(obj);
  +            }
  +            catch (Exception e)
  +            {
  +            }
  +        }
  +        return obj;
       }
   }
  
  
  

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