Author: mattmann
Date: Fri Nov 18 04:15:19 2011
New Revision: 1203482
URL: http://svn.apache.org/viewvc?rev=1203482&view=rev
Log:
- OODT-157:
overlay cas-product web services into app
expose /data and /dataset web services (RDF and RSS don't work b/c they
require confs that I'm not baking in or assuming existence of as of yet).
update TraceableProductBrowser to link to ctxRoot/data?productID=<productId>
Modified:
oodt/trunk/pcs/opsui/pom.xml
oodt/trunk/pcs/opsui/src/main/java/org/apache/oodt/pcs/opsui/OpsuiApp.java
oodt/trunk/pcs/opsui/src/main/java/org/apache/oodt/pcs/opsui/pedigree/TraceableProductBrowser.html
oodt/trunk/pcs/opsui/src/main/java/org/apache/oodt/pcs/opsui/pedigree/TraceableProductBrowser.java
oodt/trunk/pcs/opsui/src/main/webapp/META-INF/context.xml
oodt/trunk/pcs/opsui/src/main/webapp/WEB-INF/web.xml
Modified: oodt/trunk/pcs/opsui/pom.xml
URL:
http://svn.apache.org/viewvc/oodt/trunk/pcs/opsui/pom.xml?rev=1203482&r1=1203481&r2=1203482&view=diff
==============================================================================
--- oodt/trunk/pcs/opsui/pom.xml (original)
+++ oodt/trunk/pcs/opsui/pom.xml Fri Nov 18 04:15:19 2011
@@ -67,6 +67,12 @@ the License.
</dependency>
<dependency>
<groupId>org.apache.oodt</groupId>
+ <artifactId>cas-product</artifactId>
+ <version>${project.parent.version}</version>
+ <type>war</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.oodt</groupId>
<artifactId>pcs-core</artifactId>
<version>${project.parent.version}</version>
</dependency>
Modified:
oodt/trunk/pcs/opsui/src/main/java/org/apache/oodt/pcs/opsui/OpsuiApp.java
URL:
http://svn.apache.org/viewvc/oodt/trunk/pcs/opsui/src/main/java/org/apache/oodt/pcs/opsui/OpsuiApp.java?rev=1203482&r1=1203481&r2=1203482&view=diff
==============================================================================
--- oodt/trunk/pcs/opsui/src/main/java/org/apache/oodt/pcs/opsui/OpsuiApp.java
(original)
+++ oodt/trunk/pcs/opsui/src/main/java/org/apache/oodt/pcs/opsui/OpsuiApp.java
Fri Nov 18 04:15:19 2011
@@ -22,6 +22,8 @@ import java.io.Serializable;
import java.util.List;
import java.util.Vector;
+import javax.servlet.ServletContext;
+
import org.apache.oodt.cas.metadata.util.PathUtils;
import org.apache.oodt.cas.webcomponents.filemgr.FMBrowserSession;
import
org.apache.oodt.cas.webcomponents.workflow.instance.WorkflowInstancesViewer;
@@ -184,6 +186,10 @@ public class OpsuiApp extends WebApplica
}
+ public String getRootContext() {
+ return getServletContext().getServletContextName();
+ }
+
/*
* (non-Javadoc)
*
Modified:
oodt/trunk/pcs/opsui/src/main/java/org/apache/oodt/pcs/opsui/pedigree/TraceableProductBrowser.html
URL:
http://svn.apache.org/viewvc/oodt/trunk/pcs/opsui/src/main/java/org/apache/oodt/pcs/opsui/pedigree/TraceableProductBrowser.html?rev=1203482&r1=1203481&r2=1203482&view=diff
==============================================================================
---
oodt/trunk/pcs/opsui/src/main/java/org/apache/oodt/pcs/opsui/pedigree/TraceableProductBrowser.html
(original)
+++
oodt/trunk/pcs/opsui/src/main/java/org/apache/oodt/pcs/opsui/pedigree/TraceableProductBrowser.html
Fri Nov 18 04:15:19 2011
@@ -35,7 +35,7 @@
<td>Percent Transferred</td>
</tr>
<tr wicket:id="ref_list">
- <td wicket:id="ref_file_path">/home/files/foo.txt/foo.txt</td>
+ <td><a wicket:id="ref_file_path_link" href="#"><span
wicket:id="ref_file_path">/home/files/foo.txt/foo.txt</span></a></td>
<td wicket:id="ref_file_size">4028</td>
<td wicket:id="ref_pct_transferred">100%</td>
</tr>
Modified:
oodt/trunk/pcs/opsui/src/main/java/org/apache/oodt/pcs/opsui/pedigree/TraceableProductBrowser.java
URL:
http://svn.apache.org/viewvc/oodt/trunk/pcs/opsui/src/main/java/org/apache/oodt/pcs/opsui/pedigree/TraceableProductBrowser.java?rev=1203482&r1=1203481&r2=1203482&view=diff
==============================================================================
---
oodt/trunk/pcs/opsui/src/main/java/org/apache/oodt/pcs/opsui/pedigree/TraceableProductBrowser.java
(original)
+++
oodt/trunk/pcs/opsui/src/main/java/org/apache/oodt/pcs/opsui/pedigree/TraceableProductBrowser.java
Fri Nov 18 04:15:19 2011
@@ -18,19 +18,31 @@
package org.apache.oodt.pcs.opsui.pedigree;
//JDK imports
-import java.util.Collections;
+import java.io.File;
+import java.net.URI;
+import java.text.NumberFormat;
import java.util.List;
+import java.util.logging.Level;
+import java.util.logging.Logger;
//OODT imports
import org.apache.oodt.cas.filemgr.structs.Product;
+import org.apache.oodt.cas.filemgr.structs.Reference;
+import org.apache.oodt.cas.filemgr.structs.exceptions.DataTransferException;
import org.apache.oodt.cas.webcomponents.filemgr.FileManagerConn;
import
org.apache.oodt.cas.webcomponents.filemgr.browser.product.ProductBrowser;
+import org.apache.oodt.pcs.opsui.OpsuiApp;
import org.apache.oodt.pcs.webcomponents.trace.Trace;
//Wicket imports
import org.apache.wicket.markup.html.WebMarkupContainer;
+import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.form.Button;
import org.apache.wicket.markup.html.form.Form;
+import org.apache.wicket.markup.html.link.ExternalLink;
+import org.apache.wicket.markup.html.list.ListItem;
+import org.apache.wicket.markup.html.list.ListView;
+import org.apache.wicket.model.util.ListModel;
/**
*
@@ -45,16 +57,20 @@ public class TraceableProductBrowser ext
private static final long serialVersionUID = 5512878676145737818L;
+ private static final Logger LOG = Logger
+ .getLogger(TraceableProductBrowser.class.getName());
+
/**
* @param componentId
* @param fmUrlStr
* @param productId
*/
public TraceableProductBrowser(String componentId, final String fmUrlStr,
- String productId, final boolean enableNotCat, final List<String>
excludes) {
+ final String productId, final boolean enableNotCat, final List<String>
excludes) {
super(componentId, fmUrlStr, productId);
- FileManagerConn fm = new FileManagerConn(fmUrlStr);
+ final FileManagerConn fm = new FileManagerConn(fmUrlStr);
final Product product = fm.safeGetProductById(productId);
+ final OpsuiApp app = (OpsuiApp)getApplication();
Form traceForm = new Form("trace_form");
traceForm.add(new Button("trace_button") {
@@ -65,8 +81,8 @@ public class TraceableProductBrowser ext
*/
@Override
public void onSubmit() {
- Trace tracer = new Trace("pedigree", fmUrlStr, enableNotCat,
- excludes, product);
+ Trace tracer = new Trace("pedigree", fmUrlStr, enableNotCat, excludes,
+ product);
tracer.setVisible(true);
getParent().getParent().replace(tracer);
setVisible(false);
@@ -76,6 +92,63 @@ public class TraceableProductBrowser ext
add(traceForm);
add(new WebMarkupContainer("pedigree").setVisible(false));
+ List<Reference> refs = fm.getProductReferences(product);
+ if (refs != null && refs.size() > 0) {
+ replace(new Label("no_prod_ref_display") {
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.wicket.Component#isVisible()
+ */
+ @Override
+ public boolean isVisible() {
+ return false;
+ }
+ });
+
+ replace(new ListView<Reference>("ref_list", new
ListModel<Reference>(refs)) {
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.apache.wicket.markup.html.list.ListView#populateItem(org.apache
+ * .wicket.markup.html.list.ListItem)
+ */
+ @Override
+ protected void populateItem(ListItem<Reference> refItem) {
+ Reference r = refItem.getModelObject();
+ String filePath = null;
+ try {
+ filePath = new File(new URI(r.getDataStoreReference()))
+ .getAbsolutePath();
+ } catch (Exception ignore) {
+ }
+
+ ExternalLink refLink = new ExternalLink("ref_file_path_link",
+ "/" + app.getRootContext() + "/data?productID="+productId);
+ refLink.add(new Label("ref_file_path", filePath));
+ refItem.add(refLink);
+ refItem.add(new Label("ref_file_size",
+ String.valueOf(r.getFileSize())));
+ try {
+ refItem.add(new Label("ref_pct_transferred", NumberFormat
+ .getPercentInstance()
+ .format(fm.getFm().getRefPctTransferred(r))));
+ } catch (DataTransferException e) {
+ LOG.log(
+ Level.WARNING,
+ "Unable to determine product reference size: Reason: "
+ + e.getMessage());
+ refItem.add(new Label("ref_pct_transferred", "N/A"));
+ }
+
+ }
+ });
+ } else {
+ replace(new Label("no_prod_ref_display", "No Product References!"));
+ }
+
}
+
}
Modified: oodt/trunk/pcs/opsui/src/main/webapp/META-INF/context.xml
URL:
http://svn.apache.org/viewvc/oodt/trunk/pcs/opsui/src/main/webapp/META-INF/context.xml?rev=1203482&r1=1203481&r2=1203482&view=diff
==============================================================================
--- oodt/trunk/pcs/opsui/src/main/webapp/META-INF/context.xml (original)
+++ oodt/trunk/pcs/opsui/src/main/webapp/META-INF/context.xml Fri Nov 18
04:15:19 2011
@@ -15,7 +15,7 @@ WARRANTIES OR CONDITIONS OF ANY KIND, ei
License for the specific language governing permissions and limitations under
the License.
-->
-<Context path="/opsui">
+<Context path="/pcs-opsui">
<Parameter name="filemgr.url"
value="[FILEMGR_URL]"/>
Modified: oodt/trunk/pcs/opsui/src/main/webapp/WEB-INF/web.xml
URL:
http://svn.apache.org/viewvc/oodt/trunk/pcs/opsui/src/main/webapp/WEB-INF/web.xml?rev=1203482&r1=1203481&r2=1203482&view=diff
==============================================================================
--- oodt/trunk/pcs/opsui/src/main/webapp/WEB-INF/web.xml (original)
+++ oodt/trunk/pcs/opsui/src/main/webapp/WEB-INF/web.xml Fri Nov 18 04:15:19
2011
@@ -4,7 +4,7 @@
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
- <display-name>opsui</display-name>
+ <display-name>pcs-opsui</display-name>
<!--
There are three means to configure Wickets configuration mode and
they are
@@ -29,6 +29,31 @@
<filter-name>wicket.browser</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
+
+ <context-param>
+ <param-name>filemgr.working.dir</param-name>
+ <param-value>/tmp</param-value>
+ </context-param>
+
+ <servlet>
+ <servlet-name>DataDeliveryServlet</servlet-name>
+
<servlet-class>org.apache.oodt.cas.product.data.DataDeliveryServlet</servlet-class>
+ </servlet>
+ <servlet>
+ <servlet-name>DatasetDeliveryServlet</servlet-name>
+
<servlet-class>org.apache.oodt.cas.product.data.DatasetDeliveryServlet</servlet-class>
+ </servlet>
+
+ <servlet-mapping>
+ <servlet-name>DataDeliveryServlet</servlet-name>
+ <url-pattern>/data</url-pattern>
+ </servlet-mapping>
+
+ <servlet-mapping>
+ <servlet-name>DatasetDeliveryServlet</servlet-name>
+ <url-pattern>/dataset</url-pattern>
+ </servlet-mapping>
+
</web-app>