Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 4.0

Goal

The goal is to develop a strategy to migrate all existing Glast projects from Maven1 to Maven2 is as unobtrusive a way as possible. The reasons to switch to maven2 are

  • Support for maven1 is fading away
  • Netbeans6, due to be released before end-of-year, has support for maven2 built-in (but not maven1)
  • Maven2 has many improvements, including simpler dependency management

We will not be able to move all projects over-night, so we need a strategy for which order to move projects, and how projects which have moved can continue to co-exist with projects which have not moved. We will need to provide clear instructions to developers to allow them to move their projects.

We should start with some simple projects, like org-glast-groupmanager.

Requirements

  • We need to maintain the features we have in maven1, including
    • Ability to check projects out and build them in Netbeans
    • Ability to deploy projects using the built-in netbeans tomcat server (Netbeans deploy)
    • Ability to use in-place deploy so that JSP pages can be edited and the effects seen immediately without the need to redeploy
    • Ability to deploy projects from netbeans to the development (tomcat03) and production (tomcat*) tomcat servers.
  • Ability for cruise-control to build projects. This should not be too hard since cruise-control has support for maven2
  • Ability to deploy snapshots and releases to a central Glast maven2 repository
  • Ability to deploy sites to http://glast-ground.slac.stanford.edu/docs

Possible additional features

  • Right now there is a lot of boiler-plate code which has to be copied into each new Glast project. For freehep Mark set things up so their was a master project which other projects inherited from so that we didn't have to repeat the same information in each sub-project. A maven "archetype" for Glast projects might also be a good way to achieve this.
  • Now that we have 12 tomcat servers it is difficult to remember which server each application should be deploy to. It would be nice to be able to do something like mvn -Dmode=prod tomcat:deploy and have the application automatically deploy to the correct location. This would require some type of custom maven plugin which would talk to the glastgen database.

For Developers

Developing Projects

Parent Repository

All projects have to specify in the pom file the repositories where to find the parent. So the following code is required in every project:

...


    <repositories>
        <repository>
            <id>glast-maven2</id>
            <name>GLAST Maven 2 central repository</name>
            <url>http://glast-ground.slac.stanford.edu/maven2</url>
        </repository>
        <repository>
            <id>glast-maven2-snapshots</id>
            <name>GLAST Maven2 central SNAPSHOTS repository</name>
            <url>http://glast-ground.slac.stanford.edu/maven2/SNAPSHOTS</url>
        </repository>
    </repositories>

JAR

Parent

A jar project should inherit from org-glast-maven-jar-project; so in your pom add:

...


    <parent>
        <groupId>glast</groupId>
        <artifactId>org-glast-maven-jar-project</artifactId>
        <version>1.2</version>
    </parent>

WAR

Parent

A jar project should inherit from org-glast-maven-war-project; so in your pom add:

...


    <parent>
        <groupId>glast</groupId>
        <artifactId>org-glast-maven-war-project</artifactId>
        <version>1.2</version>
    </parent>

Final Name

The final name of the war file is to be set in the pom file as:

...


    <build>
        <finalName>ServerMapping</finalName>
    </build>

This name is the name of the produced war file and it must be identical to the Application's context. It is also used by the Maven Tomcat Deploy plugin to find the production deployment server.

Source Location

Maven2 expects the source files to be located in src/main/webapp. Some of our projects have the source code in src/webapp. To tell maven2 to look in the latter location add the following to your pom file:

...


    <build>
        <plugins>
            <plugin>
                <artifactId>maven-war-plugin</artifactId>
                <configuration>
                    <warSourceDirectory>${basedir}/src/webapp</warSourceDirectory>
                </configuration>
            </plugin>
        </plugins>
    </build>

of this page is to keep track of our progress in ensuring that we will be able to support and maintain Fermi Data Handling code for the next decade.

The plan is to make sure that all projects have been:

  • identified as active or inactive
  • migrated to maven2
  • converted to using SRS code base or generalize and turn into an SRS project
  • added to SRS Hudson (and removed from Glast Hudson)

Once all the projects have been added to Hudson we have to make sure that:

  • Each automated build will publish SNAPSHOT artifacts to the appropriate repository
  • The documentation and javadoc are automatically built and deployed to the appropriate site directory
  • It is possible to release the projects in Hudson

Eventually all Fermi web appilcations, servers, scripts etc currently in production must be replace with the converted code.

Applications

The following we applications are either old or not linked to a specific project

Application

Comment

LatOps

Obsolete we application. It is still on tomcat11 to get documentation off of it. Not linked from glast-ground.

maven2

Fermi Maven2 repository

docs

Maven generated documentation. It points to /nfs/slac/g/glast/ground/docs/

workbook

Redirects to new workbook location: http://www.slac.stanford.edu/exp/glast/wb/prod/

DataPortalWiredBeta

Test version of DataPortalWired

DataPortalFitsSkimmer

To be removed

DataPortalGateway

Maybe we don't need it anymore

Installer

Will become Obsolete

Projects moved to SRS

The following projects have been generalized.

Project Name

Was

Comments

Contact

Application

org-srs-base-application

org-glast-base-application

 

max

 

org-srs-base-application-gui

org-glast-base-application

 

max

 

org-srs-batch-allocations

 

Genral application for batch share. Lined in from Pipeline

chee

 

org-srs-commons-web

org-glast-commons-web

 

max

Commons

org-srs-datacat-client

org-glast-datacat-client

 

brian

 

org-srs-datacat-server

org-glast-datacat-server

This is the Crawler

tony

 

org-srs-datacat-sp

org-glast-datacat-sp

 

brian

 

org-srs-datacatalog-web

org-glast-datacatalog-web

Is this in production for Fermi?

brian

DataCatalog

org-srs-datahandling-common

org-glast-datahandling-common

 

brian

 

org-srs-datainfo

was a part of org-glast-base-application

 

max

 

org-srs-decorator

was a part of org-glast-base-web

 

max

Decorator

org-srs-groupmanager

org-glast-groupmanager

 

karen

GroupManager

org-srs-jobcontrol

org-glast-jobcontrol

An instance of this is running for test.  Production is still glast.

tony

 

org-srs-pipeline-client

org-glast-pipeline-client

 

tony/brian

 

org-srs-pipeline-server

org-glast-pipeline-server

 

tony/brian

 

org-srs-pipeline-web

org-glast-pipeline-web

 

tony/brian

 

org-srs-pipeline-sp

 

New Package, this was pulled out of org-srs-pipeline-server for easier maintenace.

tony/brian

 

org-srs-servermapping

org-glast-servermapping

 

max

 

org-srs-servermonitoring-web

org-glast-servermon-web

 

max

 

org-srs-shiftschedule-web

org-glast-shiftschedule-web

Is this in production for Fermi?

chee

 

org-srs-tomcat-deploy-maven-plugin

org-glast-tomcat-deploy-maven-plugin

 

max

 

org-srs-web-base

org-glast-base-web

 

max

 

org-srs-resources-web

Contains part of org-glast-resources

 

chee

 

org-srs-image-handler-web

 

 

max

ImageHandler

org-srs-portal-web

 

 

max

ROOT

org-srs-cas

Replaces org-glast-cas-server

 

max

cas-srs

org-srs-downloadmanager

Replaces org-glast-downloadmanager

 

max

DownloadManager

Converted Projects

Project Name

Comments

Contact

Application

org-glast-dataportal-model

Tag library needed by data portal web applications

brian

 

org-glast-dataportal-portal

Still needed, part of data portal (Fermi specific)

tony

DataPortal

org-glast-dataportal-astro

Part of astro server. Already done?

brian

DataPortalAstroServer

org-glast-dataportal-astro-model

This is part of the astro server. Isn't it already converted?

brian

 

org-glast-dataportal-simpleskimmer

Unnecessary dependence on aidatld(?). Still used, part of data portal

tony

DataPortalSimpleSkimmer

org-glast-dataportal-history

Still needed, part of data portal (Fermi specific)

tony

DataPortalHistory

org-glast-dataqualitymonitoring

 

max

 

org-glast-dataqualitymonitoring-web

 

max

DataQualityMonitoring

org-glast-eventdisplay

auxiliary project for org-glast-dataportal-wired

dima

 

org-glast-dataportal-wired

builds and deploys webstart version of wired

dima

DataPortalWired

org-glast-groupmanager-updater

Need to complete transition to UM tables

chee

 

org-glast-isoc-common

 

steve

 

org-glast-maven-project

 

max

 

org-glast-maven-war-project

 

max

 

org-glast-maven-jar-project

 

max

 

org-glast-reports-web

Depends on SNAPSHOT version of jas-plotter on a branch. 

max

Reports

org-glast-runquality

 

karen

RunQuality

org-glast-telemetry-trending

 

max

 

org-glast-telemetry-trending-web

 

max

TelemetryTrending

org-glast-resources

Inherits from org-srs-resources-web and has
Xrootd resources plots and tables. 

chee

Resources

org-glast-isoc-logging

 

steve,jim

ISOCLogging

org-glast-dataprocessing-web

 

max

DataProcessing

org-glast-systemtests-web

 

max

SystemTests

org-glast-telemetry-apidstats

 

jim

APIDStats

org-glast-latba-web

 

dan k

LATBA

org-glast-fcwebview

 

jim

FCWebView

org-glast-isoc-cfgwebbrowser

 

jim

WebConfigBrowser

org-glast-isoc-mpwebview

 

jim

MPWebView

org-glast-telemetry-rtdisplay-web

 

jim

TelemetryTableWebUI

org-glast-telemetry-monitor-web

 

jim

TelemetryMonitor

org-glast-historyprocessing

 

karen

HistoryProcessing

org-glast-speakersbureau-web

 

karen

SpBureau

org-glast-releasemanager

Contains both new rm2 and old releasemanager application

karen

rm2

org-glast-latcatalog-web

 

roberto

LatSourceCatalog

org-glast-aspdataviewer-web

 

roberto

ASPDataViewer

org-glast-elog-base

Base library for OpsLog

tony

 

org-glast-elog-web

Ops Log web application

tony

elog,Entries

org-glast-countdown-clock

Generates this page... http://glast-ground.slac.stanford.edu/CountdownClock/ 

tony

CountdownClock

org-glast-glossary

Produces this: http://glast-ground.slac.stanford.edu/glossary/

max

glossary

org-glast-installer-gui 

 

tony

SConsInstaller

Projects to convert

Module Name

Comments

Contact

Application

org-glast-cas-server

Backend of login server. Still needed unless we are switching to crowd

max

cas

Not to be converted

Module Name

Comments

Contact

Application

tomcat

Doesnt need to be converted

tony

 

TomcatConfigurationBuilder

Netbeans project

tony

 

oracle

Doesnt need converting

tony

 

org-glast-monitor

Standalong monitoring (http://glastlnx20.slac.stanford.edu:5080). Can be left where it is

tony

 

Obsolete Projects

We might consider either moving them from cvs or disabling them

Module Name

Comments

Contact

Application

org-glast-downloadmanager

 

 

 

org-silicondetecor-web

Not Needed Anymore

karen 

SiliconDetectorWeb

org-glast-dataflow-web

 

 

 

org-glast-util-grep

 

 

 

org-glast-calibrationtrending-web

 

 

CalibrationTrending

org-glast-calibrationtrending

 

 

 

org-glast-logging

 

 

 

org-glast-clock

Produces the clock applet on https://glast-ground.slac.stanford.edu/LatOps/. I think we should declare the whole of LatOps obsolete.

tony

 

org-glast-groupmanager-example

 

 

 

org-glast-confluence

Obsolete (replaced by crowd). Still contains some potentially useful code so should not be lost forever.

 

 

org-glast-dataserver-web

 

 

 

org-glast-dataserver-portal

 

 

 

org-glast-dataportal-xroot-gateway

Obsolete (folded into data catalog)

 

 

org-glast-skimmer-web

 

 

 

org-glast-dataportal-skimmer-fits

Obsolete (although still running, should be removed from data portal)

 

 

org-glast-asp-skimmer

 

roberto

 

org-glast-visitor-web

 

 

 

org-glast-maven-jar-archetype

 

 

 

org-glast-maven-war-archetype

 

 

 

org-glast-maven-aida-project

Replaced by org-srs-maven-aida-project

 

 

org-glast-base-web

Replaced by org-srs-web-base

 

 

org-glast-tomcat-deploy-maven-plugin

Replaced by org-srs-tomcat-deploy-maven-plugin

 

 

org-glast-shiftschedule-web

Replaced by org-srs-shiftschedule-web

ShiftSchedule

 

org-glast-servermon-web

Replaced by org-srs-servermonitoring-web

ServerMonitoring

 

org-glast-servermapping

Replaced by org-srs-servermapping

ServerMapping

 

org-glast-pipeline-web

Replaced by org-srs-pipeline-web

Pipeline-II

 

org-glast-pipeline-server

Replaced by org-srs-pipeline-server

 

 

org-glast-pipeline-client

Replaced by org-glast-pipeline-client

 

 

org-glast-jobcontrol

Replaced by org-srs-jobcontrol

 

 

org-glast-datahandling-common

Replaced by org-srs-datahandling-common

 

 

org-glast-datacatalog-web

Replaced by org-srs-datacatalog-web

 

 

org-glast-datacat-sp

Replaced by org-srs-datacat-sp

 

 

org-glast-datacat-server

Replaced by org-srs-datacat-server

 

 

org-glast-datacat-client

Replaced by org-srs-datacat-client

 

 

org-glast-commons-web

Replaced by org-srs-commons-web

 

 

org-glast-base-application

Use now org-srs-base-application or org-srs-base-application-gui

 

 

org-glast-tld-timeline

Used to be standalone application but now it is in MPWebView

jim, steve

 

org-glast-cas-client-example

first Matt's example using ageci

tony

 

org-glast-fcmonitor

 

bryson (question)

 

org-glast-fcwebview-portlet

 

max

 

org-glast-portlet

 

max

 

org-glast-portlet-base

 

max

 

org.glast.portlet

 

max

 

org-glast-portlets

 

max

 

org-glast-skeleton-portlet

 

max

 

org-glast-portal-theme

 

max

 

org-glast-grbmonitoring-web

 

roberto

 

org-glast-asdc-sourceviewer

 

roberto

 

org-glast-asp-sourceviewer

 

roberto

 

datacatalog-web

 

tony

 

org-glast-datamonitoring

 

max

 

SCM Plugin

CVS repositories cannot be inherited by the parent pom, so each project will have to add the following lines to their pom file:

...


    <scm>
        <connection>scm:cvs:pserver:anoncvs@glast-java.slac.stanford.edu:/cvs/java:${artifactId}</connection>
        <developerConnection>scm:cvs:ext:@glast-java.slac.stanford.edu:/cvs/java:${artifactId}</developerConnection>
        <url>http://www-glast.stanford.edu/cgi-bin/viewcvs/${artifactId}/?root=java</url>
    </scm>

Tomcat manager authentification

To be able to deploy to a tomcat server it is necessary to provide the manager's username and password. This can be done in a file called settings.xml located in your HOME\.m2 directory.

For GLAST you have to add the glastServer server element as shown below:

...


<?xml version="1.0" encoding="UTF-8"?>
<settings>
   <servers>
     <server>
       <id>glastServer</id>
       <username>glast</username>
       <password>GammaRay</password>
     </server>
   </servers>
</settings>

Automatic version

To have the version number picked up automatically from the pom file add the following lines to web.xml

...


    <context-param>
        <param-name>
            version
        </param-name>
        <param-value>
            ${pom.version}
        </param-value>
    </context-param>

and the following to the jsp:

...


Version: ${initParam.version}

List of Modules in javacvs

Current Projects

Module Name

Converted

In Hudson

Comments

Contact

org-glast-maven-project

(tick)

(tick)

 

max

org-glast-maven-jar-project

(tick)

(tick)

 

max

org-glast-maven-jar-archetype

(tick)

(tick)

 

max

org-glast-maven-war-project

(tick)

(tick)

 

max

org-glast-maven-war-archetype

(tick)

(tick)

 

max

org-glast-maven-aida-project

(tick)

(tick)

 

max

org-glast-tomcat-deploy-maven-plugin

(tick)

(tick)

 

max

org-glast-base-web

(tick)

(tick)

 

max

org-glast-base-application

(tick)

(tick)

 

max

org-glast-servermapping

(tick)

(tick)

 

max

org-glast-groupmanager

(tick)

(tick)

Unnecessary dependence on aidatld. Still on branch

tony

org-glast-dataportal-astro-model

(tick)

(tick)

 

tony

org-glast-datahandling-common

(tick)

(tick)

 

tony

org-glast-telemetry-trending

(tick)

(tick)

 

max

org-glast-telemetry-trending-web

(tick)

(tick)

 

max

org-glast-resources

(tick)

(tick)

 

charlotte

org-glast-shiftschedule-web

(tick)

(tick)

 

charlotte

org-glast-runquality

(tick)

(tick)

 

karen

org-glast-historyprocessing

(tick)

(tick)

 

karen

org-glast-speakersbureau-web

(tick)

(tick)

 

karen

org-glast-latba-web

(tick)

(tick)

 

dan k

org-glast-dataportal-model

(tick)

(tick)

Version 1.8 but depends on SNAPSHOTs

tony

org-glast-jobcontrol

(tick)

(tick)

Version 1.8

tony

org-glast-servermon-web

(tick)

(tick)

 

max

org-glast-dataportal-simpleskimmer

(tick)

(tick)

Unnecessary dependence on aidatld

tony

org-glast-latcatalog-web

(tick)

(tick)

 

roberto

org-glast-aspdataviewer-web

(tick)

(tick)

 

roberto

org-glast-dataprocessing-web

(tick)

(tick)

 

max

org-glast-pipeline-client

(tick)

(tick)

 

tony

org-glast-commons-web

(tick)

(tick)

 

max

org-glast-datacat-client

(tick)

 

Version is 2.3.2 but depends on SNAPSHOTs. Test do not work

dan

org-glast-datacat-sp

(tick)

(tick)

Version is 2.2.1, but depends on SNAPSHOTs

dan

org-glast-isoc-cfgwebbrowser

(tick)

(tick)

 

jim

org-glast-fcwebview

(tick)

(tick)

 

jim

org-glast-telemetry-apidstats

(tick)

(tick)

 

jim

org-glast-telemetry-monitor-web

(tick)

(tick)

 

jim

org-glast-telemetry-rtdisplay-web

(tick)

(tick)

 

jim

org-glast-reports-web

(tick)

(tick)

Depends on SNAPSHOT version of jas-plotter on a branch.

max

org-glast-releasemanager

(tick)

(tick)

Contains both new rm2 and old releasemanager application

karen

org-glast-dataportal-astro

(tick)

 

 

tony

org-glast-dataportal-history

(error)

 

 

tony

org-glast-dataportal-portal

(error)

 

 

tony

org-glast-asp-skimmer

(error)

 

 

tony

org-glast-dataportal-skimmer-fits

(error)

 

 

tony

org-glast-dataportal-wired

(error)

 

 

tony

org-glast-skimmer-web

(error)

 

Obsolete?

tony

org-glast-dataportal-xroot-gateway

(error)

 

Obsolete?

tony

org-glast-dataqualitymonitoring

(error)

 

 

max

org-glast-dataqualitymonitoring-web

(error)

 

 

max

org-glast-systemtests-web

(error)

 

 

max

org-glast-dataserver-portal

(error)

 

 

tony

org-glast-cas-client-example

(error)

 

 

tony

org-glast-dataserver-web

(error)

 

 

tony

org-glast-cas-server

(error)

 

 

tony

org-glast-downloadmanager

(error)

 

 

tony

org-glast-confluence

(error)

 

 

tony

org-glast-countdown-clock

(error)

 

 

tony

org-glast-pipeline-server

(error)

 

 

dan

org-glast-pipeline-web

(error)

 

 

tony

org-glast-datacatalog-web

(tick)

 

 

tony

org-silicondetecor-web

(error)

 

 

karen

org-glast-groupmanager-example

(error)

 

 

tony

org-glast-datacat-server

(tick)

 

crawler

tony

org-glast-isoc-mpwebview

(error)

 

 

jim

org-glast-tld-timeline

(error)

 

 

jim, steve

org-glast-elog-web

(error)

 

 

Tony

org-glast-visitor-web

(error)

 

 

Karen

org-glast-glossary

(error)

 

 

Chuck

org-glast-elog-base

(error)

 

 

Tony

org-glast-clock

(error)

 

 

tony

Not to be converted

Module Name

Comments

Contact

tomcat

Doesnt need to be converted

tony

org-glast-installer-gui

Ant Project

tony

TomcatConfigurationBuilder

Netbeans project

tony

oracle

Doesnt need converting

tony

Unknown Projects

These should be either upgraded to current projects or demoted to obsolete.

Module Name

Converted

In Hudson

Comments

Contact

org-glast-fcmonitor

(error)

 

Obsolete?

bryson (question)

org-glast-isoc-common

(error)

 

 

steve (question)

org-glast-logging

(error)

 

Is this a duplicate of org-glast-isoc-logging?

steve (question)

org-glast-isoc-logging

(error)

 

 

steve, jim, max (question)

org-glast-calibrationtrending

(error)

 

Obsolete (question)

max

org-glast-calibrationtrending-web

(error)

 

Obsolete (question)

max

org-glast-util-grep

(error)

 

 

tony (question)

org-glast-dataflow-web

(error)

 

 

(question)

org-glast-monitor

(error)

 

 

(question)

Obsolete Projects

They will be moved to a different directory (obsolete) in the cvs repository.

Module Name

Converted

In Hudson

Comments

Contact

org-glast-fcwebview-portlet

(warning)

 

Obsolete

max

org-glast-portlet

(warning)

 

Obsolete

max

org-glast-portlet-base

(warning)

 

Obsolete

max

org.glast.portlet

(warning)

 

Obsolete

max

org-glast-portlets

(warning)

 

Obsolete

max

org-glast-skeleton-portlet

(warning)

 

Obsolete

max

org-glast-portal-theme

(warning)

 

Obsolete

max

org-glast-grbmonitoring-web

(warning)

 

Obsolete

roberto

org-glast-asdc-sourceviewer

(warning)

 

Obsolete

roberto

org-glast-asp-sourceviewer

(warning)

 

Obsolete

roberto

datacatalog-web

(warning)

 

Obsolete

tony

org-glast-datamonitoring

(warning)

 

Obsolete

max

org-glast-web-base-application

(warning)

 

Obsolete max max

 

org-glast-datamonitoring-web

(warning)

 

Obsolete max max

 

org-glast-trendable-db

(warning)

 

Obsolete max max

 

org-glast-pipeline-log

(warning)

  Obsolete

tony

 

org-glast-pipeline-xml (warning)

 

Obsolete tony tony

 

org-glast-pipeline-core

(warning)

 

Obsolete tony tony

 

org-glast-batch

(warning)

 

Obsolete tony tony

 

org-glast-telemetry-trends (warning)

 

Obsolete max max

 

org-glast-sourcemonitoring

(warning)

 

Obsolete max max

 

org-glast-sourcemonitoring-web (warning)

 

Obsolete max max

 

org-glast-maven-web-project (warning)

 

Obsolete max max

 

org-glast-fastmonitoring

(warning)

 

Obsolete max max

 

org-glast-fastmonitoring-web (warning)

 

Obsolete max max

 

org-glast-maven-plugin-parent (warning)

 

Obsolete matt matt

 

org-glast-maven-xmlbeans-plugin (warning)

 

Obsolete matt matt

 

org-glast (warning)

 

Obsolete matt matt

 

org.glast.test (warning)

 

Obsolete matt matt

 

org-glast-hello (warning)

 

Obsolete matt matt

 

org-glast-profile (warning)

 

Obsolete matt matt

 

org-glast-common (warning)

 

Obsolete matt matt

 

org-glast-runquality-web

(warning)

 

Obsolete karen karen

 

org-glast-historyprocessing-web (warning)

 

Obsolete karen karen

 

org-glast-mc-requests (warning)

 

Obsolete karen karen