summaryrefslogtreecommitdiffstats
path: root/sandbox/kgoodson
diff options
context:
space:
mode:
authorkelvingoodson <kelvingoodson@13f79535-47bb-0310-9956-ffa450edef68>2010-01-27 14:42:03 +0000
committerkelvingoodson <kelvingoodson@13f79535-47bb-0310-9956-ffa450edef68>2010-01-27 14:42:03 +0000
commit8286c4263ebaed641316a76e72341428a94bb29e (patch)
tree3fc04963d0d0b658a67087583538a6d372e04390 /sandbox/kgoodson
parent39ef9a4855c593f1ea3a6bb122d5c22a50b371cb (diff)
basic working application for contributors to organise work around jiras -- not yet retrieving jira info into work items -- thats coming
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@903661 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'sandbox/kgoodson')
-rw-r--r--sandbox/kgoodson/jagg/src/main/java/services/JiraQuery.java8
-rw-r--r--sandbox/kgoodson/jagg/src/main/java/services/JiraQueryImpl.java74
-rw-r--r--sandbox/kgoodson/jagg/src/main/java/services/PlanView.java13
-rw-r--r--sandbox/kgoodson/jagg/src/main/java/services/PlanViewImpl.java104
-rw-r--r--sandbox/kgoodson/jagg/src/main/resources/JiraSideband.xml30
-rw-r--r--sandbox/kgoodson/jagg/src/main/resources/JiraSideband.xsd73
-rw-r--r--sandbox/kgoodson/jagg/src/main/resources/plan.composite (renamed from sandbox/kgoodson/jagg/src/main/java/services/Item.java)58
-rw-r--r--sandbox/kgoodson/jagg/src/main/resources/uiservices/plan.html91
8 files changed, 182 insertions, 269 deletions
diff --git a/sandbox/kgoodson/jagg/src/main/java/services/JiraQuery.java b/sandbox/kgoodson/jagg/src/main/java/services/JiraQuery.java
deleted file mode 100644
index 1b3d79f119..0000000000
--- a/sandbox/kgoodson/jagg/src/main/java/services/JiraQuery.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package services;
-
-import java.util.Collection;
-
-public interface JiraQuery {
- public Collection<String> getJiraIDs();
- public String getTitle(String ID);
-}
diff --git a/sandbox/kgoodson/jagg/src/main/java/services/JiraQueryImpl.java b/sandbox/kgoodson/jagg/src/main/java/services/JiraQueryImpl.java
deleted file mode 100644
index 14931a1989..0000000000
--- a/sandbox/kgoodson/jagg/src/main/java/services/JiraQueryImpl.java
+++ /dev/null
@@ -1,74 +0,0 @@
-package services;
-import java.io.IOException;
-import java.lang.String;
-import java.lang.reflect.Array;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.List;
-
-import com.sun.syndication.feed.synd.SyndEntry;
-import com.sun.syndication.feed.synd.SyndFeed;
-import com.sun.syndication.io.FeedException;
-import com.sun.syndication.io.SyndFeedInput;
-import com.sun.syndication.io.XmlReader;
-
-
-public class JiraQueryImpl implements JiraQuery {
-
- private String rssfeed = null;
- private HashMap entries = null;
-
- public JiraQueryImpl() {
-
- }
-
- public JiraQueryImpl(String rssfeed) throws Exception {
- this.rssfeed = rssfeed;
-
- }
- public Collection<String> getJiraIDs() {
- try {
- refreshFeedData();
- } catch (IllegalArgumentException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (MalformedURLException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (FeedException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- return entries.keySet();
- }
- public String getTitle(String ID) {
- return ((SyndEntry)entries.get(ID)).getTitle();
- }
- private void refreshFeedData() throws IllegalArgumentException, MalformedURLException, FeedException, IOException {
-
-
- SyndFeedInput input = new SyndFeedInput();
- SyndFeed feed = input.build(new XmlReader(new URL(rssfeed)));
-
- entries = new HashMap();
-
- for(Object entry: feed.getEntries()){
- SyndEntry syndEntry = (SyndEntry)entry;
- String id = jiraNumber(syndEntry.getTitle());
- entries.put(id, syndEntry);
- }
-
- }
-
- private String jiraNumber(String title) {
- String[] id = title.split("[\\[\\]]");
- return id[1];
- }
-
-}
diff --git a/sandbox/kgoodson/jagg/src/main/java/services/PlanView.java b/sandbox/kgoodson/jagg/src/main/java/services/PlanView.java
index 2387da0519..e3d9080246 100644
--- a/sandbox/kgoodson/jagg/src/main/java/services/PlanView.java
+++ b/sandbox/kgoodson/jagg/src/main/java/services/PlanView.java
@@ -21,14 +21,15 @@ package services;
import org.oasisopen.sca.annotation.Remotable;
-import com.example.ipo.jaxb.MileStone;
-import com.example.ipo.jaxb.PlanDTO;
-import com.example.ipo.jaxb.WorkItem;
+import com.example.ipo.jaxb.Plan;
+
+
+
+
@Remotable
public interface PlanView {
- MileStone[] get();
- MileStone[] getMilestones();
- WorkItem[] getMilestoneWorkitems(String msid);
+ Plan get();
+
} \ No newline at end of file
diff --git a/sandbox/kgoodson/jagg/src/main/java/services/PlanViewImpl.java b/sandbox/kgoodson/jagg/src/main/java/services/PlanViewImpl.java
index 478b72dc07..c8ebf5afdd 100644
--- a/sandbox/kgoodson/jagg/src/main/java/services/PlanViewImpl.java
+++ b/sandbox/kgoodson/jagg/src/main/java/services/PlanViewImpl.java
@@ -20,10 +20,6 @@
package services;
import java.io.File;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBElement;
@@ -31,18 +27,12 @@ import javax.xml.bind.Unmarshaller;
import org.oasisopen.sca.annotation.Init;
-import com.example.ipo.jaxb.MileStone;
-import com.example.ipo.jaxb.Milestones;
import com.example.ipo.jaxb.Plan;
-import com.example.ipo.jaxb.PlanDTO;
-import com.example.ipo.jaxb.WorkItem;
-import com.example.ipo.jaxb.WorkItems;
public class PlanViewImpl implements PlanView {
- private Plan _p = null;
- private Map<String, MileStone> _milestoneMap = null;
- private Map<String, WorkItem> _workItemMap = null;
+ private com.example.ipo.jaxb.Plan _p = null;
+
@Init
public void init() {
@@ -63,97 +53,21 @@ public class PlanViewImpl implements PlanView {
} catch (Exception e) {
e.printStackTrace();
} finally {
- }
- }
- return _p;
- }
-
- private Map<String , MileStone> getMileStoneMap()
- {
- if(_milestoneMap == null) {
- _milestoneMap = new HashMap<String, MileStone>();
-
- Plan p = getPlan();
- List<MileStone> ms = p.getMilestones().getMilestone();
- for (Iterator<MileStone> iterator = ms.iterator(); iterator.hasNext();) {
- MileStone mileStone = iterator.next();
- _milestoneMap.put(mileStone.getID(), mileStone);
}
- }
- return _milestoneMap;
- }
- private Map<String, WorkItem> getWorkItemMap()
- {
- if(_workItemMap == null) {
- _workItemMap = new HashMap<String, WorkItem>();
-
- Plan p = getPlan();
- List<WorkItem> ms = p.getWorkitems().getWorkitem();
- for (Iterator<WorkItem> iterator = ms.iterator(); iterator.hasNext();) {
- WorkItem workItem = iterator.next();
- _workItemMap.put(workItem.getID(), workItem);
- }
}
- return _workItemMap;
- }
-
-
-
- public MileStone[] getMilestones() {
-
- List<MileStone> ms = null;
- Plan p = getPlan();
- ms = p.getMilestones().getMilestone();
- MileStone[] ma = new MileStone[(ms.size())];
- ms.toArray(ma);
+ return _p;
- return ma;
}
+
- public WorkItem[] getMilestoneWorkitems(String msid) {
- Map<String,MileStone> msmap = getMileStoneMap();
- Map<String,WorkItem> wimap = getWorkItemMap();
- MileStone ms = msmap.get(msid);
- List<String> wirefs = ms.getWorkItem();
-
- WorkItem[] retval = new WorkItem[wirefs.size()];
- int i=0;
- for (Iterator<String> iterator = wirefs.iterator(); iterator.hasNext();) {
- String wiref = iterator.next();
- retval[i] = wimap.get(wiref);
- i++;
- }
-
- return retval;
- }
- public MileStone[] get() {
- Plan p = getPlan();
-
-
- Milestones ms = p.getMilestones();
- WorkItems ws = p.getWorkitems();
-
- MileStone[] plan = new MileStone[ms.getMilestone().size()];
-
-
- int i=0;
- List<MileStone> lm = ms.getMilestone();
-
- for (MileStone mileStone : lm) {
- plan[i++] = mileStone;
- }
-
-// List<WorkItem> lw = ws.getWorkitem();
-//
-// for (WorkItem workItem : lw) {
-// plan[i++] = workItem;
-// }
-
-
- return plan;
+ public Plan get() {
+ com.example.ipo.jaxb.Plan modelplan = getPlan();
+
+ // dto.Plan dtoplan = new dto.Plan(modelplan);
+ return modelplan;
}
} \ No newline at end of file
diff --git a/sandbox/kgoodson/jagg/src/main/resources/JiraSideband.xml b/sandbox/kgoodson/jagg/src/main/resources/JiraSideband.xml
index 0d534adce6..2ebfecb232 100644
--- a/sandbox/kgoodson/jagg/src/main/resources/JiraSideband.xml
+++ b/sandbox/kgoodson/jagg/src/main/resources/JiraSideband.xml
@@ -1,42 +1,38 @@
<?xml version="1.0" encoding="UTF-8"?>
<jagg:plan xmlns:jagg="http://www.example.com/tracking" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.example.com/tracking JiraSideband.xsd ">
<milestones>
- <milestone ID="V8_M5I14a">
+ <milestone ID="V8_M5I14a" workItems=
+ 'SUPPORT_REFS_ON_OTHERS ENHANCE_ART_PROC_PERF'>
<dueDate>2001-01-01</dueDate>
<deliveredby>deliveredby</deliveredby>
<note>note</note>
- <workItem>ENHANCE_ART_PROC_PERF</workItem>
- <workItem>CONTRIBS_IDENT_SPEC_VERS</workItem>
- <workItem>SUPPORT_REFS_ON_OTHERS</workItem>
</milestone>
- </milestones>
+ </milestones>
<workitems>
- <workitem>
- <ID>ENHANCE_ART_PROC_PERF</ID>
+ <workitem ID='SUPPORT_REFS_ON_OTHERS'>
<responsible>LR</responsible>
<dueDate>2001-01-01</dueDate>
- <jira>TUSCANY-3395</jira>
- <status>status</status>
+ <jira>TUSCANY-2850</jira>
+ <status>in progress</status>
<repository_vid>repository_vid</repository_vid>
<note>note</note>
</workitem>
- <workitem>
- <ID>CONTRIBS_IDENT_SPEC_VERS</ID>
+ <workitem ID='ENHANCE_ART_PROC_PERF'>
<responsible>LR</responsible>
<dueDate>2001-01-01</dueDate>
- <jira>TUSCANY-3397</jira>
- <status>status</status>
+ <jira>TUSCANY-3395</jira>
+ <status>in progress</status>
<repository_vid>repository_vid</repository_vid>
<note>note</note>
</workitem>
- <workitem>
- <ID>SUPPORT_REFS_ON_OTHERS</ID>
+ <workitem ID='CONTRIBS_IDENT_SPEC_VERS'>
<responsible>LR</responsible>
<dueDate>2001-01-01</dueDate>
- <jira>TUSCANY-2850</jira>
- <status>status</status>
+ <jira>TUSCANY-3397</jira>
+ <status>in progress</status>
<repository_vid>repository_vid</repository_vid>
<note>note</note>
</workitem>
+
</workitems>
</jagg:plan>
diff --git a/sandbox/kgoodson/jagg/src/main/resources/JiraSideband.xsd b/sandbox/kgoodson/jagg/src/main/resources/JiraSideband.xsd
index 06bab086d3..b00bbae874 100644
--- a/sandbox/kgoodson/jagg/src/main/resources/JiraSideband.xsd
+++ b/sandbox/kgoodson/jagg/src/main/resources/JiraSideband.xsd
@@ -32,30 +32,42 @@
<xsd:complexType name="WorkItem">
- <xsd:annotation>
- <xsd:documentation>The milestone or deliverable name that we require this function for</xsd:documentation>
- </xsd:annotation>
- <xsd:sequence>
- <xsd:element name="ID" type="xsd:ID"></xsd:element>
- <xsd:element name="responsible" type="xsd:string" maxOccurs="1" minOccurs="0"></xsd:element>
- <xsd:element name="dueDate" type="xsd:date"
- nillable="true" maxOccurs="1" minOccurs="0">
- </xsd:element>
- <xsd:element name="jira" type="xsd:string" maxOccurs="1" minOccurs="0"></xsd:element>
- <xsd:element name="status" type="xsd:string" maxOccurs="1" minOccurs="0"></xsd:element>
+ <xsd:annotation>
+ <xsd:documentation>
+ The milestone or deliverable name that we require this
+ function for
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element name="responsible" type="xsd:string"
+ maxOccurs="1" minOccurs="0">
+ </xsd:element>
+ <xsd:element name="dueDate" type="xsd:string" maxOccurs="1"
+ minOccurs="0" />
+ <xsd:element name="jira" type="xsd:string" maxOccurs="1"
+ minOccurs="0">
+ </xsd:element>
+ <xsd:element name="status" type="xsd:string" maxOccurs="1"
+ minOccurs="0">
+ </xsd:element>
- <xsd:element name="repository_vid" type="xsd:string" maxOccurs="1" minOccurs="0"></xsd:element>
- <xsd:element name="note" type="xsd:string" maxOccurs="1" minOccurs="0">
- </xsd:element>
- </xsd:sequence>
+
+ <xsd:element name="repository_vid" type="xsd:string"
+ maxOccurs="1" minOccurs="0">
+ </xsd:element>
+ <xsd:element name="note" type="xsd:string" maxOccurs="1"
+ minOccurs="0">
+ </xsd:element>
+ </xsd:sequence>
+ <xsd:attribute name="ID" type="xsd:ID"></xsd:attribute>
</xsd:complexType>
-
-
- <xsd:complexType name="MileStone">
- <xsd:sequence>
- <xsd:element name="dueDate" type="xsd:date"></xsd:element>
+ <xsd:complexType name="Milestone">
+
+ <xsd:sequence>
+ <xsd:element name="dueDate" type="xsd:string"></xsd:element>
+
<xsd:element name="deliveredby" type="xsd:string"
maxOccurs="1" minOccurs="0">
<xsd:annotation>
@@ -67,15 +79,16 @@
</xsd:element>
<xsd:element name="note" type="xsd:string" maxOccurs="1"
minOccurs="0">
- </xsd:element>
- <xsd:element name="workItem" type="xsd:string" maxOccurs="unbounded" minOccurs="0"></xsd:element>
+ </xsd:element>
</xsd:sequence>
- <xsd:attribute name="ID" type="xsd:ID"></xsd:attribute>
+ <xsd:attribute name="ID" type="xsd:ID"></xsd:attribute>
+
+ <xsd:attribute name="workItems" type="xsd:IDREFS"></xsd:attribute>
</xsd:complexType>
-
+
<xsd:complexType name="Milestones">
<xsd:sequence>
- <xsd:element name="milestone" type="jagg:MileStone" maxOccurs="unbounded" minOccurs="0"></xsd:element>
+ <xsd:element name="milestone" type="jagg:Milestone" maxOccurs="unbounded" minOccurs="0"></xsd:element>
</xsd:sequence>
</xsd:complexType>
@@ -85,18 +98,10 @@
</xsd:sequence>
</xsd:complexType>
- <xsd:complexType name="foo">
- <xsd:sequence>
- <xsd:element name="bar" type="xsd:string"></xsd:element>
- <xsd:element name="fred" type="xsd:string"></xsd:element>
- </xsd:sequence>
- <xsd:attribute name="a" type="xsd:string"></xsd:attribute>
- <xsd:attribute name="b" type="xsd:string"></xsd:attribute>
- </xsd:complexType>
<xsd:complexType name="PlanDTO">
<xsd:sequence>
- <xsd:element name="milestones" type="jagg:MileStone" maxOccurs="unbounded" minOccurs="0"></xsd:element>
+ <xsd:element name="milestones" type="jagg:Milestone" maxOccurs="unbounded" minOccurs="0"></xsd:element>
<xsd:element name="workitems" type="jagg:WorkItem" maxOccurs="unbounded" minOccurs="0"></xsd:element>
</xsd:sequence>
</xsd:complexType>
diff --git a/sandbox/kgoodson/jagg/src/main/java/services/Item.java b/sandbox/kgoodson/jagg/src/main/resources/plan.composite
index d89712a791..dfc71c6e33 100644
--- a/sandbox/kgoodson/jagg/src/main/java/services/Item.java
+++ b/sandbox/kgoodson/jagg/src/main/resources/plan.composite
@@ -1,4 +1,5 @@
-/*
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
@@ -15,40 +16,27 @@
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
- */
-
-package services;
-
-public class Item {
- private String name;
- private String price;
-
- public Item() {
- }
-
- public Item(String name, String price) {
- this.name = name;
- this.price = price;
- }
-
- public Item(String name) {
- this(name,"0.00");
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
+-->
+<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200903"
+ xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.1"
+ targetNamespace="http://jagg"
+ name="jagg">
+
+ <component name="planApp">
+ <tuscany:implementation.widget location="uiservices/plan.html"/>
+ <service name="Widget">
+ <tuscany:binding.http uri="/plan"/>
+ </service>
+ <reference name="plan" target="Plan"/>
+ </component>
- public String getPrice() {
- return price;
- }
+ <component name="Plan">
+ <implementation.java class="services.PlanViewImpl"/>
+ <service name="PlanView">
+ <tuscany:binding.jsonrpc/>
+ </service>
+ </component>
+
- public void setPrice(String price) {
- this.price = price;
- }
-}
+</composite>
diff --git a/sandbox/kgoodson/jagg/src/main/resources/uiservices/plan.html b/sandbox/kgoodson/jagg/src/main/resources/uiservices/plan.html
new file mode 100644
index 0000000000..48b4f49d53
--- /dev/null
+++ b/sandbox/kgoodson/jagg/src/main/resources/uiservices/plan.html
@@ -0,0 +1,91 @@
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+-->
+<html>
+<head>
+<title>Plan</title>
+
+<script type="text/javascript" src="/dojo/dojo.js"></script>
+<script type="text/javascript" src="plan.js"></script>
+
+<script language="JavaScript">
+
+ //@Reference
+ var plan = new tuscany.sca.Reference("plan");
+ var ms;
+
+ function plan_getResponse(plan,exception) {
+ if(exception){
+ alert(exception.message);
+ return;
+ }
+ var mscontent = "<h2>Milestones</h2>\n<table border=\"1\">";
+ ms = plan.milestones.milestone.list;
+ for(var i=0; i<ms.length; i++) {
+ mscontent += "<tr><th colspan=\"4\">" + ms[i].ID + "</th></tr>";
+ var mswi = ms[i].workItems.list;
+ mscontent +="<tr><th>ID</th><td>JIRA</th><td>Responsible</th><th>Status</th></tr>";
+ for (var j=0; j<mswi.length; j++) {
+ mscontent +=
+ "<tr>"
+ +"<td>"+mswi[j].ID+"</td>" + "<td>"+mswi[j].jira
+ +"</td>"+ "<td>"+mswi[j].responsible+"</td>"+ "<td>"+mswi[j].status+"</td>"+ "<td></td>"
+ +"</tr>";
+ }
+
+ }
+
+ mscontent += "</table>"
+ +"<h2> Work Items to be Scheduled</h2>";
+ mscontent += "<table border=\"1\"><tr><th>ID</th><th>JIRA</th><th>Responsible</th><th>Status</th></tr>";
+
+ // unassigned work items (in terms of milestones)
+ var uawi = plan.workitems.workitem.list;
+ for(var j=0; j<uawi.length; j++) {
+ if(uawi[j]) {
+ mscontent +=
+ "<tr>"
+ +"<td>"+uawi[j].ID+"</td>" + "<td>"+uawi[j].jira
+ +"</td>"+ "<td>"+uawi[j].responsible+"</td>"+ "<td>"+uawi[j].status+"</td>"+ "<td></td>"
+ +"</tr>";
+ }
+ }
+
+ mscontent += "</table>";
+
+ document.getElementById('milestones').innerHTML='<h2>' + mscontent;
+ return;
+
+ }
+
+
+function init()
+{
+ plan.get().addCallback(plan_getResponse);
+}
+
+
+</script>
+
+</head>
+
+<body onload="init()">
+<h1>Plan</h1>
+ <div id="milestones"></div>
+</body>
+</html> \ No newline at end of file