From 1a912ace1af7eba82b2b23408bb6e248897f3f96 Mon Sep 17 00:00:00 2001 From: kelvingoodson Date: Mon, 25 Jan 2010 18:03:01 +0000 Subject: git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@902898 13f79535-47bb-0310-9956-ffa450edef68 --- .../kgoodson/jagg/src/main/java/launch/Launch.java | 40 ++++++ .../kgoodson/jagg/src/main/java/services/Item.java | 54 +++++++ .../jagg/src/main/java/services/JiraQuery.java | 8 ++ .../jagg/src/main/java/services/JiraQueryImpl.java | 74 ++++++++++ .../jagg/src/main/java/services/PlanView.java | 34 +++++ .../jagg/src/main/java/services/PlanViewImpl.java | 159 +++++++++++++++++++++ .../jagg/src/main/resources/JiraSideband.xml | 42 ++++++ .../jagg/src/main/resources/JiraSideband.xsd | 103 +++++++++++++ 8 files changed, 514 insertions(+) create mode 100644 sandbox/kgoodson/jagg/src/main/java/launch/Launch.java create mode 100644 sandbox/kgoodson/jagg/src/main/java/services/Item.java create mode 100644 sandbox/kgoodson/jagg/src/main/java/services/JiraQuery.java create mode 100644 sandbox/kgoodson/jagg/src/main/java/services/JiraQueryImpl.java create mode 100644 sandbox/kgoodson/jagg/src/main/java/services/PlanView.java create mode 100644 sandbox/kgoodson/jagg/src/main/java/services/PlanViewImpl.java create mode 100644 sandbox/kgoodson/jagg/src/main/resources/JiraSideband.xml create mode 100644 sandbox/kgoodson/jagg/src/main/resources/JiraSideband.xsd (limited to 'sandbox/kgoodson') diff --git a/sandbox/kgoodson/jagg/src/main/java/launch/Launch.java b/sandbox/kgoodson/jagg/src/main/java/launch/Launch.java new file mode 100644 index 0000000000..dce7431349 --- /dev/null +++ b/sandbox/kgoodson/jagg/src/main/java/launch/Launch.java @@ -0,0 +1,40 @@ +/* + * 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. + */ + +package launch; + +import org.apache.tuscany.sca.node.Contribution; +import org.apache.tuscany.sca.node.ContributionLocationHelper; +import org.apache.tuscany.sca.node.Node; +import org.apache.tuscany.sca.node.NodeFactory; + +public class Launch { + public static void main(String[] args) throws Exception { + System.out.println("Starting ..."); + String contribution = ContributionLocationHelper.getContributionLocation(Launch.class); + Node node = NodeFactory.newInstance().createNode("plan.composite", new Contribution("test", contribution)); + node.start(); + System.out.println("plan.composite running"); + System.in.read(); + System.out.println("Stopping ..."); + node.stop(); + node.destroy(); + System.out.println(); + } +} diff --git a/sandbox/kgoodson/jagg/src/main/java/services/Item.java b/sandbox/kgoodson/jagg/src/main/java/services/Item.java new file mode 100644 index 0000000000..d89712a791 --- /dev/null +++ b/sandbox/kgoodson/jagg/src/main/java/services/Item.java @@ -0,0 +1,54 @@ +/* + * 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. + */ + +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; + } + + public String getPrice() { + return price; + } + + public void setPrice(String price) { + this.price = price; + } + +} diff --git a/sandbox/kgoodson/jagg/src/main/java/services/JiraQuery.java b/sandbox/kgoodson/jagg/src/main/java/services/JiraQuery.java new file mode 100644 index 0000000000..1b3d79f119 --- /dev/null +++ b/sandbox/kgoodson/jagg/src/main/java/services/JiraQuery.java @@ -0,0 +1,8 @@ +package services; + +import java.util.Collection; + +public interface JiraQuery { + public Collection 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 new file mode 100644 index 0000000000..14931a1989 --- /dev/null +++ b/sandbox/kgoodson/jagg/src/main/java/services/JiraQueryImpl.java @@ -0,0 +1,74 @@ +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 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 new file mode 100644 index 0000000000..2387da0519 --- /dev/null +++ b/sandbox/kgoodson/jagg/src/main/java/services/PlanView.java @@ -0,0 +1,34 @@ +/* + * 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. + */ + +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; + +@Remotable +public interface PlanView { + + MileStone[] get(); + MileStone[] getMilestones(); + WorkItem[] getMilestoneWorkitems(String msid); +} \ 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 new file mode 100644 index 0000000000..478b72dc07 --- /dev/null +++ b/sandbox/kgoodson/jagg/src/main/java/services/PlanViewImpl.java @@ -0,0 +1,159 @@ +/* + * 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. + */ + +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; +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 _milestoneMap = null; + private Map _workItemMap = null; + + @Init + public void init() { + + } + + private Plan getPlan() { + if (_p == null) { + + try { + JAXBContext jaxbContext = JAXBContext + .newInstance("com.example.ipo.jaxb"); + Unmarshaller m = jaxbContext.createUnmarshaller(); + File inputFile = new File("src/main/resources/jiraSideBand.xml") + .getAbsoluteFile(); + + _p = ((JAXBElement) m.unmarshal(inputFile)).getValue(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + } + + } + return _p; + } + + private Map getMileStoneMap() + { + if(_milestoneMap == null) { + _milestoneMap = new HashMap(); + + Plan p = getPlan(); + List ms = p.getMilestones().getMilestone(); + for (Iterator iterator = ms.iterator(); iterator.hasNext();) { + MileStone mileStone = iterator.next(); + _milestoneMap.put(mileStone.getID(), mileStone); + } + } + return _milestoneMap; + } + + private Map getWorkItemMap() + { + if(_workItemMap == null) { + _workItemMap = new HashMap(); + + Plan p = getPlan(); + List ms = p.getWorkitems().getWorkitem(); + for (Iterator iterator = ms.iterator(); iterator.hasNext();) { + WorkItem workItem = iterator.next(); + _workItemMap.put(workItem.getID(), workItem); + } + } + return _workItemMap; + } + + + + public MileStone[] getMilestones() { + + List ms = null; + Plan p = getPlan(); + ms = p.getMilestones().getMilestone(); + MileStone[] ma = new MileStone[(ms.size())]; + ms.toArray(ma); + + return ma; + } + + public WorkItem[] getMilestoneWorkitems(String msid) { + Map msmap = getMileStoneMap(); + Map wimap = getWorkItemMap(); + MileStone ms = msmap.get(msid); + List wirefs = ms.getWorkItem(); + + WorkItem[] retval = new WorkItem[wirefs.size()]; + int i=0; + for (Iterator 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 lm = ms.getMilestone(); + + for (MileStone mileStone : lm) { + plan[i++] = mileStone; + } + +// List lw = ws.getWorkitem(); +// +// for (WorkItem workItem : lw) { +// plan[i++] = workItem; +// } + + + return plan; + } + +} \ 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 new file mode 100644 index 0000000000..0d534adce6 --- /dev/null +++ b/sandbox/kgoodson/jagg/src/main/resources/JiraSideband.xml @@ -0,0 +1,42 @@ + + + + + 2001-01-01 + deliveredby + note + ENHANCE_ART_PROC_PERF + CONTRIBS_IDENT_SPEC_VERS + SUPPORT_REFS_ON_OTHERS + + + + + ENHANCE_ART_PROC_PERF + LR + 2001-01-01 + TUSCANY-3395 + status + repository_vid + note + + + CONTRIBS_IDENT_SPEC_VERS + LR + 2001-01-01 + TUSCANY-3397 + status + repository_vid + note + + + SUPPORT_REFS_ON_OTHERS + LR + 2001-01-01 + TUSCANY-2850 + status + repository_vid + note + + + diff --git a/sandbox/kgoodson/jagg/src/main/resources/JiraSideband.xsd b/sandbox/kgoodson/jagg/src/main/resources/JiraSideband.xsd new file mode 100644 index 0000000000..06bab086d3 --- /dev/null +++ b/sandbox/kgoodson/jagg/src/main/resources/JiraSideband.xsd @@ -0,0 +1,103 @@ + + + + + + + + + + + + + + + + + The milestone or deliverable name that we require this function for + + + + + + + + + + + + + + + + + + + + + + + + + A tuscany source code repository branch name or + repository version number + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file -- cgit v1.2.3