update: In order to get myProjects functionality working also have to JkMount /CorePortlet/* and /team/* - there may be more.
dump/restore geonportaldb and geoncat databases, createuser geonportaluser
make sure pg_hba.conf is set to trusted connections from localhost
Hardening the machines
SSH: remove root ssh access, limit ssh access by IP/user for all nodes
Apache: limit access to sysinfo apps by IP by adding new Directory directive(s). These include tripwire, phpSysInfo, phpMyAdmin, and ganglia.
Data node does not need to have any webservices running. Stop httpd and remove it via chkconfig
configure tripwire more... don't know much about it yet.
Deployment from SVN
master ant build.xml at the top level should run ant deploy on all portlets in the portlets directory?
Software notes and issues
Java 1.5+ compliance
CorePortlet has a dependency on Axis 1.2 which doesn't work with Java 1.5 due to enum keywords. (fixed by removing enum keyword and changing references to org.apache.axis.enum to org.apache.axis.constants and using axis 1.4 jar)
CorePortlet does not compile due to a missing dependency on IdentityAuthorization (fixed by adding ogsa.jar and cog-jglobus.jar to CorePortlet/lib)
reference to UUID ambiguous due to java.util.UUID - bad implementation in several classes that import package.name.* instead of fully expanding package imports. This is a general code smell in the codebase - import foo.com.* should not exist in a production codebase, with modern IDEs' (e.g., Eclipse) organize imports feature, there is no reason why this even exists.
putting shared jar dependencies in a shared lib folder - there are many redundant jars in the portlets, and even in the gridsphere lib.
separate Gridsphere source tree/jars from the actual portlets
current deployment process appears to be - deploy gridsphere, gridportlets, and then all the individual portlets. Should attempt to write a script that goes through all portlets in the portlet directory and attempts to deploy them all? This is clumsy in ant, perhaps a perl/python/etc. script would be more suitable.
Improvements to the GEON codebase
org.geongrid.sdsc.portlets.data.RegistrationPortlet is where all the URL mappings are placed for some reason. This should really be in an external config file somewhere. Furthermore, the mappings are reset/reinitialized on every request, as opposed to just once when the webapp starts up. See what alternative models, if any, are supported by Gridsphere.
"GEON" is used all over the place. It would be nice if there were a central configuration file/registry that is used to provide the project name (geon, tdar, etc.), and everything just knows how to look it up. As it stands now we still need to fix a few places in the registration process where GEON is used instead of tdar.
DataCatalog.java uses the catalog.database.connection to connect to the geon catalog and acts as a DAO for certain project-related metadata stored in the geoncat postgres database. We may want to replace this class entirely with our own
import fully qualified package names instead of .*
why does webapp/js/jsp have the same files as webapp/js (with some slight modifications to xtree.js, popcalendar.js, also jsp/portal_search_results.js does not exist in the js folder)
Making GEON compatible/installable with a clean version of tomcat
change classpath to look in lib instead of common/lib (change from tomcat 5.X to tomcat 6)
modify SportletContext and add String getContextPath() to delegate to context.getContextPath()
Bundled GEON portlets
used for authentication?
Cleaning up jar dependencies: Added a "shared.lib" property to the ant build.xml that points to a shared library folder with jars that are common to multiple portlets. Next up is cleaning up the jar dependencies so CorePortlet has just the appropriate jars in its lib folder.
Cleaning up codebase:
removed webapp/WEB-INF/classes/org - no reason source files should be in there, and generated classfiles should not be in source control.
handles user account registration/authentication - need to modify the email that gets sent out on new account registration
Where should jarfiles live? I.e., if portlet A and portlet B have a dependency on log4j, where should log4j be placed?
what is the purpose of gama's tomcat-non-secure and tomcat-secure tomcat containers?
What's the best way to include team elements and any other 3rd-party libraries/dependencies?
How to set up the database schema automatically?
geon.properties exists in team/WEB-INF/classes and CorePortlet/WEB-INF/classes/geon.properties - is this necessary to include teamelements?