GridSphere Frequently Asked Questions


This section contains a few Q's and A's on installing and configuring GridSphere

Q: GridSphere does not start up! What is the problem?
Q: I would like to add support for a new locale in GridSphere. What must I do?
Q: What custom portal properties does GridSphere support?
Q: What custom portlet modes does GridSphere support?
Q: What custom window states does GridSphere support?
Q: How can I change/override the HTTP or HTTPS ports thats are used?
Q: Why is it called GridSphere-- I don't see anything Grid related in it!
Q: I think I found a bug or I have a feature request!
Q: I'm having problems what should I do?
Q: I started my own portlets package and deployed it. Gridsphere now fails loading at startup! I think I edited all configuration files correctly. What's wrong?
Q: What User Attributes (PLT.17) of the JSR 168 specification are supported?
Q:

GridSphere does not start up! What is the problem?

A:

First, check the log files in $CATALINA_HOME/logs/. First look at catalina.out and then look at localhost.XXX log files and look for any stack traces. If you see the following:

        java.lang.NoClassDefFoundError: org/apache/xml/serialize/XMLSerializer
        org.exolab.castor.xml.Unmarshaller.initConfig(Unmarshaller.java:265)
        org.exolab.castor.xml.Unmarshaller.<init>(Unmarshaller.java:221)
        org.exolab.castor.xml.Unmarshaller.<init>(Unmarshaller.java:208)
                        
You must install the tomcat-compat package for your version of Tomcat 5.5.X which includes the necessary XML libraries. For instance, the compat library for 5.5.14 may be found at http://apache.downlod.in/tomcat/tomcat-5/v5.5.14-beta/bin/apache-tomcat-5.5.14-compat.zip

If the above does not solve your problem, there is a good chance there is a problem with your database connection. If you are using the default HsqlDB provided by GridSphere, make sure the connection URL specified in the $CATALINA_HOME/webapps/gridsphere/WEB-INF/CustomPortal/database/hibernate.properties file is valid. Check to see that the database located in $CATALINA_HOME/webapps/gridsphere/WEB-INF/CustomPortal/database/gridsphere.script has tables in it. This should happen after you run "ant install" or "ant create-database".

Q:

I would like to add support for a new locale in GridSphere. What must I do?

A:

[Important]Important
Make sure you check GridSphere out of CVS to get latest files!

First translate the following two GridSphere property files:

  1. gridsphere/config/resources/Portlet_en.properties
  2. gridsphere/webapps/gridsphere/WEB-INF/classes/Portlet_en.properties
Use the appropriate ISO language code e.g. English is "en", Spanish is "es", etc. in the filename. The properties are Unicode encoded, which means you should create a temp file with the properties in the native language complete with accents, etc. Then you need to run "native2ascii" tool that is distributed with JDK on the temp file. E.g. native2ascii mytranslation > Portlet_hi.properties as an example of translating to Hindi.

Second translate the following descriptor files:

  1. gridsphere/webapps/gridsphere/WEB-INF/portlet.xml
  2. gridsphere/webapps/gridsphere/WEB-INF/layout.xml
  3. gridsphere/webapps/gridsphere/WEB-INF/authmodules.xml
These files are UTF-8 encoded. Simply editing them in most IDE's or JEdit is fine.

Now you must create a flag icon in gridsphere/webapps/gridsphere/images/flags directory. look at existing flags for proper sizing and filename conventions.

Finally edit gridsphere/webapps/gridsphere/WEB-INF/GridSphereServices.xml and in the section for the "Locale Service", add your locale to the comma separated list of supported locales.

[Important]Important
Please send us your additions so we can add them back into the code!

Q:

What custom portal properties does GridSphere support?

A:

As dictated by the JSR 168 specification, a portal may support vendor specific portal properties as defined in PLT.12.1.1. A property is specified by using the renderResponse.setProperty(..) method. Below is a list of supported properties with descriptions and usage

  1. CSS_HREF Used to add an external CSS stylesheet to the portal page. The property must specify where the stylesheet is located e.g. renderResponse.setProperty("CSS_HREF", request.getContextPath() + "/css/mystyle.css");
  2. JAVASCRIPT_SRC Used to add an external JavaScript library to the portal page. The property must specify where the javascript file is located e.g. renderResponse.setProperty("JAVASCRIPT_SRC", request.getContextPath() + "/js/mylibrary.js");
  3. BODY_ONLOAD Used to set any necessary JavaScript functions as an "onload" attribute to the HTML body tag e.g. renderResponse.setProperty("BODY_ONLOAD", "myjsfunction()");

Q:

What custom portlet modes does GridSphere support?

A:

In addition to the edit, view and help modes as per the JSR 168 specification, GS provides a configure mode that will be displayed only for users with the ADMIN role. A portlet that provides configure mode should implement the doConfigure method of and add the following to the portlet deployment descriptor for JSR 168 portlets:

    <custom-portlet-mode>
        <description xml:lang="en">Pre-defined custom portlet mode CONFIGURE</description>
        <portlet-mode>config</portlet-mode>
    </custom-portlet-mode>
        

Q:

What custom window states does GridSphere support?

A:

In addition to the normal, minimize and maximize states as per the JSR 168 specification, GS provides a "floating" window state that will bring up the contents of the portlet frame inside of a pop-up. To use it, specify the float mode in the portlet.xml descriptor.

    <custom-window-state>
        <description xml:lang="en">Allows portlet to pop-up</description>
        <window-state>floating</window-state>
    </custom-window-state>
        
If you're using the old WebSphere API you can just add the following:
         <allows>
            <minimized/>
            <maximized/>
            <resizing/>
            <floating/>
         </allows>
        

Unfortunately the JSR 168 spec. does not provide a way to associate a particular window state with a portlet, so currently all portlets will offer float state if added to the descriptor

Q:

How can I change/override the HTTP or HTTPS ports thats are used?

A:

You can edit the WEB-INF/gridsphere.properties file in your deployment and set the gridsphere.port.http, or gridsphere.port.https values

Q:

Why is it called GridSphere-- I don't see anything Grid related in it!

A:

GridSphere provides a complete portal framework based upon the portlet API and a minimal set of core portlets. To provide greater reusability and flexibility, it was decided to not require any Grid services for the proper functioning of the GridSphere portlet container. However, we are currently developing many fundamental Grid portlets that will showcase GridLab and OGSA services under a separate portlet application "grid portlets".

Q:

I think I found a bug or I have a feature request!

A:

See our bugtracker at: http://bugs.gridsphere.org .

Q:

I'm having problems what should I do?

A:

Please join the mailing lists!
gridsphere-users - Discussion for gridsphere users
gridsphere-dev - Discussion for gridsphere developers

Q:

I started my own portlets package and deployed it. Gridsphere now fails loading at startup! I think I edited all configuration files correctly. What's wrong?

A:

Please doublecheck the xml configuration files and make sure that the packagename of the portlets contains '.portlets.' and of the services '.services.'.

Q:

What User Attributes (PLT.17) of the JSR 168 specification are supported?

A:

The following attributes can be added to the portlet.xml and used within the GridSphere portal:

                                <user-attribute>
                                    <description xml:lang="en">User Name</description>
                                    <name>user.name</name>
                                </user-attribute>
                                <user-attribute>
                                    <description xml:lang="en">User Id</description>
                                    <name>user.id</name>
                                </user-attribute>
                                <user-attribute>
                                    <description xml:lang="en">User Full Name</description>
                                    <name>user.name.full</name>
                                </user-attribute>
                                <user-attribute>
                                    <description xml:lang="en">User E-Mail</description>
                                    <name>user.email</name>
                                </user-attribute>
                                <user-attribute>
                                    <description xml:lang="en">Company Organization</description>
                                    <name>user.organization</name>
                                </user-attribute>
                                <user-attribute>
                                    <description xml:lang="en">Last Login Time</description>
                                    <name>user.lastlogintime</name>
                                </user-attribute>
                                <user-attribute>
                                    <description xml:lang="en">Timezone</description>
                                    <name>user.timezone</name>
                                </user-attribute>
                                <user-attribute>
                                    <description xml:lang="en">Preferred Locale</description>
                                    <name>user.locale</name>
                                </user-attribute>
                                <user-attribute>
                                    <description xml:lang="en">Preferred Theme</description>
                                    <name>user.theme</name>
                                </user-attribute>
                                <user-attribute>
                                    <description xml:lang="en">User Role</description>
                                    <name>user.role</name>
                                </user-attribute>