Re: [thredds] ncWMS/Thredds source code management

Hi Ben,

For TDS 4.2, I have a local working copy of the SVN branch you mention
below. I have made a number of changes locally. Many of these changes
are simply patches of some later work from the SVN trunk. The main
change is the addition of a TDS specific Ant build file (buildTds.xml)
which restricts the Java classes included in the .war and the -src.jar
files. The files that are not included are parts of ncWMS that the TDS
does not use (e.g., the ncWMS configuration and some of its logging).

Unfortunately, I've never gotten around to working with Jon and company
to fold all these changes back into that SVN branch. Mainly because our
current focus is on updating to the ncWMS trunk (1.0R3) for TDS 4.3.

For TDS 4.3 (not yet our stable release), our changes are on gitHub in
the ethanrd/ncWMS repository in the "tdsPackaging" branch:

https://github.com/ethanrd/ncWMS/tree/tdsPackaging

If you need to stick with 4.2 until 4.3 is stable, I'm attaching a patch
file that contains my changes for TDS 4.2.

Hope that helps. Let me know if you have any other questions.

Ethan

On 8/13/2012 1:55 AM, Ben Caradoc-Davies wrote:
> Ethan,
> 
> other than a few lines, the ncwms-src.jar included with Thredds 4.2.6 is
> the same as the maintenance branch created for this purpose:
> https://ncwms.svn.sourceforge.net/svnroot/ncwms/branches/tds4.2-20101102/
> 
> I notice that the ncwms-src.jar included with Thredds 4.2.10 has many
> differences, including 35 removed files:
> http://svn.unidata.ucar.edu/repos/thredds/branch/RB-TDS-4.2/lib/release/source/ncwms-src.jar
> 
> 
> The svn logs suggest there have been some patches applied.
> 
> I also found this: "Also pulled TdsRequestedDataset our of WMS code so
> could be used by ncISO (and elsewhere) if desired." Does this apply to
> ncWMS?
> https://www.unidata.ucar.edu/jira/browse/TDS-189
> 
> (1) Is the source for ncwms-src.jar checked into any public version
> control system?
> 
> (2) What happened to the removed files?
> 
> Kind regards,
> 

-- 
Ethan Davis                                       UCAR Unidata Program
edavis@xxxxxxxxxxxxxxxx                    http://www.unidata.ucar.edu
Index: web/WEB-INF/jsp/admin.jsp
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- web/WEB-INF/jsp/admin.jsp   (revision 909)
+++ web/WEB-INF/jsp/admin.jsp   (revision )
@@ -174,7 +174,7 @@
         <table border="1">
             <tr><th>Title</th><td><input type="text" name="server.title" 
value="${config.server.title}"/></td><td>Title for this WMS</td></tr>
             <!-- TODO: make the abstract field larger -->
-            <tr><th>Abstract</th><td><input type="text" name="server.abstract" 
value="${config.server.abstract}"/></td><td>More details about this 
server</td></tr>
+            <tr><th>Abstract</th><td><input type="text" 
name="server.serverAbstract" 
value="${config.server.serverAbstract}"/></td><td>More details about this 
server</td></tr>
             <tr><th>Keywords</th><td><input type="text" name="server.keywords" 
value="${config.server.keywords}"/></td><td>Comma-separated list of 
keywords</td></tr>
             <tr><th>URL</th><td><input type="text" name="server.url" 
value="${config.server.url}"/></td><td>Web site of the service 
provider</td></tr>
             <!-- TODO: do integer validation on max width and height -->
Index: src/java/uk/ac/rdg/resc/ncwms/wms/Layer.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- src/java/uk/ac/rdg/resc/ncwms/wms/Layer.java        (revision 909)
+++ src/java/uk/ac/rdg/resc/ncwms/wms/Layer.java        (revision )
@@ -57,7 +57,7 @@
     public String getTitle();
 
     /** Returns a (perhaps-lengthy) description of this layer */
-    public String getAbstract();
+    public String getLayerAbstract();
 
     /**
      * Returns an identifier for this layer that is unique <b>within a
Index: src/java/uk/ac/rdg/resc/ncwms/controller/AbstractWmsController.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- src/java/uk/ac/rdg/resc/ncwms/controller/AbstractWmsController.java 
(revision 909)
+++ src/java/uk/ac/rdg/resc/ncwms/controller/AbstractWmsController.java 
(revision )
@@ -330,6 +330,7 @@
         String[] supportedCrsCodes = new String[]{
             "EPSG:4326", "CRS:84", // Plate Carree
             "EPSG:41001", // Mercator (~ Google Maps)  TODO replace with real 
Google Maps code
+            "EPSG:3857", // WGS 84 / Pseudo-Mercator (used by Google Maps) 
             "EPSG:27700", // British National Grid
             // See http://nsidc.org/data/atlas/ogc_services.html for useful
             // stuff about polar stereographic projections
Index: src/java/uk/ac/rdg/resc/ncwms/cdm/AbstractScalarLayerBuilder.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- src/java/uk/ac/rdg/resc/ncwms/cdm/AbstractScalarLayerBuilder.java   
(revision 909)
+++ src/java/uk/ac/rdg/resc/ncwms/cdm/AbstractScalarLayerBuilder.java   
(revision )
@@ -46,7 +46,7 @@
 
     @Override
     public void setAbstract(L layer, String abstr) {
-        layer.setAbstract(abstr);
+        layer.setLayerAbstract(abstr);
     }
 
     @Override
Index: web/WEB-INF/jsp/capabilities_xml_1_1_1.jsp
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- web/WEB-INF/jsp/capabilities_xml_1_1_1.jsp  (revision 909)
+++ web/WEB-INF/jsp/capabilities_xml_1_1_1.jsp  (revision )
@@ -30,7 +30,7 @@
         <!-- Human-readable title for pick lists -->
         <Title><c:out value="${config.title}"/></Title>
         <!-- Narrative description providing additional information -->
-        <Abstract><c:out value="${config.abstract}"/></Abstract>
+        <Abstract><c:out value="${config.serverAbstract}"/></Abstract>
         <KeywordList>
             <%-- forEach recognizes that keywords is a comma-delimited String 
--%>
             <c:forEach var="keyword" items="${config.keywords}">
@@ -109,7 +109,7 @@
                 <Layer<c:if test="${layer.queryable}"> queryable="1"</c:if>>
                     <Name>${layer.name}</Name>
                     <Title><c:out value="${layer.title}"/></Title>
-                    <Abstract><c:out value="${layer.abstract}"/></Abstract>
+                    <Abstract><c:out 
value="${layer.layerAbstract}"/></Abstract>
                     <c:set var="bbox" value="${layer.geographicBoundingBox}"/>
                     <LatLonBoundingBox minx="${bbox.westBoundLongitude}" 
maxx="${bbox.eastBoundLongitude}" miny="${bbox.southBoundLatitude}" 
maxy="${bbox.northBoundLatitude}"/>
                     <BoundingBox SRS="EPSG:4326" 
minx="${bbox.westBoundLongitude}" maxx="${bbox.eastBoundLongitude}" 
miny="${bbox.southBoundLatitude}" maxy="${bbox.northBoundLatitude}"/>
\ No newline at end of file
Index: src/java/uk/ac/rdg/resc/ncwms/controller/ServerConfig.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- src/java/uk/ac/rdg/resc/ncwms/controller/ServerConfig.java  (revision 909)
+++ src/java/uk/ac/rdg/resc/ncwms/controller/ServerConfig.java  (revision )
@@ -59,7 +59,7 @@
     public int getMaxImageHeight();
 
     /** Returns a (perhaps-lengthy) description of this server */
-    public String getAbstract();
+    public String getServerAbstract();
     
     /** Returns a set of keywords that help to describe this server */
     public Set<String> getKeywords();
Index: buildTds.xml
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- buildTds.xml        (revision )
+++ buildTds.xml        (revision )
@@ -0,0 +1,117 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="ncWMS for TDS" default="cleanBuildNcwmsSrcAndJar" basedir=".">
+    <description>Build ncwms.jar for use by TDS.</description>
+
+  <tstamp>
+    <format property="build.time" pattern="yyyy-MM-dd HH:mm:ss" 
timezone="GMT"/>
+    <format property="build.time.number" pattern="yyyyMMdd.HHmm" 
timezone="GMT"/>
+  </tstamp>
+  <property name="build.number" value="${build.time.number}" />
+  <property name="build.name" value="${build.number}" />
+
+  <property name="release.version" value="4.2"/>
+  <property name="release.version.minor" 
value="${release.version}.${build.number}"/>
+  <property name="release.dir.name" value="${release.version}.${build.name}"/>
+
+  <property  name="ncwmsForTds.release.version" 
value="1.0.tds.${release.version.minor}" />
+
+  <property name="javac.debug" value="true" />
+  <property name="javac.debuglevel" value="lines,vars,source" />
+
+  <property name="src.dir" location="${basedir}/src/java"/>
+  <property name="lib.dir" location="${basedir}/web/WEB-INF/lib"/>
+  <property name="build.dir" value="${basedir}/target"/>
+  <property name="build.classes.dir" value="${build.dir}/classes"/>
+
+  <path id="source.path">
+    <pathelement location="${src.dir}"/>
+  </path>
+
+  <patternset id="sources">
+    <include name="uk/ac/rdg/resc/ncwms/**/*.java"/>
+    <!--exclude name="uk/ac/rdg/resc/ncwms/controller/ServerConfig.java"/-->
+    <exclude name="uk/ac/rdg/resc/ncwms/cache/**/*.java"/>
+    <exclude name="uk/ac/rdg/resc/ncwms/config/**/*.java"/>
+    <exclude name="uk/ac/rdg/resc/ncwms/security/**/*.java"/>
+    <exclude name="uk/ac/rdg/resc/ncwms/usagelog/h2/**/*.java"/>
+  </patternset>
+
+  <fileset id="compile.libraries" dir="${lib.dir}">
+    <patternset id="compile.libs">
+
+      <exclude name="bufr-1.4.jar" />
+      <exclude name="grib-8.0.jar" />
+      <exclude name="h2.jar" />
+      <exclude name="hsqldb-1.8.0.7.jar" />
+    </patternset>
+  </fileset>
+
+  <path id="compile.classpath">
+    <fileset refid="compile.libraries" />
+  </path>
+
+  <target name="init">
+    <mkdir dir="${build.classes.dir}"/>
+    <echo message="Initialize ${ant.project.name}"/>
+  </target>
+  
+  <target name="clean" description="Deletes all files that are generated by 
the build.">
+    <delete dir="${build.dir}" failonerror="false"/>
+  </target>
+
+  <target name="compile" depends="init" description="compile ncwms for TDS">
+    <javac destdir="${build.classes.dir}" source="1.6" target="1.6"
+           debug="${javac.debug}" debuglevel="${javac.debuglevel}"
+           includeAntRuntime="false">
+      <src refid="source.path"/>
+      <patternset refid="sources"/>
+      <classpath refid="compile.classpath"/>
+    </javac>
+  </target>
+
+  <property name="ncwms.jar" value="${build.dir}/ncwms.jar" />
+  <property name="ncwms.src.jar" value="${build.dir}/ncwms-src.jar" />
+
+  <target  name="buildNcwmsJar" description="Create ncwms.jar (assumes already 
compiled).">
+    <jar destfile="${ncwms.jar}">
+      <fileset dir="${build.classes.dir}"/>
+
+      <manifest>
+        <attribute name="Built-By" value="Unidata - ${user.name}"/>
+        <attribute name="Built-On" value="${build.time}"/>
+        <attribute name="Implementation-Title" value="ncWMS for TDS"/>
+        <attribute name="Implementation-Version" 
value="${ncwmsForTds.release.version}"/>
+        <attribute name="Implementation-Vendor" value="University of Reading"/>
+      </manifest>
+    </jar>
+  </target>
+
+  <target  name="buildNcwmsSrc" description="Create ncwms-src.jar.">
+    <jar destfile="${ncwms.src.jar}">
+      <fileset dir="${src.dir}">
+        <patternset refid="sources"/>
+      </fileset>
+
+      <manifest>
+        <attribute name="Built-By" value="Unidata - ${user.name}"/>
+        <attribute name="Built-On" value="${build.time}"/>
+        <attribute name="Implementation-Title" value="Source of ncWMS for 
TDS"/>
+        <attribute name="Implementation-Version" 
value="${ncwmsForTds.release.version}"/>
+        <attribute name="Implementation-Vendor" value="University of Reading"/>
+      </manifest>
+    </jar>
+  </target>
+  <target  name="cleanBuildNcwmsSrcAndJar" depends="clean, compile, 
buildNcwmsSrc, buildNcwmsJar" />
+
+  <property name="tds.lib.dir" value="../thredds-4.2/thredds/lib/release" />
+  <property name="tds.lib.src.dir" value="${tds.lib.dir}/source" />
+
+  <target name="pushSrcJarToThreddsWorkingCopy">
+    <copy todir="${tds.lib.dir}" file="${ncwms.jar}"
+          preservelastmodified="true" overwrite="true" />
+    <copy todir="${tds.lib.src.dir}" file="${ncwms.src.jar}"
+          preservelastmodified="true" overwrite="true" />
+  </target>
+  <target name="cleanPushSrcJarToThreddsWorkingCopy" 
depends="cleanBuildNcwmsSrcAndJar,pushSrcJarToThreddsWorkingCopy" />
+
+</project>
Index: src/java/uk/ac/rdg/resc/ncwms/wms/SimpleVectorLayer.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- src/java/uk/ac/rdg/resc/ncwms/wms/SimpleVectorLayer.java    (revision 909)
+++ src/java/uk/ac/rdg/resc/ncwms/wms/SimpleVectorLayer.java    (revision )
@@ -71,7 +71,7 @@
     public String getId() { return this.id; }
 
     @Override
-    public String getAbstract() {
+    public String getLayerAbstract() {
         return "Automatically-generated vector field, composed of the fields "
             + this.east.getTitle() + " and " + this.north.getTitle(); 
     }
Index: src/java/uk/ac/rdg/resc/ncwms/wms/AbstractScalarLayer.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- src/java/uk/ac/rdg/resc/ncwms/wms/AbstractScalarLayer.java  (revision 909)
+++ src/java/uk/ac/rdg/resc/ncwms/wms/AbstractScalarLayer.java  (revision )
@@ -94,8 +94,8 @@
     @Override public String getTitle() { return this.title; }
     public void setTitle(String title) { this.title = title; }
 
-    @Override public String getAbstract() { return this.abstr; }
-    public void setAbstract(String abstr) { this.abstr = abstr; }
+    @Override public String getLayerAbstract() { return this.abstr; }
+    public void setLayerAbstract(String abstr) { this.abstr = abstr; }
 
     @Override public String getUnits() { return this.units; }
     public void setUnits(String units) { this.units = units; }
Index: web/WEB-INF/jsp/capabilities_xml.jsp
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- web/WEB-INF/jsp/capabilities_xml.jsp        (revision 909)
+++ web/WEB-INF/jsp/capabilities_xml.jsp        (revision )
@@ -30,7 +30,7 @@
     <Service>
         <Name>WMS</Name>
         <Title><c:out value="${config.title}"/></Title>
-        <Abstract><c:out value="${config.abstract}"/></Abstract>
+        <Abstract><c:out value="${config.serverAbstract}"/></Abstract>
         <KeywordList>
             <%-- forEach recognizes that keywords is a comma-delimited String 
--%>
             <c:forEach var="keyword" items="${config.keywords}">
@@ -87,7 +87,7 @@
                 <Layer<c:if test="${layer.queryable}"> queryable="1"</c:if>>
                     <Name>${layer.name}</Name>
                     <Title><c:out value="${layer.title}"/></Title>
-                    <Abstract><c:out value="${layer.abstract}"/></Abstract>
+                    <Abstract><c:out 
value="${layer.layerAbstract}"/></Abstract>
                     <c:set var="bbox" value="${layer.geographicBoundingBox}"/>
                     <EX_GeographicBoundingBox>
                         
<westBoundLongitude>${bbox.westBoundLongitude}</westBoundLongitude>
\ No newline at end of file
Index: src/java/uk/ac/rdg/resc/ncwms/graphics/KmzFormat.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- src/java/uk/ac/rdg/resc/ncwms/graphics/KmzFormat.java       (revision 909)
+++ src/java/uk/ac/rdg/resc/ncwms/graphics/KmzFormat.java       (revision )
@@ -95,7 +95,7 @@
                 kml.append("<name>" + layer.getDataset().getId() + ", " +
                     layer.getId() + "</name>");
                 kml.append("<description>" + layer.getDataset().getTitle() + 
", "
-                    + layer.getTitle() + ": " + layer.getAbstract() +
+                    + layer.getTitle() + ": " + layer.getLayerAbstract() +
                     "</description>");
 
                 // Add the screen overlay containing the colour scale
Index: src/java/uk/ac/rdg/resc/ncwms/cdm/DataReadingStrategy.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- src/java/uk/ac/rdg/resc/ncwms/cdm/DataReadingStrategy.java  (revision 909)
+++ src/java/uk/ac/rdg/resc/ncwms/cdm/DataReadingStrategy.java  (revision )
@@ -36,7 +36,6 @@
 import ucar.ma2.Index;
 import ucar.nc2.dataset.VariableDS;
 import ucar.nc2.dt.GridDatatype;
-import uk.ac.rdg.resc.ncwms.config.datareader.DataReader;
 import uk.ac.rdg.resc.ncwms.coords.PixelMap;
 import uk.ac.rdg.resc.ncwms.coords.PixelMap.PixelMapEntry;
 
  • 2012 messages navigation, sorted by:
    1. Thread
    2. Subject
    3. Author
    4. Date
    5. ↑ Table Of Contents
  • Search the thredds archives: