/* * 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.io.IOException; import java.net.MalformedURLException; import java.net.URL; import java.util.List; 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.Plan; import com.example.ipo.jaxb.RSS; import com.example.ipo.jaxb.WorkItem; import com.example.ipo.jaxb.JiraRSS; 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 PlanViewImpl implements PlanView { private com.example.ipo.jaxb.Plan _p = null; static String rssPrefix = "http://issues.apache.org/jira/si/jira.issueviews:issue-xml/"; // TUSCANY-1178/TUSCANY-1178.xml @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(); augment_plan(_p); } catch (Exception e) { e.printStackTrace(); } finally { } } return _p; } private void augment_plan(Plan plan) { for(Milestone m : plan.getMilestone()) { for (WorkItem wi: m.getWorkItem()) { String jira = wi.getJira(); String feed = rssPrefix += jira + "/" + jira + ".xml"; // SyndFeedInput input = new SyndFeedInput(); // try { // SyndFeed sfeed = input.build(new XmlReader(new URL(feed))); // List entries = sfeed.getEntries(); // SyndEntry jiraEntry = (SyndEntry)entries.toArray()[0]; // String title = jiraEntry.getTitle(); // System.out.println(sfeed.toString()); // } 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(); // } try { JAXBContext jaxbContext = JAXBContext .newInstance("com.example.ipo.jaxb"); Unmarshaller m2 = jaxbContext.createUnmarshaller(); File inputFile = new File("src/main/resources/exampleJira.xml") .getAbsoluteFile(); RSS j = ((JAXBElement) m2.unmarshal(inputFile)).getValue(); augment_plan(_p); } catch (Exception e) { e.printStackTrace(); } finally { } } } } public Plan get() { com.example.ipo.jaxb.Plan modelplan = getPlan(); // dto.Plan dtoplan = new dto.Plan(modelplan); return modelplan; } }