[jboss-svn-commits] JBL Code SVN: r31251 - in labs/jbosslabs/labs-3.0-build/integration/mgnl-modules/jbossorg-downloads/src/main: resources/META-INF/magnolia and 2 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Wed Jan 27 08:54:04 EST 2010
Author: jchocholacek
Date: 2010-01-27 08:54:03 -0500 (Wed, 27 Jan 2010)
New Revision: 31251
Added:
labs/jbosslabs/labs-3.0-build/integration/mgnl-modules/jbossorg-downloads/src/main/java/org/jboss/labs/magnolia/modules/downloads/GAUtil.java
Modified:
labs/jbosslabs/labs-3.0-build/integration/mgnl-modules/jbossorg-downloads/src/main/java/org/jboss/labs/magnolia/modules/downloads/DownloadsModule.java
labs/jbosslabs/labs-3.0-build/integration/mgnl-modules/jbossorg-downloads/src/main/java/org/jboss/labs/magnolia/modules/downloads/DownloadsVersionHandler.java
labs/jbosslabs/labs-3.0-build/integration/mgnl-modules/jbossorg-downloads/src/main/resources/META-INF/magnolia/jbossorg-downloads.xml
labs/jbosslabs/labs-3.0-build/integration/mgnl-modules/jbossorg-downloads/src/main/resources/mgnl-bootstrap/jbossorg-downloads/config.modules.jbossorg-downloads.xml
labs/jbosslabs/labs-3.0-build/integration/mgnl-modules/jbossorg-downloads/src/main/resources/mgnl-files/templates/jbossorg-modules/jbossorg-downloads/downloads.jsp
Log:
with GA
Modified: labs/jbosslabs/labs-3.0-build/integration/mgnl-modules/jbossorg-downloads/src/main/java/org/jboss/labs/magnolia/modules/downloads/DownloadsModule.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/mgnl-modules/jbossorg-downloads/src/main/java/org/jboss/labs/magnolia/modules/downloads/DownloadsModule.java 2010-01-27 12:52:59 UTC (rev 31250)
+++ labs/jbosslabs/labs-3.0-build/integration/mgnl-modules/jbossorg-downloads/src/main/java/org/jboss/labs/magnolia/modules/downloads/DownloadsModule.java 2010-01-27 13:54:03 UTC (rev 31251)
@@ -3,9 +3,14 @@
import info.magnolia.cms.core.*;
import info.magnolia.module.*;
+import java.io.*;
import java.net.URI;
import java.util.*;
+import org.apache.commons.httpclient.*;
+import org.apache.commons.httpclient.auth.*;
+import org.apache.commons.httpclient.methods.*;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -35,6 +40,11 @@
private static Long cacheTimestamp;
private static boolean refreshCache = false;
+ // offsets for download counter
+ private static Map<String,Long> offsets;
+
+
+
public static DownloadsModule getInstance() {
return instance;
}
@@ -49,12 +59,64 @@
public Long getDownloadCount(String page) {
synchronized (this) {
// check cache timeout
- if (refreshCache || (cacheTimestamp + (timeout * 60000)) < System.currentTimeMillis())
+ if (refreshCache || (cacheTimestamp + (timeout * 60000)) < System.currentTimeMillis()) {
initializeCache();
+ // initializeOffsets();
+ }
}
- return cache.get(page);
+ Long count = cache.get(page);
+ if (count==null) count = new Long(0);
+ return count + getDownloadOffset(page);
}
+ public Long getDownloadOffset(String page) {
+ synchronized (this) {
+ if (offsets == null) initializeOffsets();
+ }
+ if (offsets==null) return new Long(0);
+ String ID = "***NOT DEFINED***";
+ try {
+ ID = page.substring(page.lastIndexOf("/")+1);
+ } catch (Exception ex) {}
+ Long offset = offsets.get(ID);
+ if (offset==null) {
+ log.debug("There is no offset for page '"+ID+"'.");
+ return new Long(0);
+ }
+ return offset;
+ }
+
+ public void addToOffsets(String data) {
+ synchronized (this) {
+ if (offsets == null) initializeOffsets();
+ }
+ try {
+ String[] pairs = data.split(";");
+ for (String pair: pairs) {
+ int index = pair.indexOf('=');
+ String filename = pair.substring(0, index).trim();
+ String _offset = pair.substring(index+1).trim();
+ Long offset = null;
+ try {
+ offset = new Long(_offset);
+ } catch (Exception ex) {
+ log.warn("Cannot convert '"+_offset+"' to Long in pair '"+pair+"'.",ex);
+ }
+ if (filename!=null && offset!=null)
+ offsets.put(filename, offset);
+ else
+ log.warn("Cannot parse '"+pair+"' to filename=offset pair.");
+ }
+ } catch (Exception ex) {
+ log.warn("Cannot populate offsets with string '"+data+"'.", ex);
+ }
+
+ }
+
+ private void initializeOffsets() {
+ offsets = new HashMap<String,Long>();
+ }
+
public Content getConfigNode() {
return configNode;
}
@@ -100,6 +162,8 @@
instance = this; // workaround to access module configuration;
log.debug("Starting module initialization.");
refreshCache = true;
+ // offsets = null;
+ initializeOffsets();
log.debug("Module initialization finished.");
} catch (Exception e) {
log.error("Missing configuration for jbossorg-downloads. Module is not properly initialized");
Modified: labs/jbosslabs/labs-3.0-build/integration/mgnl-modules/jbossorg-downloads/src/main/java/org/jboss/labs/magnolia/modules/downloads/DownloadsVersionHandler.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/mgnl-modules/jbossorg-downloads/src/main/java/org/jboss/labs/magnolia/modules/downloads/DownloadsVersionHandler.java 2010-01-27 12:52:59 UTC (rev 31250)
+++ labs/jbosslabs/labs-3.0-build/integration/mgnl-modules/jbossorg-downloads/src/main/java/org/jboss/labs/magnolia/modules/downloads/DownloadsVersionHandler.java 2010-01-27 13:54:03 UTC (rev 31251)
@@ -6,8 +6,10 @@
package org.jboss.labs.magnolia.modules.downloads;
import info.magnolia.cms.beans.config.ContentRepository;
+import info.magnolia.cms.core.ItemType;
import info.magnolia.module.admininterface.setup.SimpleContentVersionHandler;
import info.magnolia.module.delta.*;
+import java.util.*;
/**
* @author jchochol
@@ -46,9 +48,10 @@
);
}
+ // register deltas
register(for1_0_0);
register(for1_1_1);
-
+ // no delta for 1.2.0, everything has to be done manually
}
-
+
}
Added: labs/jbosslabs/labs-3.0-build/integration/mgnl-modules/jbossorg-downloads/src/main/java/org/jboss/labs/magnolia/modules/downloads/GAUtil.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/mgnl-modules/jbossorg-downloads/src/main/java/org/jboss/labs/magnolia/modules/downloads/GAUtil.java (rev 0)
+++ labs/jbosslabs/labs-3.0-build/integration/mgnl-modules/jbossorg-downloads/src/main/java/org/jboss/labs/magnolia/modules/downloads/GAUtil.java 2010-01-27 13:54:03 UTC (rev 31251)
@@ -0,0 +1,145 @@
+package org.jboss.labs.magnolia.modules.downloads;
+
+import com.google.gdata.client.analytics.AnalyticsService;
+import com.google.gdata.client.analytics.DataQuery;
+import com.google.gdata.data.analytics.AccountEntry;
+import com.google.gdata.data.analytics.AccountFeed;
+import com.google.gdata.data.analytics.DataEntry;
+import com.google.gdata.data.analytics.DataFeed;
+import com.google.gdata.util.ServiceException;
+
+import java.io.IOException;
+import java.net.URL;
+import java.net.MalformedURLException;
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Google Analytics utility class
+ *
+ * @author jchochol
+ *
+ */
+public class GAUtil {
+ // constants
+ public static final String ACCOUNTS_URL = "https://www.google.com/analytics/feeds/accounts/default";
+ public static final String DATA_URL = "https://www.google.com/analytics/feeds/data";
+ public static final String APPLICATION_NAME = "jbossorg-downloadsmodule-1";
+ // logger
+ private static final Logger log = LoggerFactory.getLogger(GAUtil.class);
+
+ // static fields
+ private static GAUtil instance = null;
+
+ // static methods
+ public static synchronized GAUtil getInstance() {
+ if (instance == null) instance = new GAUtil();
+ return instance;
+ }
+
+ // other methods
+
+ public Map<String,Long> getDownloadCounts(String username, String password, String filter) {
+ // create map to store results
+ Map<String,Long> map = new HashMap<String,Long>();
+ try {
+ // get the service
+ log.debug("Obtaining GA service");
+ AnalyticsService service = getAnalyticsService();
+ // Authenticate using ClientLogin
+ log.debug("Setting user credentials");
+ service.setUserCredentials(username, password);
+ // get list of all accessible accounts
+ log.debug("Getting available account for supplied credentials");
+ AccountFeed accountFeed = getAvailableAccounts(service);
+ // checking if any account is available
+ if (accountFeed.getEntries().isEmpty()) {
+ log.error("No accounts available for supplied username '"+username+"'.");
+ return null;
+ }
+ // Get the first account (=profile)
+ AccountEntry profile = accountFeed.getEntries().get(0);
+ // tableId is the profile ID
+ String tableId = profile.getTableId().getValue();
+ // Build the query
+ DataQuery query = getBasicQuery(tableId);
+ // Add filter
+ query.setFilters("ga:pagePath=~"+filter+"");
+ // And get the results
+ DataFeed results = service.getFeed(query, DataFeed.class);
+ // Now, go through results
+ for (DataEntry entry : results.getEntries()) {
+ // get page path
+ String page = entry.stringValueOf("ga:pagePath");
+ // page views (download) count
+ Long visits = entry.longValueOf("ga:pageviews");
+ // put the data into the map
+ map.put(page,visits);
+ }
+ } catch (Exception ex) {
+ log.error("Exception occured getting data from Google Analytics.", ex);
+ return null;
+ }
+ // Done
+ return map;
+ }
+
+ private AnalyticsService getAnalyticsService() {
+ AnalyticsService myService = new AnalyticsService(APPLICATION_NAME);
+ return myService;
+ }
+
+ /**
+ * Returns a data feed containing the accounts that the user logged in to the
+ * given AnalyticsService has access to.
+ *
+ * @param myService The AnalyticsService to request accounts from
+ * @return An AccountFeed containing an entry for each profile the logged-in
+ * user has access to
+ * @throws IOException If an error occurs while trying to communicate with
+ * the Analytics server
+ * @throws ServiceException If the API cannot fulfill the user request for
+ * any reason
+ */
+ private AccountFeed getAvailableAccounts(AnalyticsService myService)
+ throws IOException, ServiceException {
+
+ URL feedUrl = new URL(ACCOUNTS_URL);
+ return myService.getFeed(feedUrl, AccountFeed.class);
+ }
+
+ /**
+ * Gets a very basic data query request for the given table.
+ *
+ * @param tableId The ID of the table to request data from
+ * @return A basic query for browser, visits, and bounce information from
+ * the given table
+ * @throws MalformedURLException If the URL used to request data is malformed
+ */
+ private DataQuery getBasicQuery(String tableId) throws MalformedURLException {
+ // Set up the request (we could alternately construct a URL manually with all query parameters set)
+ DataQuery query = new DataQuery(new URL(DATA_URL));
+ // from which account
+ query.setIds(tableId);
+ // we started using GA for JBoss.org at 2009-09-15
+ query.setStartDate("2009-09-15");
+ // end date is today, we need to build proper string
+ String endDate = null;
+ synchronized (this) {
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+ endDate = sdf.format(new Date(System.currentTimeMillis()));
+ }
+ query.setEndDate(endDate);
+ // we want page paths (relative URLs)
+ query.setDimensions("ga:pagePath");
+ // and number of viewsfor each page (file)
+ query.setMetrics("ga:pageviews");
+
+ return query;
+ }
+
+
+}
Modified: labs/jbosslabs/labs-3.0-build/integration/mgnl-modules/jbossorg-downloads/src/main/resources/META-INF/magnolia/jbossorg-downloads.xml
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/mgnl-modules/jbossorg-downloads/src/main/resources/META-INF/magnolia/jbossorg-downloads.xml 2010-01-27 12:52:59 UTC (rev 31250)
+++ labs/jbosslabs/labs-3.0-build/integration/mgnl-modules/jbossorg-downloads/src/main/resources/META-INF/magnolia/jbossorg-downloads.xml 2010-01-27 13:54:03 UTC (rev 31251)
@@ -5,5 +5,5 @@
<displayName>JBoss.org Magnolia module : jbossorg-downloads</displayName>
<class>org.jboss.labs.magnolia.modules.downloads.DownloadsModule</class>
<versionHandler>org.jboss.labs.magnolia.modules.downloads.DownloadsVersionHandler</versionHandler>
- <version>1.1.1</version>
+ <version>1.2.0</version>
</module>
Modified: labs/jbosslabs/labs-3.0-build/integration/mgnl-modules/jbossorg-downloads/src/main/resources/mgnl-bootstrap/jbossorg-downloads/config.modules.jbossorg-downloads.xml
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/mgnl-modules/jbossorg-downloads/src/main/resources/mgnl-bootstrap/jbossorg-downloads/config.modules.jbossorg-downloads.xml 2010-01-27 12:52:59 UTC (rev 31250)
+++ labs/jbosslabs/labs-3.0-build/integration/mgnl-modules/jbossorg-downloads/src/main/resources/mgnl-bootstrap/jbossorg-downloads/config.modules.jbossorg-downloads.xml 2010-01-27 13:54:03 UTC (rev 31251)
@@ -11,7 +11,7 @@
<sv:value>mix:lockable</sv:value>
</sv:property>
<sv:property sv:name="version" sv:type="String">
- <sv:value>1.1.0</sv:value>
+ <sv:value>1.2.0</sv:value>
</sv:property>
<!-- CONFIGURATION -->
@@ -178,7 +178,7 @@
<sv:value>showDescription</sv:value>
</sv:property>
<sv:property sv:name="selected" sv:type="String">
- <sv:value>false</sv:value>
+ <sv:value>true</sv:value>
</sv:property>
<sv:property sv:name="type" sv:type="String">
<sv:value>Boolean</sv:value>
@@ -204,7 +204,7 @@
<sv:value>showSize</sv:value>
</sv:property>
<sv:property sv:name="selected" sv:type="String">
- <sv:value>false</sv:value>
+ <sv:value>true</sv:value>
</sv:property>
<sv:property sv:name="type" sv:type="String">
<sv:value>Boolean</sv:value>
@@ -230,12 +230,64 @@
<sv:value>showReleaseDate</sv:value>
</sv:property>
<sv:property sv:name="selected" sv:type="String">
- <sv:value>false</sv:value>
+ <sv:value>true</sv:value>
</sv:property>
<sv:property sv:name="type" sv:type="String">
<sv:value>Boolean</sv:value>
</sv:property>
</sv:node>
+ <sv:node sv:name="showVersion">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:contentNode</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:value>mix:lockable</sv:value>
+ </sv:property>
+ <sv:property sv:name="controlType" sv:type="String">
+ <sv:value>checkboxSwitch</sv:value>
+ </sv:property>
+ <sv:property sv:name="label" sv:type="String">
+ <sv:value>Version</sv:value>
+ </sv:property>
+ <sv:property sv:name="lineSemi" sv:type="String">
+ <sv:value>true</sv:value>
+ </sv:property>
+ <sv:property sv:name="name" sv:type="String">
+ <sv:value>showVersion</sv:value>
+ </sv:property>
+ <sv:property sv:name="selected" sv:type="String">
+ <sv:value>true</sv:value>
+ </sv:property>
+ <sv:property sv:name="type" sv:type="String">
+ <sv:value>Boolean</sv:value>
+ </sv:property>
+ </sv:node>
+ <sv:node sv:name="showRelNotes">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:contentNode</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:value>mix:lockable</sv:value>
+ </sv:property>
+ <sv:property sv:name="controlType" sv:type="String">
+ <sv:value>checkboxSwitch</sv:value>
+ </sv:property>
+ <sv:property sv:name="label" sv:type="String">
+ <sv:value>Release notes</sv:value>
+ </sv:property>
+ <sv:property sv:name="lineSemi" sv:type="String">
+ <sv:value>true</sv:value>
+ </sv:property>
+ <sv:property sv:name="name" sv:type="String">
+ <sv:value>showRelNotes</sv:value>
+ </sv:property>
+ <sv:property sv:name="selected" sv:type="String">
+ <sv:value>true</sv:value>
+ </sv:property>
+ <sv:property sv:name="type" sv:type="String">
+ <sv:value>Boolean</sv:value>
+ </sv:property>
+ </sv:node>
<sv:node sv:name="showLicense">
<sv:property sv:name="jcr:primaryType" sv:type="Name">
<sv:value>mgnl:contentNode</sv:value>
@@ -256,7 +308,7 @@
<sv:value>showLicense</sv:value>
</sv:property>
<sv:property sv:name="selected" sv:type="String">
- <sv:value>false</sv:value>
+ <sv:value>true</sv:value>
</sv:property>
<sv:property sv:name="type" sv:type="String">
<sv:value>Boolean</sv:value>
@@ -454,6 +506,52 @@
<sv:value>Date</sv:value>
</sv:property>
</sv:node>
+ <sv:node sv:name="version01">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:contentNode</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:value>mix:lockable</sv:value>
+ </sv:property>
+ <sv:property sv:name="controlType" sv:type="String">
+ <sv:value>edit</sv:value>
+ </sv:property>
+ <sv:property sv:name="label" sv:type="String">
+ <sv:value>Version</sv:value>
+ </sv:property>
+ <sv:property sv:name="lineSemi" sv:type="String">
+ <sv:value>true</sv:value>
+ </sv:property>
+ <sv:property sv:name="rows" sv:type="String">
+ <sv:value>1</sv:value>
+ </sv:property>
+ <sv:property sv:name="type" sv:type="String">
+ <sv:value>String</sv:value>
+ </sv:property>
+ </sv:node>
+ <sv:node sv:name="relNotes01">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:contentNode</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:value>mix:lockable</sv:value>
+ </sv:property>
+ <sv:property sv:name="controlType" sv:type="String">
+ <sv:value>edit</sv:value>
+ </sv:property>
+ <sv:property sv:name="label" sv:type="String">
+ <sv:value>Release notes URL</sv:value>
+ </sv:property>
+ <sv:property sv:name="lineSemi" sv:type="String">
+ <sv:value>true</sv:value>
+ </sv:property>
+ <sv:property sv:name="rows" sv:type="String">
+ <sv:value>1</sv:value>
+ </sv:property>
+ <sv:property sv:name="type" sv:type="String">
+ <sv:value>String</sv:value>
+ </sv:property>
+ </sv:node>
<sv:node sv:name="license01">
<sv:property sv:name="jcr:primaryType" sv:type="Name">
<sv:value>mgnl:contentNode</sv:value>
@@ -633,6 +731,52 @@
<sv:value>Date</sv:value>
</sv:property>
</sv:node>
+ <sv:node sv:name="version02">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:contentNode</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:value>mix:lockable</sv:value>
+ </sv:property>
+ <sv:property sv:name="controlType" sv:type="String">
+ <sv:value>edit</sv:value>
+ </sv:property>
+ <sv:property sv:name="label" sv:type="String">
+ <sv:value>Version</sv:value>
+ </sv:property>
+ <sv:property sv:name="lineSemi" sv:type="String">
+ <sv:value>true</sv:value>
+ </sv:property>
+ <sv:property sv:name="rows" sv:type="String">
+ <sv:value>1</sv:value>
+ </sv:property>
+ <sv:property sv:name="type" sv:type="String">
+ <sv:value>String</sv:value>
+ </sv:property>
+ </sv:node>
+ <sv:node sv:name="relNotes02">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:contentNode</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:value>mix:lockable</sv:value>
+ </sv:property>
+ <sv:property sv:name="controlType" sv:type="String">
+ <sv:value>edit</sv:value>
+ </sv:property>
+ <sv:property sv:name="label" sv:type="String">
+ <sv:value>Release notes URL</sv:value>
+ </sv:property>
+ <sv:property sv:name="lineSemi" sv:type="String">
+ <sv:value>true</sv:value>
+ </sv:property>
+ <sv:property sv:name="rows" sv:type="String">
+ <sv:value>1</sv:value>
+ </sv:property>
+ <sv:property sv:name="type" sv:type="String">
+ <sv:value>String</sv:value>
+ </sv:property>
+ </sv:node>
<sv:node sv:name="license02">
<sv:property sv:name="jcr:primaryType" sv:type="Name">
<sv:value>mgnl:contentNode</sv:value>
@@ -812,6 +956,52 @@
<sv:value>Date</sv:value>
</sv:property>
</sv:node>
+ <sv:node sv:name="version03">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:contentNode</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:value>mix:lockable</sv:value>
+ </sv:property>
+ <sv:property sv:name="controlType" sv:type="String">
+ <sv:value>edit</sv:value>
+ </sv:property>
+ <sv:property sv:name="label" sv:type="String">
+ <sv:value>Version</sv:value>
+ </sv:property>
+ <sv:property sv:name="lineSemi" sv:type="String">
+ <sv:value>true</sv:value>
+ </sv:property>
+ <sv:property sv:name="rows" sv:type="String">
+ <sv:value>1</sv:value>
+ </sv:property>
+ <sv:property sv:name="type" sv:type="String">
+ <sv:value>String</sv:value>
+ </sv:property>
+ </sv:node>
+ <sv:node sv:name="relNotes03">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:contentNode</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:value>mix:lockable</sv:value>
+ </sv:property>
+ <sv:property sv:name="controlType" sv:type="String">
+ <sv:value>edit</sv:value>
+ </sv:property>
+ <sv:property sv:name="label" sv:type="String">
+ <sv:value>Release notes URL</sv:value>
+ </sv:property>
+ <sv:property sv:name="lineSemi" sv:type="String">
+ <sv:value>true</sv:value>
+ </sv:property>
+ <sv:property sv:name="rows" sv:type="String">
+ <sv:value>1</sv:value>
+ </sv:property>
+ <sv:property sv:name="type" sv:type="String">
+ <sv:value>String</sv:value>
+ </sv:property>
+ </sv:node>
<sv:node sv:name="license03">
<sv:property sv:name="jcr:primaryType" sv:type="Name">
<sv:value>mgnl:contentNode</sv:value>
@@ -991,6 +1181,52 @@
<sv:value>Date</sv:value>
</sv:property>
</sv:node>
+ <sv:node sv:name="version04">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:contentNode</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:value>mix:lockable</sv:value>
+ </sv:property>
+ <sv:property sv:name="controlType" sv:type="String">
+ <sv:value>edit</sv:value>
+ </sv:property>
+ <sv:property sv:name="label" sv:type="String">
+ <sv:value>Version</sv:value>
+ </sv:property>
+ <sv:property sv:name="lineSemi" sv:type="String">
+ <sv:value>true</sv:value>
+ </sv:property>
+ <sv:property sv:name="rows" sv:type="String">
+ <sv:value>1</sv:value>
+ </sv:property>
+ <sv:property sv:name="type" sv:type="String">
+ <sv:value>String</sv:value>
+ </sv:property>
+ </sv:node>
+ <sv:node sv:name="relNotes04">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:contentNode</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:value>mix:lockable</sv:value>
+ </sv:property>
+ <sv:property sv:name="controlType" sv:type="String">
+ <sv:value>edit</sv:value>
+ </sv:property>
+ <sv:property sv:name="label" sv:type="String">
+ <sv:value>Release notes URL</sv:value>
+ </sv:property>
+ <sv:property sv:name="lineSemi" sv:type="String">
+ <sv:value>true</sv:value>
+ </sv:property>
+ <sv:property sv:name="rows" sv:type="String">
+ <sv:value>1</sv:value>
+ </sv:property>
+ <sv:property sv:name="type" sv:type="String">
+ <sv:value>String</sv:value>
+ </sv:property>
+ </sv:node>
<sv:node sv:name="license04">
<sv:property sv:name="jcr:primaryType" sv:type="Name">
<sv:value>mgnl:contentNode</sv:value>
@@ -1170,6 +1406,52 @@
<sv:value>Date</sv:value>
</sv:property>
</sv:node>
+ <sv:node sv:name="version05">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:contentNode</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:value>mix:lockable</sv:value>
+ </sv:property>
+ <sv:property sv:name="controlType" sv:type="String">
+ <sv:value>edit</sv:value>
+ </sv:property>
+ <sv:property sv:name="label" sv:type="String">
+ <sv:value>Version</sv:value>
+ </sv:property>
+ <sv:property sv:name="lineSemi" sv:type="String">
+ <sv:value>true</sv:value>
+ </sv:property>
+ <sv:property sv:name="rows" sv:type="String">
+ <sv:value>1</sv:value>
+ </sv:property>
+ <sv:property sv:name="type" sv:type="String">
+ <sv:value>String</sv:value>
+ </sv:property>
+ </sv:node>
+ <sv:node sv:name="relNotes05">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:contentNode</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:value>mix:lockable</sv:value>
+ </sv:property>
+ <sv:property sv:name="controlType" sv:type="String">
+ <sv:value>edit</sv:value>
+ </sv:property>
+ <sv:property sv:name="label" sv:type="String">
+ <sv:value>Release notes URL</sv:value>
+ </sv:property>
+ <sv:property sv:name="lineSemi" sv:type="String">
+ <sv:value>true</sv:value>
+ </sv:property>
+ <sv:property sv:name="rows" sv:type="String">
+ <sv:value>1</sv:value>
+ </sv:property>
+ <sv:property sv:name="type" sv:type="String">
+ <sv:value>String</sv:value>
+ </sv:property>
+ </sv:node>
<sv:node sv:name="license05">
<sv:property sv:name="jcr:primaryType" sv:type="Name">
<sv:value>mgnl:contentNode</sv:value>
@@ -1349,6 +1631,52 @@
<sv:value>Date</sv:value>
</sv:property>
</sv:node>
+ <sv:node sv:name="version06">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:contentNode</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:value>mix:lockable</sv:value>
+ </sv:property>
+ <sv:property sv:name="controlType" sv:type="String">
+ <sv:value>edit</sv:value>
+ </sv:property>
+ <sv:property sv:name="label" sv:type="String">
+ <sv:value>Version</sv:value>
+ </sv:property>
+ <sv:property sv:name="lineSemi" sv:type="String">
+ <sv:value>true</sv:value>
+ </sv:property>
+ <sv:property sv:name="rows" sv:type="String">
+ <sv:value>1</sv:value>
+ </sv:property>
+ <sv:property sv:name="type" sv:type="String">
+ <sv:value>String</sv:value>
+ </sv:property>
+ </sv:node>
+ <sv:node sv:name="relNotes06">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:contentNode</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:value>mix:lockable</sv:value>
+ </sv:property>
+ <sv:property sv:name="controlType" sv:type="String">
+ <sv:value>edit</sv:value>
+ </sv:property>
+ <sv:property sv:name="label" sv:type="String">
+ <sv:value>Release notes URL</sv:value>
+ </sv:property>
+ <sv:property sv:name="lineSemi" sv:type="String">
+ <sv:value>true</sv:value>
+ </sv:property>
+ <sv:property sv:name="rows" sv:type="String">
+ <sv:value>1</sv:value>
+ </sv:property>
+ <sv:property sv:name="type" sv:type="String">
+ <sv:value>String</sv:value>
+ </sv:property>
+ </sv:node>
<sv:node sv:name="license06">
<sv:property sv:name="jcr:primaryType" sv:type="Name">
<sv:value>mgnl:contentNode</sv:value>
@@ -1528,6 +1856,52 @@
<sv:value>Date</sv:value>
</sv:property>
</sv:node>
+ <sv:node sv:name="version07">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:contentNode</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:value>mix:lockable</sv:value>
+ </sv:property>
+ <sv:property sv:name="controlType" sv:type="String">
+ <sv:value>edit</sv:value>
+ </sv:property>
+ <sv:property sv:name="label" sv:type="String">
+ <sv:value>Version</sv:value>
+ </sv:property>
+ <sv:property sv:name="lineSemi" sv:type="String">
+ <sv:value>true</sv:value>
+ </sv:property>
+ <sv:property sv:name="rows" sv:type="String">
+ <sv:value>1</sv:value>
+ </sv:property>
+ <sv:property sv:name="type" sv:type="String">
+ <sv:value>String</sv:value>
+ </sv:property>
+ </sv:node>
+ <sv:node sv:name="relNotes07">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:contentNode</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:value>mix:lockable</sv:value>
+ </sv:property>
+ <sv:property sv:name="controlType" sv:type="String">
+ <sv:value>edit</sv:value>
+ </sv:property>
+ <sv:property sv:name="label" sv:type="String">
+ <sv:value>Release notes URL</sv:value>
+ </sv:property>
+ <sv:property sv:name="lineSemi" sv:type="String">
+ <sv:value>true</sv:value>
+ </sv:property>
+ <sv:property sv:name="rows" sv:type="String">
+ <sv:value>1</sv:value>
+ </sv:property>
+ <sv:property sv:name="type" sv:type="String">
+ <sv:value>String</sv:value>
+ </sv:property>
+ </sv:node>
<sv:node sv:name="license07">
<sv:property sv:name="jcr:primaryType" sv:type="Name">
<sv:value>mgnl:contentNode</sv:value>
@@ -1707,6 +2081,52 @@
<sv:value>Date</sv:value>
</sv:property>
</sv:node>
+ <sv:node sv:name="version08">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:contentNode</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:value>mix:lockable</sv:value>
+ </sv:property>
+ <sv:property sv:name="controlType" sv:type="String">
+ <sv:value>edit</sv:value>
+ </sv:property>
+ <sv:property sv:name="label" sv:type="String">
+ <sv:value>Version</sv:value>
+ </sv:property>
+ <sv:property sv:name="lineSemi" sv:type="String">
+ <sv:value>true</sv:value>
+ </sv:property>
+ <sv:property sv:name="rows" sv:type="String">
+ <sv:value>1</sv:value>
+ </sv:property>
+ <sv:property sv:name="type" sv:type="String">
+ <sv:value>String</sv:value>
+ </sv:property>
+ </sv:node>
+ <sv:node sv:name="relNotes08">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:contentNode</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:value>mix:lockable</sv:value>
+ </sv:property>
+ <sv:property sv:name="controlType" sv:type="String">
+ <sv:value>edit</sv:value>
+ </sv:property>
+ <sv:property sv:name="label" sv:type="String">
+ <sv:value>Release notes URL</sv:value>
+ </sv:property>
+ <sv:property sv:name="lineSemi" sv:type="String">
+ <sv:value>true</sv:value>
+ </sv:property>
+ <sv:property sv:name="rows" sv:type="String">
+ <sv:value>1</sv:value>
+ </sv:property>
+ <sv:property sv:name="type" sv:type="String">
+ <sv:value>String</sv:value>
+ </sv:property>
+ </sv:node>
<sv:node sv:name="license08">
<sv:property sv:name="jcr:primaryType" sv:type="Name">
<sv:value>mgnl:contentNode</sv:value>
@@ -1886,6 +2306,52 @@
<sv:value>Date</sv:value>
</sv:property>
</sv:node>
+ <sv:node sv:name="version09">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:contentNode</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:value>mix:lockable</sv:value>
+ </sv:property>
+ <sv:property sv:name="controlType" sv:type="String">
+ <sv:value>edit</sv:value>
+ </sv:property>
+ <sv:property sv:name="label" sv:type="String">
+ <sv:value>Version</sv:value>
+ </sv:property>
+ <sv:property sv:name="lineSemi" sv:type="String">
+ <sv:value>true</sv:value>
+ </sv:property>
+ <sv:property sv:name="rows" sv:type="String">
+ <sv:value>1</sv:value>
+ </sv:property>
+ <sv:property sv:name="type" sv:type="String">
+ <sv:value>String</sv:value>
+ </sv:property>
+ </sv:node>
+ <sv:node sv:name="relNotes09">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:contentNode</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:value>mix:lockable</sv:value>
+ </sv:property>
+ <sv:property sv:name="controlType" sv:type="String">
+ <sv:value>edit</sv:value>
+ </sv:property>
+ <sv:property sv:name="label" sv:type="String">
+ <sv:value>Release notes URL</sv:value>
+ </sv:property>
+ <sv:property sv:name="lineSemi" sv:type="String">
+ <sv:value>true</sv:value>
+ </sv:property>
+ <sv:property sv:name="rows" sv:type="String">
+ <sv:value>1</sv:value>
+ </sv:property>
+ <sv:property sv:name="type" sv:type="String">
+ <sv:value>String</sv:value>
+ </sv:property>
+ </sv:node>
<sv:node sv:name="license09">
<sv:property sv:name="jcr:primaryType" sv:type="Name">
<sv:value>mgnl:contentNode</sv:value>
@@ -2065,6 +2531,52 @@
<sv:value>Date</sv:value>
</sv:property>
</sv:node>
+ <sv:node sv:name="version10">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:contentNode</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:value>mix:lockable</sv:value>
+ </sv:property>
+ <sv:property sv:name="controlType" sv:type="String">
+ <sv:value>edit</sv:value>
+ </sv:property>
+ <sv:property sv:name="label" sv:type="String">
+ <sv:value>Version</sv:value>
+ </sv:property>
+ <sv:property sv:name="lineSemi" sv:type="String">
+ <sv:value>true</sv:value>
+ </sv:property>
+ <sv:property sv:name="rows" sv:type="String">
+ <sv:value>1</sv:value>
+ </sv:property>
+ <sv:property sv:name="type" sv:type="String">
+ <sv:value>String</sv:value>
+ </sv:property>
+ </sv:node>
+ <sv:node sv:name="relNotes10">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:contentNode</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:value>mix:lockable</sv:value>
+ </sv:property>
+ <sv:property sv:name="controlType" sv:type="String">
+ <sv:value>edit</sv:value>
+ </sv:property>
+ <sv:property sv:name="label" sv:type="String">
+ <sv:value>Release notes URL</sv:value>
+ </sv:property>
+ <sv:property sv:name="lineSemi" sv:type="String">
+ <sv:value>true</sv:value>
+ </sv:property>
+ <sv:property sv:name="rows" sv:type="String">
+ <sv:value>1</sv:value>
+ </sv:property>
+ <sv:property sv:name="type" sv:type="String">
+ <sv:value>String</sv:value>
+ </sv:property>
+ </sv:node>
<sv:node sv:name="license10">
<sv:property sv:name="jcr:primaryType" sv:type="Name">
<sv:value>mgnl:contentNode</sv:value>
@@ -2279,6 +2791,52 @@
<sv:value>Date</sv:value>
</sv:property>
</sv:node>
+ <sv:node sv:name="version11">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:contentNode</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:value>mix:lockable</sv:value>
+ </sv:property>
+ <sv:property sv:name="controlType" sv:type="String">
+ <sv:value>edit</sv:value>
+ </sv:property>
+ <sv:property sv:name="label" sv:type="String">
+ <sv:value>Version</sv:value>
+ </sv:property>
+ <sv:property sv:name="lineSemi" sv:type="String">
+ <sv:value>true</sv:value>
+ </sv:property>
+ <sv:property sv:name="rows" sv:type="String">
+ <sv:value>1</sv:value>
+ </sv:property>
+ <sv:property sv:name="type" sv:type="String">
+ <sv:value>String</sv:value>
+ </sv:property>
+ </sv:node>
+ <sv:node sv:name="relNotes11">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:contentNode</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:value>mix:lockable</sv:value>
+ </sv:property>
+ <sv:property sv:name="controlType" sv:type="String">
+ <sv:value>edit</sv:value>
+ </sv:property>
+ <sv:property sv:name="label" sv:type="String">
+ <sv:value>Release notes URL</sv:value>
+ </sv:property>
+ <sv:property sv:name="lineSemi" sv:type="String">
+ <sv:value>true</sv:value>
+ </sv:property>
+ <sv:property sv:name="rows" sv:type="String">
+ <sv:value>1</sv:value>
+ </sv:property>
+ <sv:property sv:name="type" sv:type="String">
+ <sv:value>String</sv:value>
+ </sv:property>
+ </sv:node>
<sv:node sv:name="license11">
<sv:property sv:name="jcr:primaryType" sv:type="Name">
<sv:value>mgnl:contentNode</sv:value>
@@ -2458,6 +3016,52 @@
<sv:value>Date</sv:value>
</sv:property>
</sv:node>
+ <sv:node sv:name="version12">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:contentNode</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:value>mix:lockable</sv:value>
+ </sv:property>
+ <sv:property sv:name="controlType" sv:type="String">
+ <sv:value>edit</sv:value>
+ </sv:property>
+ <sv:property sv:name="label" sv:type="String">
+ <sv:value>Version</sv:value>
+ </sv:property>
+ <sv:property sv:name="lineSemi" sv:type="String">
+ <sv:value>true</sv:value>
+ </sv:property>
+ <sv:property sv:name="rows" sv:type="String">
+ <sv:value>1</sv:value>
+ </sv:property>
+ <sv:property sv:name="type" sv:type="String">
+ <sv:value>String</sv:value>
+ </sv:property>
+ </sv:node>
+ <sv:node sv:name="relNotes12">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:contentNode</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:value>mix:lockable</sv:value>
+ </sv:property>
+ <sv:property sv:name="controlType" sv:type="String">
+ <sv:value>edit</sv:value>
+ </sv:property>
+ <sv:property sv:name="label" sv:type="String">
+ <sv:value>Release notes URL</sv:value>
+ </sv:property>
+ <sv:property sv:name="lineSemi" sv:type="String">
+ <sv:value>true</sv:value>
+ </sv:property>
+ <sv:property sv:name="rows" sv:type="String">
+ <sv:value>1</sv:value>
+ </sv:property>
+ <sv:property sv:name="type" sv:type="String">
+ <sv:value>String</sv:value>
+ </sv:property>
+ </sv:node>
<sv:node sv:name="license12">
<sv:property sv:name="jcr:primaryType" sv:type="Name">
<sv:value>mgnl:contentNode</sv:value>
@@ -2637,6 +3241,52 @@
<sv:value>Date</sv:value>
</sv:property>
</sv:node>
+ <sv:node sv:name="version13">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:contentNode</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:value>mix:lockable</sv:value>
+ </sv:property>
+ <sv:property sv:name="controlType" sv:type="String">
+ <sv:value>edit</sv:value>
+ </sv:property>
+ <sv:property sv:name="label" sv:type="String">
+ <sv:value>Version</sv:value>
+ </sv:property>
+ <sv:property sv:name="lineSemi" sv:type="String">
+ <sv:value>true</sv:value>
+ </sv:property>
+ <sv:property sv:name="rows" sv:type="String">
+ <sv:value>1</sv:value>
+ </sv:property>
+ <sv:property sv:name="type" sv:type="String">
+ <sv:value>String</sv:value>
+ </sv:property>
+ </sv:node>
+ <sv:node sv:name="relNotes13">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:contentNode</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:value>mix:lockable</sv:value>
+ </sv:property>
+ <sv:property sv:name="controlType" sv:type="String">
+ <sv:value>edit</sv:value>
+ </sv:property>
+ <sv:property sv:name="label" sv:type="String">
+ <sv:value>Release notes URL</sv:value>
+ </sv:property>
+ <sv:property sv:name="lineSemi" sv:type="String">
+ <sv:value>true</sv:value>
+ </sv:property>
+ <sv:property sv:name="rows" sv:type="String">
+ <sv:value>1</sv:value>
+ </sv:property>
+ <sv:property sv:name="type" sv:type="String">
+ <sv:value>String</sv:value>
+ </sv:property>
+ </sv:node>
<sv:node sv:name="license13">
<sv:property sv:name="jcr:primaryType" sv:type="Name">
<sv:value>mgnl:contentNode</sv:value>
@@ -2816,6 +3466,52 @@
<sv:value>Date</sv:value>
</sv:property>
</sv:node>
+ <sv:node sv:name="version14">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:contentNode</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:value>mix:lockable</sv:value>
+ </sv:property>
+ <sv:property sv:name="controlType" sv:type="String">
+ <sv:value>edit</sv:value>
+ </sv:property>
+ <sv:property sv:name="label" sv:type="String">
+ <sv:value>Version</sv:value>
+ </sv:property>
+ <sv:property sv:name="lineSemi" sv:type="String">
+ <sv:value>true</sv:value>
+ </sv:property>
+ <sv:property sv:name="rows" sv:type="String">
+ <sv:value>1</sv:value>
+ </sv:property>
+ <sv:property sv:name="type" sv:type="String">
+ <sv:value>String</sv:value>
+ </sv:property>
+ </sv:node>
+ <sv:node sv:name="relNotes14">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:contentNode</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:value>mix:lockable</sv:value>
+ </sv:property>
+ <sv:property sv:name="controlType" sv:type="String">
+ <sv:value>edit</sv:value>
+ </sv:property>
+ <sv:property sv:name="label" sv:type="String">
+ <sv:value>Release notes URL</sv:value>
+ </sv:property>
+ <sv:property sv:name="lineSemi" sv:type="String">
+ <sv:value>true</sv:value>
+ </sv:property>
+ <sv:property sv:name="rows" sv:type="String">
+ <sv:value>1</sv:value>
+ </sv:property>
+ <sv:property sv:name="type" sv:type="String">
+ <sv:value>String</sv:value>
+ </sv:property>
+ </sv:node>
<sv:node sv:name="license14">
<sv:property sv:name="jcr:primaryType" sv:type="Name">
<sv:value>mgnl:contentNode</sv:value>
@@ -2995,6 +3691,52 @@
<sv:value>Date</sv:value>
</sv:property>
</sv:node>
+ <sv:node sv:name="version15">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:contentNode</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:value>mix:lockable</sv:value>
+ </sv:property>
+ <sv:property sv:name="controlType" sv:type="String">
+ <sv:value>edit</sv:value>
+ </sv:property>
+ <sv:property sv:name="label" sv:type="String">
+ <sv:value>Version</sv:value>
+ </sv:property>
+ <sv:property sv:name="lineSemi" sv:type="String">
+ <sv:value>true</sv:value>
+ </sv:property>
+ <sv:property sv:name="rows" sv:type="String">
+ <sv:value>1</sv:value>
+ </sv:property>
+ <sv:property sv:name="type" sv:type="String">
+ <sv:value>String</sv:value>
+ </sv:property>
+ </sv:node>
+ <sv:node sv:name="relNotes15">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:contentNode</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:value>mix:lockable</sv:value>
+ </sv:property>
+ <sv:property sv:name="controlType" sv:type="String">
+ <sv:value>edit</sv:value>
+ </sv:property>
+ <sv:property sv:name="label" sv:type="String">
+ <sv:value>Release notes URL</sv:value>
+ </sv:property>
+ <sv:property sv:name="lineSemi" sv:type="String">
+ <sv:value>true</sv:value>
+ </sv:property>
+ <sv:property sv:name="rows" sv:type="String">
+ <sv:value>1</sv:value>
+ </sv:property>
+ <sv:property sv:name="type" sv:type="String">
+ <sv:value>String</sv:value>
+ </sv:property>
+ </sv:node>
<sv:node sv:name="license15">
<sv:property sv:name="jcr:primaryType" sv:type="Name">
<sv:value>mgnl:contentNode</sv:value>
@@ -3174,6 +3916,52 @@
<sv:value>Date</sv:value>
</sv:property>
</sv:node>
+ <sv:node sv:name="version16">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:contentNode</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:value>mix:lockable</sv:value>
+ </sv:property>
+ <sv:property sv:name="controlType" sv:type="String">
+ <sv:value>edit</sv:value>
+ </sv:property>
+ <sv:property sv:name="label" sv:type="String">
+ <sv:value>Version</sv:value>
+ </sv:property>
+ <sv:property sv:name="lineSemi" sv:type="String">
+ <sv:value>true</sv:value>
+ </sv:property>
+ <sv:property sv:name="rows" sv:type="String">
+ <sv:value>1</sv:value>
+ </sv:property>
+ <sv:property sv:name="type" sv:type="String">
+ <sv:value>String</sv:value>
+ </sv:property>
+ </sv:node>
+ <sv:node sv:name="relNotes16">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:contentNode</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:value>mix:lockable</sv:value>
+ </sv:property>
+ <sv:property sv:name="controlType" sv:type="String">
+ <sv:value>edit</sv:value>
+ </sv:property>
+ <sv:property sv:name="label" sv:type="String">
+ <sv:value>Release notes URL</sv:value>
+ </sv:property>
+ <sv:property sv:name="lineSemi" sv:type="String">
+ <sv:value>true</sv:value>
+ </sv:property>
+ <sv:property sv:name="rows" sv:type="String">
+ <sv:value>1</sv:value>
+ </sv:property>
+ <sv:property sv:name="type" sv:type="String">
+ <sv:value>String</sv:value>
+ </sv:property>
+ </sv:node>
<sv:node sv:name="license16">
<sv:property sv:name="jcr:primaryType" sv:type="Name">
<sv:value>mgnl:contentNode</sv:value>
@@ -3353,6 +4141,52 @@
<sv:value>Date</sv:value>
</sv:property>
</sv:node>
+ <sv:node sv:name="version17">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:contentNode</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:value>mix:lockable</sv:value>
+ </sv:property>
+ <sv:property sv:name="controlType" sv:type="String">
+ <sv:value>edit</sv:value>
+ </sv:property>
+ <sv:property sv:name="label" sv:type="String">
+ <sv:value>Version</sv:value>
+ </sv:property>
+ <sv:property sv:name="lineSemi" sv:type="String">
+ <sv:value>true</sv:value>
+ </sv:property>
+ <sv:property sv:name="rows" sv:type="String">
+ <sv:value>1</sv:value>
+ </sv:property>
+ <sv:property sv:name="type" sv:type="String">
+ <sv:value>String</sv:value>
+ </sv:property>
+ </sv:node>
+ <sv:node sv:name="relNotes17">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:contentNode</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:value>mix:lockable</sv:value>
+ </sv:property>
+ <sv:property sv:name="controlType" sv:type="String">
+ <sv:value>edit</sv:value>
+ </sv:property>
+ <sv:property sv:name="label" sv:type="String">
+ <sv:value>Release notes URL</sv:value>
+ </sv:property>
+ <sv:property sv:name="lineSemi" sv:type="String">
+ <sv:value>true</sv:value>
+ </sv:property>
+ <sv:property sv:name="rows" sv:type="String">
+ <sv:value>1</sv:value>
+ </sv:property>
+ <sv:property sv:name="type" sv:type="String">
+ <sv:value>String</sv:value>
+ </sv:property>
+ </sv:node>
<sv:node sv:name="license17">
<sv:property sv:name="jcr:primaryType" sv:type="Name">
<sv:value>mgnl:contentNode</sv:value>
@@ -3532,6 +4366,52 @@
<sv:value>Date</sv:value>
</sv:property>
</sv:node>
+ <sv:node sv:name="version18">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:contentNode</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:value>mix:lockable</sv:value>
+ </sv:property>
+ <sv:property sv:name="controlType" sv:type="String">
+ <sv:value>edit</sv:value>
+ </sv:property>
+ <sv:property sv:name="label" sv:type="String">
+ <sv:value>Version</sv:value>
+ </sv:property>
+ <sv:property sv:name="lineSemi" sv:type="String">
+ <sv:value>true</sv:value>
+ </sv:property>
+ <sv:property sv:name="rows" sv:type="String">
+ <sv:value>1</sv:value>
+ </sv:property>
+ <sv:property sv:name="type" sv:type="String">
+ <sv:value>String</sv:value>
+ </sv:property>
+ </sv:node>
+ <sv:node sv:name="relNotes18">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:contentNode</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:value>mix:lockable</sv:value>
+ </sv:property>
+ <sv:property sv:name="controlType" sv:type="String">
+ <sv:value>edit</sv:value>
+ </sv:property>
+ <sv:property sv:name="label" sv:type="String">
+ <sv:value>Release notes URL</sv:value>
+ </sv:property>
+ <sv:property sv:name="lineSemi" sv:type="String">
+ <sv:value>true</sv:value>
+ </sv:property>
+ <sv:property sv:name="rows" sv:type="String">
+ <sv:value>1</sv:value>
+ </sv:property>
+ <sv:property sv:name="type" sv:type="String">
+ <sv:value>String</sv:value>
+ </sv:property>
+ </sv:node>
<sv:node sv:name="license18">
<sv:property sv:name="jcr:primaryType" sv:type="Name">
<sv:value>mgnl:contentNode</sv:value>
@@ -3711,6 +4591,52 @@
<sv:value>Date</sv:value>
</sv:property>
</sv:node>
+ <sv:node sv:name="version19">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:contentNode</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:value>mix:lockable</sv:value>
+ </sv:property>
+ <sv:property sv:name="controlType" sv:type="String">
+ <sv:value>edit</sv:value>
+ </sv:property>
+ <sv:property sv:name="label" sv:type="String">
+ <sv:value>Version</sv:value>
+ </sv:property>
+ <sv:property sv:name="lineSemi" sv:type="String">
+ <sv:value>true</sv:value>
+ </sv:property>
+ <sv:property sv:name="rows" sv:type="String">
+ <sv:value>1</sv:value>
+ </sv:property>
+ <sv:property sv:name="type" sv:type="String">
+ <sv:value>String</sv:value>
+ </sv:property>
+ </sv:node>
+ <sv:node sv:name="relNotes19">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:contentNode</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:value>mix:lockable</sv:value>
+ </sv:property>
+ <sv:property sv:name="controlType" sv:type="String">
+ <sv:value>edit</sv:value>
+ </sv:property>
+ <sv:property sv:name="label" sv:type="String">
+ <sv:value>Release notes URL</sv:value>
+ </sv:property>
+ <sv:property sv:name="lineSemi" sv:type="String">
+ <sv:value>true</sv:value>
+ </sv:property>
+ <sv:property sv:name="rows" sv:type="String">
+ <sv:value>1</sv:value>
+ </sv:property>
+ <sv:property sv:name="type" sv:type="String">
+ <sv:value>String</sv:value>
+ </sv:property>
+ </sv:node>
<sv:node sv:name="license19">
<sv:property sv:name="jcr:primaryType" sv:type="Name">
<sv:value>mgnl:contentNode</sv:value>
@@ -3890,6 +4816,52 @@
<sv:value>Date</sv:value>
</sv:property>
</sv:node>
+ <sv:node sv:name="version20">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:contentNode</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:value>mix:lockable</sv:value>
+ </sv:property>
+ <sv:property sv:name="controlType" sv:type="String">
+ <sv:value>edit</sv:value>
+ </sv:property>
+ <sv:property sv:name="label" sv:type="String">
+ <sv:value>Version</sv:value>
+ </sv:property>
+ <sv:property sv:name="lineSemi" sv:type="String">
+ <sv:value>true</sv:value>
+ </sv:property>
+ <sv:property sv:name="rows" sv:type="String">
+ <sv:value>1</sv:value>
+ </sv:property>
+ <sv:property sv:name="type" sv:type="String">
+ <sv:value>String</sv:value>
+ </sv:property>
+ </sv:node>
+ <sv:node sv:name="relNotes20">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:contentNode</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:value>mix:lockable</sv:value>
+ </sv:property>
+ <sv:property sv:name="controlType" sv:type="String">
+ <sv:value>edit</sv:value>
+ </sv:property>
+ <sv:property sv:name="label" sv:type="String">
+ <sv:value>Release notes URL</sv:value>
+ </sv:property>
+ <sv:property sv:name="lineSemi" sv:type="String">
+ <sv:value>true</sv:value>
+ </sv:property>
+ <sv:property sv:name="rows" sv:type="String">
+ <sv:value>1</sv:value>
+ </sv:property>
+ <sv:property sv:name="type" sv:type="String">
+ <sv:value>String</sv:value>
+ </sv:property>
+ </sv:node>
<sv:node sv:name="license20">
<sv:property sv:name="jcr:primaryType" sv:type="Name">
<sv:value>mgnl:contentNode</sv:value>
@@ -4104,6 +5076,52 @@
<sv:value>Date</sv:value>
</sv:property>
</sv:node>
+ <sv:node sv:name="version21">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:contentNode</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:value>mix:lockable</sv:value>
+ </sv:property>
+ <sv:property sv:name="controlType" sv:type="String">
+ <sv:value>edit</sv:value>
+ </sv:property>
+ <sv:property sv:name="label" sv:type="String">
+ <sv:value>Version</sv:value>
+ </sv:property>
+ <sv:property sv:name="lineSemi" sv:type="String">
+ <sv:value>true</sv:value>
+ </sv:property>
+ <sv:property sv:name="rows" sv:type="String">
+ <sv:value>1</sv:value>
+ </sv:property>
+ <sv:property sv:name="type" sv:type="String">
+ <sv:value>String</sv:value>
+ </sv:property>
+ </sv:node>
+ <sv:node sv:name="relNotes21">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:contentNode</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:value>mix:lockable</sv:value>
+ </sv:property>
+ <sv:property sv:name="controlType" sv:type="String">
+ <sv:value>edit</sv:value>
+ </sv:property>
+ <sv:property sv:name="label" sv:type="String">
+ <sv:value>Release notes URL</sv:value>
+ </sv:property>
+ <sv:property sv:name="lineSemi" sv:type="String">
+ <sv:value>true</sv:value>
+ </sv:property>
+ <sv:property sv:name="rows" sv:type="String">
+ <sv:value>1</sv:value>
+ </sv:property>
+ <sv:property sv:name="type" sv:type="String">
+ <sv:value>String</sv:value>
+ </sv:property>
+ </sv:node>
<sv:node sv:name="license21">
<sv:property sv:name="jcr:primaryType" sv:type="Name">
<sv:value>mgnl:contentNode</sv:value>
@@ -4283,6 +5301,52 @@
<sv:value>Date</sv:value>
</sv:property>
</sv:node>
+ <sv:node sv:name="version22">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:contentNode</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:value>mix:lockable</sv:value>
+ </sv:property>
+ <sv:property sv:name="controlType" sv:type="String">
+ <sv:value>edit</sv:value>
+ </sv:property>
+ <sv:property sv:name="label" sv:type="String">
+ <sv:value>Version</sv:value>
+ </sv:property>
+ <sv:property sv:name="lineSemi" sv:type="String">
+ <sv:value>true</sv:value>
+ </sv:property>
+ <sv:property sv:name="rows" sv:type="String">
+ <sv:value>1</sv:value>
+ </sv:property>
+ <sv:property sv:name="type" sv:type="String">
+ <sv:value>String</sv:value>
+ </sv:property>
+ </sv:node>
+ <sv:node sv:name="relNotes22">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:contentNode</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:value>mix:lockable</sv:value>
+ </sv:property>
+ <sv:property sv:name="controlType" sv:type="String">
+ <sv:value>edit</sv:value>
+ </sv:property>
+ <sv:property sv:name="label" sv:type="String">
+ <sv:value>Release notes URL</sv:value>
+ </sv:property>
+ <sv:property sv:name="lineSemi" sv:type="String">
+ <sv:value>true</sv:value>
+ </sv:property>
+ <sv:property sv:name="rows" sv:type="String">
+ <sv:value>1</sv:value>
+ </sv:property>
+ <sv:property sv:name="type" sv:type="String">
+ <sv:value>String</sv:value>
+ </sv:property>
+ </sv:node>
<sv:node sv:name="license22">
<sv:property sv:name="jcr:primaryType" sv:type="Name">
<sv:value>mgnl:contentNode</sv:value>
@@ -4462,6 +5526,52 @@
<sv:value>Date</sv:value>
</sv:property>
</sv:node>
+ <sv:node sv:name="version23">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:contentNode</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:value>mix:lockable</sv:value>
+ </sv:property>
+ <sv:property sv:name="controlType" sv:type="String">
+ <sv:value>edit</sv:value>
+ </sv:property>
+ <sv:property sv:name="label" sv:type="String">
+ <sv:value>Version</sv:value>
+ </sv:property>
+ <sv:property sv:name="lineSemi" sv:type="String">
+ <sv:value>true</sv:value>
+ </sv:property>
+ <sv:property sv:name="rows" sv:type="String">
+ <sv:value>1</sv:value>
+ </sv:property>
+ <sv:property sv:name="type" sv:type="String">
+ <sv:value>String</sv:value>
+ </sv:property>
+ </sv:node>
+ <sv:node sv:name="relNotes23">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:contentNode</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:value>mix:lockable</sv:value>
+ </sv:property>
+ <sv:property sv:name="controlType" sv:type="String">
+ <sv:value>edit</sv:value>
+ </sv:property>
+ <sv:property sv:name="label" sv:type="String">
+ <sv:value>Release notes URL</sv:value>
+ </sv:property>
+ <sv:property sv:name="lineSemi" sv:type="String">
+ <sv:value>true</sv:value>
+ </sv:property>
+ <sv:property sv:name="rows" sv:type="String">
+ <sv:value>1</sv:value>
+ </sv:property>
+ <sv:property sv:name="type" sv:type="String">
+ <sv:value>String</sv:value>
+ </sv:property>
+ </sv:node>
<sv:node sv:name="license23">
<sv:property sv:name="jcr:primaryType" sv:type="Name">
<sv:value>mgnl:contentNode</sv:value>
@@ -4641,6 +5751,52 @@
<sv:value>Date</sv:value>
</sv:property>
</sv:node>
+ <sv:node sv:name="version24">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:contentNode</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:value>mix:lockable</sv:value>
+ </sv:property>
+ <sv:property sv:name="controlType" sv:type="String">
+ <sv:value>edit</sv:value>
+ </sv:property>
+ <sv:property sv:name="label" sv:type="String">
+ <sv:value>Version</sv:value>
+ </sv:property>
+ <sv:property sv:name="lineSemi" sv:type="String">
+ <sv:value>true</sv:value>
+ </sv:property>
+ <sv:property sv:name="rows" sv:type="String">
+ <sv:value>1</sv:value>
+ </sv:property>
+ <sv:property sv:name="type" sv:type="String">
+ <sv:value>String</sv:value>
+ </sv:property>
+ </sv:node>
+ <sv:node sv:name="relNotes24">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:contentNode</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:value>mix:lockable</sv:value>
+ </sv:property>
+ <sv:property sv:name="controlType" sv:type="String">
+ <sv:value>edit</sv:value>
+ </sv:property>
+ <sv:property sv:name="label" sv:type="String">
+ <sv:value>Release notes URL</sv:value>
+ </sv:property>
+ <sv:property sv:name="lineSemi" sv:type="String">
+ <sv:value>true</sv:value>
+ </sv:property>
+ <sv:property sv:name="rows" sv:type="String">
+ <sv:value>1</sv:value>
+ </sv:property>
+ <sv:property sv:name="type" sv:type="String">
+ <sv:value>String</sv:value>
+ </sv:property>
+ </sv:node>
<sv:node sv:name="license24">
<sv:property sv:name="jcr:primaryType" sv:type="Name">
<sv:value>mgnl:contentNode</sv:value>
@@ -4820,6 +5976,52 @@
<sv:value>Date</sv:value>
</sv:property>
</sv:node>
+ <sv:node sv:name="version25">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:contentNode</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:value>mix:lockable</sv:value>
+ </sv:property>
+ <sv:property sv:name="controlType" sv:type="String">
+ <sv:value>edit</sv:value>
+ </sv:property>
+ <sv:property sv:name="label" sv:type="String">
+ <sv:value>Version</sv:value>
+ </sv:property>
+ <sv:property sv:name="lineSemi" sv:type="String">
+ <sv:value>true</sv:value>
+ </sv:property>
+ <sv:property sv:name="rows" sv:type="String">
+ <sv:value>1</sv:value>
+ </sv:property>
+ <sv:property sv:name="type" sv:type="String">
+ <sv:value>String</sv:value>
+ </sv:property>
+ </sv:node>
+ <sv:node sv:name="relNotes25">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:contentNode</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:value>mix:lockable</sv:value>
+ </sv:property>
+ <sv:property sv:name="controlType" sv:type="String">
+ <sv:value>edit</sv:value>
+ </sv:property>
+ <sv:property sv:name="label" sv:type="String">
+ <sv:value>Release notes URL</sv:value>
+ </sv:property>
+ <sv:property sv:name="lineSemi" sv:type="String">
+ <sv:value>true</sv:value>
+ </sv:property>
+ <sv:property sv:name="rows" sv:type="String">
+ <sv:value>1</sv:value>
+ </sv:property>
+ <sv:property sv:name="type" sv:type="String">
+ <sv:value>String</sv:value>
+ </sv:property>
+ </sv:node>
<sv:node sv:name="license25">
<sv:property sv:name="jcr:primaryType" sv:type="Name">
<sv:value>mgnl:contentNode</sv:value>
@@ -4999,6 +6201,52 @@
<sv:value>Date</sv:value>
</sv:property>
</sv:node>
+ <sv:node sv:name="version26">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:contentNode</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:value>mix:lockable</sv:value>
+ </sv:property>
+ <sv:property sv:name="controlType" sv:type="String">
+ <sv:value>edit</sv:value>
+ </sv:property>
+ <sv:property sv:name="label" sv:type="String">
+ <sv:value>Version</sv:value>
+ </sv:property>
+ <sv:property sv:name="lineSemi" sv:type="String">
+ <sv:value>true</sv:value>
+ </sv:property>
+ <sv:property sv:name="rows" sv:type="String">
+ <sv:value>1</sv:value>
+ </sv:property>
+ <sv:property sv:name="type" sv:type="String">
+ <sv:value>String</sv:value>
+ </sv:property>
+ </sv:node>
+ <sv:node sv:name="relNotes26">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:contentNode</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:value>mix:lockable</sv:value>
+ </sv:property>
+ <sv:property sv:name="controlType" sv:type="String">
+ <sv:value>edit</sv:value>
+ </sv:property>
+ <sv:property sv:name="label" sv:type="String">
+ <sv:value>Release notes URL</sv:value>
+ </sv:property>
+ <sv:property sv:name="lineSemi" sv:type="String">
+ <sv:value>true</sv:value>
+ </sv:property>
+ <sv:property sv:name="rows" sv:type="String">
+ <sv:value>1</sv:value>
+ </sv:property>
+ <sv:property sv:name="type" sv:type="String">
+ <sv:value>String</sv:value>
+ </sv:property>
+ </sv:node>
<sv:node sv:name="license26">
<sv:property sv:name="jcr:primaryType" sv:type="Name">
<sv:value>mgnl:contentNode</sv:value>
@@ -5178,6 +6426,52 @@
<sv:value>Date</sv:value>
</sv:property>
</sv:node>
+ <sv:node sv:name="version27">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:contentNode</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:value>mix:lockable</sv:value>
+ </sv:property>
+ <sv:property sv:name="controlType" sv:type="String">
+ <sv:value>edit</sv:value>
+ </sv:property>
+ <sv:property sv:name="label" sv:type="String">
+ <sv:value>Version</sv:value>
+ </sv:property>
+ <sv:property sv:name="lineSemi" sv:type="String">
+ <sv:value>true</sv:value>
+ </sv:property>
+ <sv:property sv:name="rows" sv:type="String">
+ <sv:value>1</sv:value>
+ </sv:property>
+ <sv:property sv:name="type" sv:type="String">
+ <sv:value>String</sv:value>
+ </sv:property>
+ </sv:node>
+ <sv:node sv:name="relNotes27">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:contentNode</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:value>mix:lockable</sv:value>
+ </sv:property>
+ <sv:property sv:name="controlType" sv:type="String">
+ <sv:value>edit</sv:value>
+ </sv:property>
+ <sv:property sv:name="label" sv:type="String">
+ <sv:value>Release notes URL</sv:value>
+ </sv:property>
+ <sv:property sv:name="lineSemi" sv:type="String">
+ <sv:value>true</sv:value>
+ </sv:property>
+ <sv:property sv:name="rows" sv:type="String">
+ <sv:value>1</sv:value>
+ </sv:property>
+ <sv:property sv:name="type" sv:type="String">
+ <sv:value>String</sv:value>
+ </sv:property>
+ </sv:node>
<sv:node sv:name="license27">
<sv:property sv:name="jcr:primaryType" sv:type="Name">
<sv:value>mgnl:contentNode</sv:value>
@@ -5357,6 +6651,52 @@
<sv:value>Date</sv:value>
</sv:property>
</sv:node>
+ <sv:node sv:name="version28">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:contentNode</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:value>mix:lockable</sv:value>
+ </sv:property>
+ <sv:property sv:name="controlType" sv:type="String">
+ <sv:value>edit</sv:value>
+ </sv:property>
+ <sv:property sv:name="label" sv:type="String">
+ <sv:value>Version</sv:value>
+ </sv:property>
+ <sv:property sv:name="lineSemi" sv:type="String">
+ <sv:value>true</sv:value>
+ </sv:property>
+ <sv:property sv:name="rows" sv:type="String">
+ <sv:value>1</sv:value>
+ </sv:property>
+ <sv:property sv:name="type" sv:type="String">
+ <sv:value>String</sv:value>
+ </sv:property>
+ </sv:node>
+ <sv:node sv:name="relNotes28">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:contentNode</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:value>mix:lockable</sv:value>
+ </sv:property>
+ <sv:property sv:name="controlType" sv:type="String">
+ <sv:value>edit</sv:value>
+ </sv:property>
+ <sv:property sv:name="label" sv:type="String">
+ <sv:value>Release notes URL</sv:value>
+ </sv:property>
+ <sv:property sv:name="lineSemi" sv:type="String">
+ <sv:value>true</sv:value>
+ </sv:property>
+ <sv:property sv:name="rows" sv:type="String">
+ <sv:value>1</sv:value>
+ </sv:property>
+ <sv:property sv:name="type" sv:type="String">
+ <sv:value>String</sv:value>
+ </sv:property>
+ </sv:node>
<sv:node sv:name="license28">
<sv:property sv:name="jcr:primaryType" sv:type="Name">
<sv:value>mgnl:contentNode</sv:value>
@@ -5536,6 +6876,52 @@
<sv:value>Date</sv:value>
</sv:property>
</sv:node>
+ <sv:node sv:name="version29">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:contentNode</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:value>mix:lockable</sv:value>
+ </sv:property>
+ <sv:property sv:name="controlType" sv:type="String">
+ <sv:value>edit</sv:value>
+ </sv:property>
+ <sv:property sv:name="label" sv:type="String">
+ <sv:value>Version</sv:value>
+ </sv:property>
+ <sv:property sv:name="lineSemi" sv:type="String">
+ <sv:value>true</sv:value>
+ </sv:property>
+ <sv:property sv:name="rows" sv:type="String">
+ <sv:value>1</sv:value>
+ </sv:property>
+ <sv:property sv:name="type" sv:type="String">
+ <sv:value>String</sv:value>
+ </sv:property>
+ </sv:node>
+ <sv:node sv:name="relNotes29">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:contentNode</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:value>mix:lockable</sv:value>
+ </sv:property>
+ <sv:property sv:name="controlType" sv:type="String">
+ <sv:value>edit</sv:value>
+ </sv:property>
+ <sv:property sv:name="label" sv:type="String">
+ <sv:value>Release notes URL</sv:value>
+ </sv:property>
+ <sv:property sv:name="lineSemi" sv:type="String">
+ <sv:value>true</sv:value>
+ </sv:property>
+ <sv:property sv:name="rows" sv:type="String">
+ <sv:value>1</sv:value>
+ </sv:property>
+ <sv:property sv:name="type" sv:type="String">
+ <sv:value>String</sv:value>
+ </sv:property>
+ </sv:node>
<sv:node sv:name="license29">
<sv:property sv:name="jcr:primaryType" sv:type="Name">
<sv:value>mgnl:contentNode</sv:value>
@@ -5715,6 +7101,52 @@
<sv:value>Date</sv:value>
</sv:property>
</sv:node>
+ <sv:node sv:name="version30">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:contentNode</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:value>mix:lockable</sv:value>
+ </sv:property>
+ <sv:property sv:name="controlType" sv:type="String">
+ <sv:value>edit</sv:value>
+ </sv:property>
+ <sv:property sv:name="label" sv:type="String">
+ <sv:value>Version</sv:value>
+ </sv:property>
+ <sv:property sv:name="lineSemi" sv:type="String">
+ <sv:value>true</sv:value>
+ </sv:property>
+ <sv:property sv:name="rows" sv:type="String">
+ <sv:value>1</sv:value>
+ </sv:property>
+ <sv:property sv:name="type" sv:type="String">
+ <sv:value>String</sv:value>
+ </sv:property>
+ </sv:node>
+ <sv:node sv:name="relNotes30">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:contentNode</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:value>mix:lockable</sv:value>
+ </sv:property>
+ <sv:property sv:name="controlType" sv:type="String">
+ <sv:value>edit</sv:value>
+ </sv:property>
+ <sv:property sv:name="label" sv:type="String">
+ <sv:value>Release notes URL</sv:value>
+ </sv:property>
+ <sv:property sv:name="lineSemi" sv:type="String">
+ <sv:value>true</sv:value>
+ </sv:property>
+ <sv:property sv:name="rows" sv:type="String">
+ <sv:value>1</sv:value>
+ </sv:property>
+ <sv:property sv:name="type" sv:type="String">
+ <sv:value>String</sv:value>
+ </sv:property>
+ </sv:node>
<sv:node sv:name="license30">
<sv:property sv:name="jcr:primaryType" sv:type="Name">
<sv:value>mgnl:contentNode</sv:value>
@@ -5739,6 +7171,45 @@
</sv:property>
</sv:node>
</sv:node>
+
+ <!-- other properties -->
+ <sv:node sv:name="tabOther">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:contentNode</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:value>mix:lockable</sv:value>
+ </sv:property>
+ <sv:property sv:name="controlType" sv:type="String">
+ <sv:value>orgCustomThemeTab</sv:value>
+ </sv:property>
+ <sv:property sv:name="label" sv:type="String">
+ <sv:value>Other</sv:value>
+ </sv:property>
+ <sv:node sv:name="offsets">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:contentNode</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:mixinTypes" sv:type="Name">
+ <sv:value>mix:lockable</sv:value>
+ </sv:property>
+ <sv:property sv:name="controlType" sv:type="String">
+ <sv:value>edit</sv:value>
+ </sv:property>
+ <sv:property sv:name="description" sv:type="String">
+ <sv:value>format: filename1=offset1;filename2=offset2;...</sv:value>
+ </sv:property>
+ <sv:property sv:name="label" sv:type="String">
+ <sv:value>Download offsets</sv:value>
+ </sv:property>
+ <sv:property sv:name="rows" sv:type="String">
+ <sv:value>1</sv:value>
+ </sv:property>
+ <sv:property sv:name="type" sv:type="String">
+ <sv:value>String</sv:value>
+ </sv:property>
+ </sv:node>
+ </sv:node>
</sv:node>
Modified: labs/jbosslabs/labs-3.0-build/integration/mgnl-modules/jbossorg-downloads/src/main/resources/mgnl-files/templates/jbossorg-modules/jbossorg-downloads/downloads.jsp
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/mgnl-modules/jbossorg-downloads/src/main/resources/mgnl-files/templates/jbossorg-modules/jbossorg-downloads/downloads.jsp 2010-01-27 12:52:59 UTC (rev 31250)
+++ labs/jbosslabs/labs-3.0-build/integration/mgnl-modules/jbossorg-downloads/src/main/resources/mgnl-files/templates/jbossorg-modules/jbossorg-downloads/downloads.jsp 2010-01-27 13:54:03 UTC (rev 31251)
@@ -23,12 +23,16 @@
boolean showDescription = Resource.getLocalContentNode().getNodeData("showDescription").getBoolean();
boolean showSize = Resource.getLocalContentNode().getNodeData("showSize").getBoolean();
boolean showReleaseDate = Resource.getLocalContentNode().getNodeData("showReleaseDate").getBoolean();
+ boolean showVersion = Resource.getLocalContentNode().getNodeData("showVersion").getBoolean();
+ boolean showRelNotes = Resource.getLocalContentNode().getNodeData("showRelNotes").getBoolean();
boolean showLicense = Resource.getLocalContentNode().getNodeData("showLicense").getBoolean();
boolean popup = Resource.getLocalContentNode().getNodeData("popup").getBoolean();
if (showDescription) pageContext.setAttribute("showDescription",true);
if (showSize) pageContext.setAttribute("showSize",true);
if (showReleaseDate) pageContext.setAttribute("showReleaseDate",true);
+ if (showVersion) pageContext.setAttribute("showVersion",true);
+ if (showRelNotes) pageContext.setAttribute("showRelNotes",true);
if (showLicense) pageContext.setAttribute("showLicense",true);
if (popup) pageContext.setAttribute("popup",true);
@@ -46,6 +50,11 @@
DownloadsModule module = DownloadsModule.getInstance();
pageContext.setAttribute("module",module);
+
+ String offsets = Resource.getLocalContentNode().getNodeData("offsets").getString();
+ if (offsets!=null && offsets.trim().length()>0)
+ module.addToOffsets(offsets);
+
]]>
</jsp:scriptlet>
<h3>${tableTitle}</h3>
@@ -56,10 +65,12 @@
<thead>
<tr class="header">
<th>Name</th>
+ <c:if test="${showVersion}"><th>Version</th></c:if>
<c:if test="${showDescription}"><th>Description</th></c:if>
<c:if test="${showSize}"><th>Size</th></c:if>
<c:if test="${showReleaseDate}"><th>Release date</th></c:if>
<c:if test="${showLicense}"><th>License</th></c:if>
+ <c:if test="${showRelNotes}"><th>Release notes</th></c:if>
<th>Download</th>
</tr>
</thead>
@@ -73,6 +84,8 @@
String sizeNodeName = "size";
String dateNodeName = "releaseDate";
String licenseNodeName = "license";
+ String versionNodeName = "version";
+ String relNotesNodeName = "relNotes";
String _url = "";
String _name = "";
@@ -81,6 +94,8 @@
String _size = "";
String _date = "";
String _license = "";
+ String _version = "";
+ String _relNotes = "";
String URLdata = "";
String NAMEdata = "";
@@ -89,6 +104,8 @@
String SIZEdata = "";
String DATEdata = "";
String LICENSEdata = "";
+ String VERSIONdata = "";
+ String RELNOTESdata = "";
final int ITEMCOUNT = 30; // change this if you add more items in dialog
@@ -106,6 +123,8 @@
_size = sizeNodeName + padding + i;
_date = dateNodeName + padding + i;
_license = licenseNodeName + padding + i;
+ _version = versionNodeName + padding + i;
+ _relNotes = relNotesNodeName + padding + i;
URLdata = Resource.getLocalContentNode().getNodeData(_url).getString();
NAMEdata = Resource.getLocalContentNode().getNodeData(_name).getString();
@@ -120,6 +139,8 @@
}
}
if (showLicense) LICENSEdata = Resource.getLocalContentNode().getNodeData(_license).getString();
+ if (showVersion) VERSIONdata = Resource.getLocalContentNode().getNodeData(_version).getString();
+ if (showRelNotes) RELNOTESdata = Resource.getLocalContentNode().getNodeData(_relNotes).getString();
if (URLdata!=null && !URLdata.trim().equals("") && NAMEdata != null && !NAMEdata.trim().equals("")) {
oddrow = !oddrow;
@@ -135,12 +156,16 @@
if (showSize) pageContext.setAttribute("SIZEdata", SIZEdata);
if (showReleaseDate) pageContext.setAttribute("DATEdata", DATEdata);
if (showLicense) pageContext.setAttribute("LICENSEdata", LICENSEdata);
+ if (showVersion) pageContext.setAttribute("VERSIONdata", VERSIONdata);
+ if (showRelNotes) pageContext.setAttribute("RELNOTESdata", RELNOTESdata);
String gaFileID = module.getGAfileID(URLdata);
Long downloadCount = null;
- if (gaFileID!=null)
+ Long downloadOffset = null;
+ if (gaFileID!=null) {
downloadCount = module.getDownloadCount(gaFileID);
- pageContext.setAttribute("DownloadCount", downloadCount!=null ? downloadCount : "0");
+ }
+ pageContext.setAttribute("DownloadCount", downloadCount!=null ? downloadCount : 0);
pageContext.setAttribute("gaFileID", gaFileID==null? "null" : "'"+gaFileID+"'");
pageContext.setAttribute("NULLgaFileID", gaFileID==null ? true : false);
@@ -148,10 +173,12 @@
</jsp:scriptlet>
<tr class="${oddrow ? 'oddRow' : evenRow }">
<td>${NAMEdata}</td>
+ <c:if test="${showVersion}"><td>${VERSIONdata}</td></c:if>
<c:if test="${showDescription}"><td>${DESCdata}</td></c:if>
<c:if test="${showSize}"><td>${SIZEdata}</td></c:if>
<c:if test="${showReleaseDate}"><td>${DATEdata}</td></c:if>
<c:if test="${showLicense}"><td>${LICENSEdata}</td></c:if>
+ <c:if test="${showRelNotes}"><td><c:if test="${RELNOTESdata!=''}"><a href="${RELNOTESdata}" class="td-download">Release Notes</a></c:if></td></c:if>
<td>
<c:choose>
<c:when test="${popup}"><a class="td-download" onclick="turnOnModal(this,${gaFileID}); return false;" href="${URLdata}">${TEXTdata}</a></c:when>
More information about the jboss-svn-commits
mailing list