Commit 1fa601241e7ae12709496766dcce3f8a0dc857aa

Authored by bernard
1 parent d605ff30

Initial import.

  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3 + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  4 + <modelVersion>4.0.0</modelVersion>
  5 +
  6 + <groupId>pl.com.it-crowd.youtrack-rest-api</groupId>
  7 + <artifactId>youtrack-rest-api</artifactId>
  8 + <version>1.0.0-SNAPSHOT</version>
  9 +
  10 + <dependencies>
  11 + <dependency>
  12 + <groupId>junit</groupId>
  13 + <artifactId>junit</artifactId>
  14 + <version>4.8.2</version>
  15 + </dependency>
  16 +
  17 + <dependency>
  18 + <groupId>net.sourceforge.htmlunit</groupId>
  19 + <artifactId>htmlunit</artifactId>
  20 + <version>2.8</version>
  21 + </dependency>
  22 + </dependencies>
  23 +
  24 + <build>
  25 + <plugins>
  26 + <plugin>
  27 + <groupId>org.apache.maven.plugins</groupId>
  28 + <artifactId>maven-source-plugin</artifactId>
  29 + <version>2.1.2</version>
  30 + <executions>
  31 + <execution>
  32 + <id>attach-sources</id>
  33 + <phase>package</phase>
  34 + <goals>
  35 + <goal>jar-no-fork</goal>
  36 + </goals>
  37 + </execution>
  38 + </executions>
  39 + </plugin>
  40 + </plugins>
  41 + </build>
  42 +
  43 + <profiles>
  44 + <profile>
  45 + <id>generate-jaxb-artifacts</id>
  46 + <build>
  47 + <plugins>
  48 + <plugin>
  49 + <groupId>org.codehaus.mojo</groupId>
  50 + <artifactId>jaxb2-maven-plugin</artifactId>
  51 + <version>1.3</version>
  52 + <executions>
  53 + <execution>
  54 + <goals>
  55 + <goal>xjc</goal>
  56 + </goals>
  57 + </execution>
  58 + </executions>
  59 + <configuration>
  60 + <packageName>pl.com.it_crowd.youtrack.api.rest</packageName>
  61 + <outputDirectory>${build.sourceDirectory}</outputDirectory>
  62 + <clearOutputDir>false</clearOutputDir>
  63 + </configuration>
  64 + </plugin>
  65 + </plugins>
  66 + </build>
  67 + </profile>
  68 + </profiles>
  69 +
  70 + <distributionManagement>
  71 + <snapshotRepository>
  72 + <id>it-crowd.com.pl</id>
  73 + <name>MyCo Internal Repository</name>
  74 + <url>http://artifactory.it-crowd.com.pl/libs-snapshot-local</url>
  75 + </snapshotRepository>
  76 + </distributionManagement>
  77 +</project>
\ No newline at end of file
... ...
  1 +package pl.com.it_crowd.youtrack.api;
  2 +
  3 +import org.apache.commons.io.IOUtils;
  4 +import pl.com.it_crowd.youtrack.api.rest.Issues;
  5 +
  6 +import javax.xml.bind.JAXBContext;
  7 +import javax.xml.bind.JAXBException;
  8 +import java.io.IOException;
  9 +import java.io.InputStream;
  10 +import java.io.InputStreamReader;
  11 +import java.io.Reader;
  12 +import java.io.StringReader;
  13 +import java.net.URL;
  14 +
  15 +public class IssuesUnmarshaller {
  16 +
  17 + public static Issues unmarshal(String url) throws JAXBException, IOException
  18 + {
  19 + return unmarshal(new URL(url).openStream());
  20 + }
  21 +
  22 + public static Issues unmarshal(InputStream stream) throws JAXBException, IOException
  23 + {
  24 + return unmarshal(new InputStreamReader(stream));
  25 + }
  26 +
  27 + public static Issues unmarshal(Reader reader) throws JAXBException, IOException
  28 + {
  29 + String content = IOUtils.toString(reader);
  30 + try {
  31 + JAXBContext jaxbContext = JAXBContext.newInstance(Issues.class.getPackage().getName());
  32 + return (Issues) jaxbContext.createUnmarshaller().unmarshal(new StringReader(content));
  33 + } catch (JAXBException e) {
  34 + System.err.println("Cannot unmarshal input stream.\n" + content + e);
  35 + throw e;
  36 + }
  37 + }
  38 +}
... ...
  1 +//
  2 +// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-833
  3 +// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
  4 +// Any modifications to this file will be lost upon recompilation of the source schema.
  5 +// Generated on: 2011.12.05 at 08:56:01 AM CET
  6 +//
  7 +
  8 +package pl.com.it_crowd.youtrack.api.rest;
  9 +
  10 +import javax.xml.bind.JAXBElement;
  11 +import javax.xml.bind.annotation.XmlAccessType;
  12 +import javax.xml.bind.annotation.XmlAccessorType;
  13 +import javax.xml.bind.annotation.XmlAttribute;
  14 +import javax.xml.bind.annotation.XmlElement;
  15 +import javax.xml.bind.annotation.XmlElementRef;
  16 +import javax.xml.bind.annotation.XmlElements;
  17 +import javax.xml.bind.annotation.XmlMixed;
  18 +import javax.xml.bind.annotation.XmlRootElement;
  19 +import javax.xml.bind.annotation.XmlType;
  20 +import javax.xml.bind.annotation.XmlValue;
  21 +import java.io.Serializable;
  22 +import java.util.ArrayList;
  23 +import java.util.List;
  24 +
  25 +/**
  26 + * <p>Java class for anonymous complex type.
  27 + * <p/>
  28 + * <p>The following schema fragment specifies the expected content contained within this class.
  29 + * <p/>
  30 + * <pre>
  31 + * &lt;complexType>
  32 + * &lt;complexContent>
  33 + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
  34 + * &lt;sequence>
  35 + * &lt;element name="issue" maxOccurs="unbounded" minOccurs="0">
  36 + * &lt;complexType>
  37 + * &lt;complexContent>
  38 + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
  39 + * &lt;choice maxOccurs="unbounded" minOccurs="0">
  40 + * &lt;element name="field">
  41 + * &lt;complexType>
  42 + * &lt;complexContent>
  43 + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
  44 + * &lt;sequence>
  45 + * &lt;element name="value" maxOccurs="unbounded" minOccurs="0">
  46 + * &lt;complexType>
  47 + * &lt;complexContent>
  48 + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
  49 + * &lt;attribute name="type" type="{http://www.w3.org/2001/XMLSchema}string" />
  50 + * &lt;attribute name="role" type="{http://www.w3.org/2001/XMLSchema}string" />
  51 + * &lt;/restriction>
  52 + * &lt;/complexContent>
  53 + * &lt;/complexType>
  54 + * &lt;/element>
  55 + * &lt;/sequence>
  56 + * &lt;attribute name="name" type="{http://www.w3.org/2001/XMLSchema}string" />
  57 + * &lt;/restriction>
  58 + * &lt;/complexContent>
  59 + * &lt;/complexType>
  60 + * &lt;/element>
  61 + * &lt;element name="comment">
  62 + * &lt;complexType>
  63 + * &lt;complexContent>
  64 + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
  65 + * &lt;sequence>
  66 + * &lt;element name="replies" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
  67 + * &lt;element name="value" minOccurs="0">
  68 + * &lt;complexType>
  69 + * &lt;simpleContent>
  70 + * &lt;extension base="&lt;http://www.w3.org/2001/XMLSchema>string">
  71 + * &lt;attribute name="type" type="{http://www.w3.org/2001/XMLSchema}string" />
  72 + * &lt;attribute name="role" type="{http://www.w3.org/2001/XMLSchema}string" />
  73 + * &lt;/extension>
  74 + * &lt;/simpleContent>
  75 + * &lt;/complexType>
  76 + * &lt;/element>
  77 + * &lt;/sequence>
  78 + * &lt;attribute name="id" type="{http://www.w3.org/2001/XMLSchema}string" />
  79 + * &lt;attribute name="author" type="{http://www.w3.org/2001/XMLSchema}string" />
  80 + * &lt;attribute name="issueId" type="{http://www.w3.org/2001/XMLSchema}string" />
  81 + * &lt;attribute name="deleted" type="{http://www.w3.org/2001/XMLSchema}string" />
  82 + * &lt;attribute name="text" type="{http://www.w3.org/2001/XMLSchema}string" />
  83 + * &lt;attribute name="shownForIssueAuthor" type="{http://www.w3.org/2001/XMLSchema}string" />
  84 + * &lt;attribute name="created" type="{http://www.w3.org/2001/XMLSchema}string" />
  85 + * &lt;attribute name="name" type="{http://www.w3.org/2001/XMLSchema}string" />
  86 + * &lt;/restriction>
  87 + * &lt;/complexContent>
  88 + * &lt;/complexType>
  89 + * &lt;/element>
  90 + * &lt;/choice>
  91 + * &lt;attribute name="id" type="{http://www.w3.org/2001/XMLSchema}string" />
  92 + * &lt;/restriction>
  93 + * &lt;/complexContent>
  94 + * &lt;/complexType>
  95 + * &lt;/element>
  96 + * &lt;/sequence>
  97 + * &lt;/restriction>
  98 + * &lt;/complexContent>
  99 + * &lt;/complexType>
  100 + * </pre>
  101 + */
  102 +@XmlAccessorType(XmlAccessType.FIELD)
  103 +@XmlType(name = "", propOrder = {"issue"})
  104 +@XmlRootElement(name = "issues")
  105 +public class Issues {
  106 +
  107 + protected List<Issues.Issue> issue;
  108 +
  109 + /**
  110 + * Gets the value of the issue property.
  111 + * <p/>
  112 + * <p/>
  113 + * This accessor method returns a reference to the live list,
  114 + * not a snapshot. Therefore any modification you make to the
  115 + * returned list will be present inside the JAXB object.
  116 + * This is why there is not a <CODE>set</CODE> method for the issue property.
  117 + * <p/>
  118 + * <p/>
  119 + * For example, to add a new item, do as follows:
  120 + * <pre>
  121 + * getIssue().add(newItem);
  122 + * </pre>
  123 + * <p/>
  124 + * <p/>
  125 + * <p/>
  126 + * Objects of the following type(s) are allowed in the list
  127 + * {@link Issues.Issue }
  128 + */
  129 + public List<Issues.Issue> getIssue()
  130 + {
  131 + if (issue == null) {
  132 + issue = new ArrayList<Issues.Issue>();
  133 + }
  134 + return this.issue;
  135 + }
  136 +
  137 + /**
  138 + * <p>Java class for anonymous complex type.
  139 + * <p/>
  140 + * <p>The following schema fragment specifies the expected content contained within this class.
  141 + * <p/>
  142 + * <pre>
  143 + * &lt;complexType>
  144 + * &lt;complexContent>
  145 + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
  146 + * &lt;choice maxOccurs="unbounded" minOccurs="0">
  147 + * &lt;element name="field">
  148 + * &lt;complexType>
  149 + * &lt;complexContent>
  150 + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
  151 + * &lt;sequence>
  152 + * &lt;element name="value" maxOccurs="unbounded" minOccurs="0">
  153 + * &lt;complexType>
  154 + * &lt;complexContent>
  155 + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
  156 + * &lt;attribute name="type" type="{http://www.w3.org/2001/XMLSchema}string" />
  157 + * &lt;attribute name="role" type="{http://www.w3.org/2001/XMLSchema}string" />
  158 + * &lt;/restriction>
  159 + * &lt;/complexContent>
  160 + * &lt;/complexType>
  161 + * &lt;/element>
  162 + * &lt;/sequence>
  163 + * &lt;attribute name="name" type="{http://www.w3.org/2001/XMLSchema}string" />
  164 + * &lt;/restriction>
  165 + * &lt;/complexContent>
  166 + * &lt;/complexType>
  167 + * &lt;/element>
  168 + * &lt;element name="comment">
  169 + * &lt;complexType>
  170 + * &lt;complexContent>
  171 + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
  172 + * &lt;sequence>
  173 + * &lt;element name="replies" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
  174 + * &lt;element name="value" minOccurs="0">
  175 + * &lt;complexType>
  176 + * &lt;simpleContent>
  177 + * &lt;extension base="&lt;http://www.w3.org/2001/XMLSchema>string">
  178 + * &lt;attribute name="type" type="{http://www.w3.org/2001/XMLSchema}string" />
  179 + * &lt;attribute name="role" type="{http://www.w3.org/2001/XMLSchema}string" />
  180 + * &lt;/extension>
  181 + * &lt;/simpleContent>
  182 + * &lt;/complexType>
  183 + * &lt;/element>
  184 + * &lt;/sequence>
  185 + * &lt;attribute name="id" type="{http://www.w3.org/2001/XMLSchema}string" />
  186 + * &lt;attribute name="author" type="{http://www.w3.org/2001/XMLSchema}string" />
  187 + * &lt;attribute name="issueId" type="{http://www.w3.org/2001/XMLSchema}string" />
  188 + * &lt;attribute name="deleted" type="{http://www.w3.org/2001/XMLSchema}string" />
  189 + * &lt;attribute name="text" type="{http://www.w3.org/2001/XMLSchema}string" />
  190 + * &lt;attribute name="shownForIssueAuthor" type="{http://www.w3.org/2001/XMLSchema}string" />
  191 + * &lt;attribute name="created" type="{http://www.w3.org/2001/XMLSchema}string" />
  192 + * &lt;attribute name="name" type="{http://www.w3.org/2001/XMLSchema}string" />
  193 + * &lt;/restriction>
  194 + * &lt;/complexContent>
  195 + * &lt;/complexType>
  196 + * &lt;/element>
  197 + * &lt;/choice>
  198 + * &lt;attribute name="id" type="{http://www.w3.org/2001/XMLSchema}string" />
  199 + * &lt;/restriction>
  200 + * &lt;/complexContent>
  201 + * &lt;/complexType>
  202 + * </pre>
  203 + */
  204 + @XmlAccessorType(XmlAccessType.FIELD)
  205 + @XmlType(name = "", propOrder = {"fieldOrComment"})
  206 + public static class Issue {
  207 +
  208 + @XmlElements({@XmlElement(name = "field", type = Issues.Issue.Field.class), @XmlElement(name = "comment", type = Issues.Issue.Comment.class)})
  209 + protected List<Object> fieldOrComment;
  210 +
  211 + @XmlAttribute
  212 + protected String id;
  213 +
  214 + /**
  215 + * Gets the value of the fieldOrComment property.
  216 + * <p/>
  217 + * <p/>
  218 + * This accessor method returns a reference to the live list,
  219 + * not a snapshot. Therefore any modification you make to the
  220 + * returned list will be present inside the JAXB object.
  221 + * This is why there is not a <CODE>set</CODE> method for the fieldOrComment property.
  222 + * <p/>
  223 + * <p/>
  224 + * For example, to add a new item, do as follows:
  225 + * <pre>
  226 + * getFieldOrComment().add(newItem);
  227 + * </pre>
  228 + * <p/>
  229 + * <p/>
  230 + * <p/>
  231 + * Objects of the following type(s) are allowed in the list
  232 + * {@link Issues.Issue.Field }
  233 + * {@link Issues.Issue.Comment }
  234 + */
  235 + public List<Object> getFieldOrComment()
  236 + {
  237 + if (fieldOrComment == null) {
  238 + fieldOrComment = new ArrayList<Object>();
  239 + }
  240 + return this.fieldOrComment;
  241 + }
  242 +
  243 + /**
  244 + * Gets the value of the id property.
  245 + *
  246 + * @return possible object is
  247 + * {@link String }
  248 + */
  249 + public String getId()
  250 + {
  251 + return id;
  252 + }
  253 +
  254 + /**
  255 + * Sets the value of the id property.
  256 + *
  257 + * @param value allowed object is
  258 + * {@link String }
  259 + */
  260 + public void setId(String value)
  261 + {
  262 + this.id = value;
  263 + }
  264 +
  265 + /**
  266 + * <p>Java class for anonymous complex type.
  267 + * <p/>
  268 + * <p>The following schema fragment specifies the expected content contained within this class.
  269 + * <p/>
  270 + * <pre>
  271 + * &lt;complexType>
  272 + * &lt;complexContent>
  273 + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
  274 + * &lt;sequence>
  275 + * &lt;element name="replies" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
  276 + * &lt;element name="value" minOccurs="0">
  277 + * &lt;complexType>
  278 + * &lt;simpleContent>
  279 + * &lt;extension base="&lt;http://www.w3.org/2001/XMLSchema>string">
  280 + * &lt;attribute name="type" type="{http://www.w3.org/2001/XMLSchema}string" />
  281 + * &lt;attribute name="role" type="{http://www.w3.org/2001/XMLSchema}string" />
  282 + * &lt;/extension>
  283 + * &lt;/simpleContent>
  284 + * &lt;/complexType>
  285 + * &lt;/element>
  286 + * &lt;/sequence>
  287 + * &lt;attribute name="id" type="{http://www.w3.org/2001/XMLSchema}string" />
  288 + * &lt;attribute name="author" type="{http://www.w3.org/2001/XMLSchema}string" />
  289 + * &lt;attribute name="issueId" type="{http://www.w3.org/2001/XMLSchema}string" />
  290 + * &lt;attribute name="deleted" type="{http://www.w3.org/2001/XMLSchema}string" />
  291 + * &lt;attribute name="text" type="{http://www.w3.org/2001/XMLSchema}string" />
  292 + * &lt;attribute name="shownForIssueAuthor" type="{http://www.w3.org/2001/XMLSchema}string" />
  293 + * &lt;attribute name="created" type="{http://www.w3.org/2001/XMLSchema}string" />
  294 + * &lt;attribute name="name" type="{http://www.w3.org/2001/XMLSchema}string" />
  295 + * &lt;/restriction>
  296 + * &lt;/complexContent>
  297 + * &lt;/complexType>
  298 + * </pre>
  299 + */
  300 + @XmlAccessorType(XmlAccessType.FIELD)
  301 + @XmlType(name = "", propOrder = {"replies", "value"})
  302 + public static class Comment {
  303 +
  304 + protected String replies;
  305 +
  306 + protected Issues.Issue.Comment.Value value;
  307 +
  308 + @XmlAttribute
  309 + protected String id;
  310 +
  311 + @XmlAttribute
  312 + protected String author;
  313 +
  314 + @XmlAttribute
  315 + protected String issueId;
  316 +
  317 + @XmlAttribute
  318 + protected String deleted;
  319 +
  320 + @XmlAttribute
  321 + protected String text;
  322 +
  323 + @XmlAttribute
  324 + protected String shownForIssueAuthor;
  325 +
  326 + @XmlAttribute
  327 + protected String created;
  328 +
  329 + @XmlAttribute
  330 + protected String name;
  331 +
  332 + /**
  333 + * Gets the value of the replies property.
  334 + *
  335 + * @return possible object is
  336 + * {@link String }
  337 + */
  338 + public String getReplies()
  339 + {
  340 + return replies;
  341 + }
  342 +
  343 + /**
  344 + * Sets the value of the replies property.
  345 + *
  346 + * @param value allowed object is
  347 + * {@link String }
  348 + */
  349 + public void setReplies(String value)
  350 + {
  351 + this.replies = value;
  352 + }
  353 +
  354 + /**
  355 + * Gets the value of the value property.
  356 + *
  357 + * @return possible object is
  358 + * {@link Issues.Issue.Comment.Value }
  359 + */
  360 + public Issues.Issue.Comment.Value getValue()
  361 + {
  362 + return value;
  363 + }
  364 +
  365 + /**
  366 + * Sets the value of the value property.
  367 + *
  368 + * @param value allowed object is
  369 + * {@link Issues.Issue.Comment.Value }
  370 + */
  371 + public void setValue(Issues.Issue.Comment.Value value)
  372 + {
  373 + this.value = value;
  374 + }
  375 +
  376 + /**
  377 + * Gets the value of the id property.
  378 + *
  379 + * @return possible object is
  380 + * {@link String }
  381 + */
  382 + public String getId()
  383 + {
  384 + return id;
  385 + }
  386 +
  387 + /**
  388 + * Sets the value of the id property.
  389 + *
  390 + * @param value allowed object is
  391 + * {@link String }
  392 + */
  393 + public void setId(String value)
  394 + {
  395 + this.id = value;
  396 + }
  397 +
  398 + /**
  399 + * Gets the value of the author property.
  400 + *
  401 + * @return possible object is
  402 + * {@link String }
  403 + */
  404 + public String getAuthor()
  405 + {
  406 + return author;
  407 + }
  408 +
  409 + /**
  410 + * Sets the value of the author property.
  411 + *
  412 + * @param value allowed object is
  413 + * {@link String }
  414 + */
  415 + public void setAuthor(String value)
  416 + {
  417 + this.author = value;
  418 + }
  419 +
  420 + /**
  421 + * Gets the value of the issueId property.
  422 + *
  423 + * @return possible object is
  424 + * {@link String }
  425 + */
  426 + public String getIssueId()
  427 + {
  428 + return issueId;
  429 + }
  430 +
  431 + /**
  432 + * Sets the value of the issueId property.
  433 + *
  434 + * @param value allowed object is
  435 + * {@link String }
  436 + */
  437 + public void setIssueId(String value)
  438 + {
  439 + this.issueId = value;
  440 + }
  441 +
  442 + /**
  443 + * Gets the value of the deleted property.
  444 + *
  445 + * @return possible object is
  446 + * {@link String }
  447 + */
  448 + public String getDeleted()
  449 + {
  450 + return deleted;
  451 + }
  452 +
  453 + /**
  454 + * Sets the value of the deleted property.
  455 + *
  456 + * @param value allowed object is
  457 + * {@link String }
  458 + */
  459 + public void setDeleted(String value)
  460 + {
  461 + this.deleted = value;
  462 + }
  463 +
  464 + /**
  465 + * Gets the value of the text property.
  466 + *
  467 + * @return possible object is
  468 + * {@link String }
  469 + */
  470 + public String getText()
  471 + {
  472 + return text;
  473 + }
  474 +
  475 + /**
  476 + * Sets the value of the text property.
  477 + *
  478 + * @param value allowed object is
  479 + * {@link String }
  480 + */
  481 + public void setText(String value)
  482 + {
  483 + this.text = value;
  484 + }
  485 +
  486 + /**
  487 + * Gets the value of the shownForIssueAuthor property.
  488 + *
  489 + * @return possible object is
  490 + * {@link String }
  491 + */
  492 + public String getShownForIssueAuthor()
  493 + {
  494 + return shownForIssueAuthor;
  495 + }
  496 +
  497 + /**
  498 + * Sets the value of the shownForIssueAuthor property.
  499 + *
  500 + * @param value allowed object is
  501 + * {@link String }
  502 + */
  503 + public void setShownForIssueAuthor(String value)
  504 + {
  505 + this.shownForIssueAuthor = value;
  506 + }
  507 +
  508 + /**
  509 + * Gets the value of the created property.
  510 + *
  511 + * @return possible object is
  512 + * {@link String }
  513 + */
  514 + public String getCreated()
  515 + {
  516 + return created;
  517 + }
  518 +
  519 + /**
  520 + * Sets the value of the created property.
  521 + *
  522 + * @param value allowed object is
  523 + * {@link String }
  524 + */
  525 + public void setCreated(String value)
  526 + {
  527 + this.created = value;
  528 + }
  529 +
  530 + /**
  531 + * Gets the value of the name property.
  532 + *
  533 + * @return possible object is
  534 + * {@link String }
  535 + */
  536 + public String getName()
  537 + {
  538 + return name;
  539 + }
  540 +
  541 + /**
  542 + * Sets the value of the name property.
  543 + *
  544 + * @param value allowed object is
  545 + * {@link String }
  546 + */
  547 + public void setName(String value)
  548 + {
  549 + this.name = value;
  550 + }
  551 +
  552 + /**
  553 + * <p>Java class for anonymous complex type.
  554 + * <p/>
  555 + * <p>The following schema fragment specifies the expected content contained within this class.
  556 + * <p/>
  557 + * <pre>
  558 + * &lt;complexType>
  559 + * &lt;simpleContent>
  560 + * &lt;extension base="&lt;http://www.w3.org/2001/XMLSchema>string">
  561 + * &lt;attribute name="type" type="{http://www.w3.org/2001/XMLSchema}string" />
  562 + * &lt;attribute name="role" type="{http://www.w3.org/2001/XMLSchema}string" />
  563 + * &lt;/extension>
  564 + * &lt;/simpleContent>
  565 + * &lt;/complexType>
  566 + * </pre>
  567 + */
  568 + @XmlAccessorType(XmlAccessType.FIELD)
  569 + @XmlType(name = "", propOrder = {"value"})
  570 + public static class Value {
  571 +
  572 + @XmlValue
  573 + protected String value;
  574 +
  575 + @XmlAttribute
  576 + protected String type;
  577 +
  578 + @XmlAttribute
  579 + protected String role;
  580 +
  581 + /**
  582 + * Gets the value of the value property.
  583 + *
  584 + * @return possible object is
  585 + * {@link String }
  586 + */
  587 + public String getValue()
  588 + {
  589 + return value;
  590 + }
  591 +
  592 + /**
  593 + * Sets the value of the value property.
  594 + *
  595 + * @param value allowed object is
  596 + * {@link String }
  597 + */
  598 + public void setValue(String value)
  599 + {
  600 + this.value = value;
  601 + }
  602 +
  603 + /**
  604 + * Gets the value of the type property.
  605 + *
  606 + * @return possible object is
  607 + * {@link String }
  608 + */
  609 + public String getType()
  610 + {
  611 + return type;
  612 + }
  613 +
  614 + /**
  615 + * Sets the value of the type property.
  616 + *
  617 + * @param value allowed object is
  618 + * {@link String }
  619 + */
  620 + public void setType(String value)
  621 + {
  622 + this.type = value;
  623 + }
  624 +
  625 + /**
  626 + * Gets the value of the role property.
  627 + *
  628 + * @return possible object is
  629 + * {@link String }
  630 + */
  631 + public String getRole()
  632 + {
  633 + return role;
  634 + }
  635 +
  636 + /**
  637 + * Sets the value of the role property.
  638 + *
  639 + * @param value allowed object is
  640 + * {@link String }
  641 + */
  642 + public void setRole(String value)
  643 + {
  644 + this.role = value;
  645 + }
  646 + }
  647 + }
  648 +
  649 + /**
  650 + * <p>Java class for anonymous complex type.
  651 + * <p/>
  652 + * <p>The following schema fragment specifies the expected content contained within this class.
  653 + * <p/>
  654 + * <pre>
  655 + * &lt;complexType>
  656 + * &lt;complexContent>
  657 + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
  658 + * &lt;sequence>
  659 + * &lt;element name="value" maxOccurs="unbounded" minOccurs="0">
  660 + * &lt;complexType>
  661 + * &lt;complexContent>
  662 + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
  663 + * &lt;attribute name="type" type="{http://www.w3.org/2001/XMLSchema}string" />
  664 + * &lt;attribute name="role" type="{http://www.w3.org/2001/XMLSchema}string" />
  665 + * &lt;/restriction>
  666 + * &lt;/complexContent>
  667 + * &lt;/complexType>
  668 + * &lt;/element>
  669 + * &lt;/sequence>
  670 + * &lt;attribute name="name" type="{http://www.w3.org/2001/XMLSchema}string" />
  671 + * &lt;/restriction>
  672 + * &lt;/complexContent>
  673 + * &lt;/complexType>
  674 + * </pre>
  675 + */
  676 + @XmlAccessorType(XmlAccessType.FIELD)
  677 + @XmlType(name = "", propOrder = {"content"})
  678 + public static class Field {
  679 +
  680 + @XmlElementRef(name = "value", type = JAXBElement.class)
  681 + @XmlMixed
  682 + protected List<Serializable> content;
  683 +
  684 + @XmlAttribute
  685 + protected String name;
  686 +
  687 + /**
  688 + * Gets the value of the content property.
  689 + * <p/>
  690 + * <p/>
  691 + * This accessor method returns a reference to the live list,
  692 + * not a snapshot. Therefore any modification you make to the
  693 + * returned list will be present inside the JAXB object.
  694 + * This is why there is not a <CODE>set</CODE> method for the content property.
  695 + * <p/>
  696 + * <p/>
  697 + * For example, to add a new item, do as follows:
  698 + * <pre>
  699 + * getContent().add(newItem);
  700 + * </pre>
  701 + * <p/>
  702 + * <p/>
  703 + * <p/>
  704 + * Objects of the following type(s) are allowed in the list
  705 + * {@link String }
  706 + * {@link JAXBElement }{@code <}{@link Issues.Issue.Field.Value }{@code >}
  707 + */
  708 + public List<Serializable> getContent()
  709 + {
  710 + if (content == null) {
  711 + content = new ArrayList<Serializable>();
  712 + }
  713 + return this.content;
  714 + }
  715 +
  716 + /**
  717 + * Gets the value of the name property.
  718 + *
  719 + * @return possible object is
  720 + * {@link String }
  721 + */
  722 + public String getName()
  723 + {
  724 + return name;
  725 + }
  726 +
  727 + /**
  728 + * Sets the value of the name property.
  729 + *
  730 + * @param value allowed object is
  731 + * {@link String }
  732 + */
  733 + public void setName(String value)
  734 + {
  735 + this.name = value;
  736 + }
  737 +
  738 + /**
  739 + * <p>Java class for anonymous complex type.
  740 + * <p/>
  741 + * <p>The following schema fragment specifies the expected content contained within this class.
  742 + * <p/>
  743 + * <pre>
  744 + * &lt;complexType>
  745 + * &lt;complexContent>
  746 + * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
  747 + * &lt;attribute name="type" type="{http://www.w3.org/2001/XMLSchema}string" />
  748 + * &lt;attribute name="role" type="{http://www.w3.org/2001/XMLSchema}string" />
  749 + * &lt;/restriction>
  750 + * &lt;/complexContent>
  751 + * &lt;/complexType>
  752 + * </pre>
  753 + */
  754 + @XmlAccessorType(XmlAccessType.FIELD)
  755 + @XmlType(name = "")
  756 + public static class Value {
  757 +
  758 + @XmlAttribute
  759 + protected String type;
  760 +
  761 + @XmlAttribute
  762 + protected String role;
  763 +
  764 + /**
  765 + * Gets the value of the type property.
  766 + *
  767 + * @return possible object is
  768 + * {@link String }
  769 + */
  770 + public String getType()
  771 + {
  772 + return type;
  773 + }
  774 +
  775 + /**
  776 + * Sets the value of the type property.
  777 + *
  778 + * @param value allowed object is
  779 + * {@link String }
  780 + */
  781 + public void setType(String value)
  782 + {
  783 + this.type = value;
  784 + }
  785 +
  786 + /**
  787 + * Gets the value of the role property.
  788 + *
  789 + * @return possible object is
  790 + * {@link String }
  791 + */
  792 + public String getRole()
  793 + {
  794 + return role;
  795 + }
  796 +
  797 + /**
  798 + * Sets the value of the role property.
  799 + *
  800 + * @param value allowed object is
  801 + * {@link String }
  802 + */
  803 + public void setRole(String value)
  804 + {
  805 + this.role = value;
  806 + }
  807 + }
  808 + }
  809 + }
  810 +}
... ...
  1 +//
  2 +// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-833
  3 +// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
  4 +// Any modifications to this file will be lost upon recompilation of the source schema.
  5 +// Generated on: 2011.12.05 at 08:56:01 AM CET
  6 +//
  7 +
  8 +package pl.com.it_crowd.youtrack.api.rest;
  9 +
  10 +import javax.xml.bind.JAXBElement;
  11 +import javax.xml.bind.annotation.XmlElementDecl;
  12 +import javax.xml.bind.annotation.XmlRegistry;
  13 +import javax.xml.namespace.QName;
  14 +
  15 +/**
  16 + * This object contains factory methods for each
  17 + * Java content interface and Java element interface
  18 + * generated in the pl.com.it_crowd.youtrack.api.rest package.
  19 + * <p>An ObjectFactory allows you to programatically
  20 + * construct new instances of the Java representation
  21 + * for XML content. The Java representation of XML
  22 + * content can consist of schema derived interfaces
  23 + * and classes representing the binding of schema
  24 + * type definitions, element declarations and model
  25 + * groups. Factory methods for each of these are
  26 + * provided in this class.
  27 + */
  28 +@XmlRegistry
  29 +public class ObjectFactory {
  30 +
  31 + private final static QName _IssuesIssueFieldValue_QNAME = new QName("", "value");
  32 +
  33 + /**
  34 + * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: pl.com.it_crowd.youtrack.api.rest
  35 + */
  36 + public ObjectFactory()
  37 + {
  38 + }
  39 +
  40 + /**
  41 + * Create an instance of {@link Issues.Issue.Comment.Value }
  42 + */
  43 + public Issues.Issue.Comment.Value createIssuesIssueCommentValue()
  44 + {
  45 + return new Issues.Issue.Comment.Value();
  46 + }
  47 +
  48 + /**
  49 + * Create an instance of {@link Issues.Issue.Comment }
  50 + */
  51 + public Issues.Issue.Comment createIssuesIssueComment()
  52 + {
  53 + return new Issues.Issue.Comment();
  54 + }
  55 +
  56 + /**
  57 + * Create an instance of {@link Issues.Issue.Field }
  58 + */
  59 + public Issues.Issue.Field createIssuesIssueField()
  60 + {
  61 + return new Issues.Issue.Field();
  62 + }
  63 +
  64 + /**
  65 + * Create an instance of {@link Issues }
  66 + */
  67 + public Issues createIssues()
  68 + {
  69 + return new Issues();
  70 + }
  71 +
  72 + /**
  73 + * Create an instance of {@link Issues.Issue }
  74 + */
  75 + public Issues.Issue createIssuesIssue()
  76 + {
  77 + return new Issues.Issue();
  78 + }
  79 +
  80 + /**
  81 + * Create an instance of {@link Issues.Issue.Field.Value }
  82 + */
  83 + public Issues.Issue.Field.Value createIssuesIssueFieldValue()
  84 + {
  85 + return new Issues.Issue.Field.Value();
  86 + }
  87 +
  88 + /**
  89 + * Create an instance of {@link JAXBElement }{@code <}{@link Issues.Issue.Field.Value }{@code >}}
  90 + */
  91 + @XmlElementDecl(namespace = "", name = "value", scope = Issues.Issue.Field.class)
  92 + public JAXBElement<Issues.Issue.Field.Value> createIssuesIssueFieldValue(Issues.Issue.Field.Value value)
  93 + {
  94 + return new JAXBElement<Issues.Issue.Field.Value>(_IssuesIssueFieldValue_QNAME, Issues.Issue.Field.Value.class, Issues.Issue.Field.class, value);
  95 + }
  96 +}
... ...
  1 +package pl.com.it_crowd.youtrack.api.rest;
  2 +
  3 +import com.gargoylesoftware.htmlunit.BrowserVersion;
  4 +import com.gargoylesoftware.htmlunit.HttpMethod;
  5 +import com.gargoylesoftware.htmlunit.Page;
  6 +import com.gargoylesoftware.htmlunit.WebClient;
  7 +import com.gargoylesoftware.htmlunit.WebRequest;
  8 +import com.gargoylesoftware.htmlunit.WebResponse;
  9 +import com.gargoylesoftware.htmlunit.util.NameValuePair;
  10 +import pl.com.it_crowd.youtrack.api.IssuesUnmarshaller;
  11 +
  12 +import javax.xml.bind.JAXBException;
  13 +import java.io.IOException;
  14 +import java.net.URL;
  15 +import java.util.ArrayList;
  16 +
  17 +public class YoutrackAPI {
  18 +
  19 + private String serviceLocation;
  20 +
  21 + private WebClient webClient;
  22 +
  23 + public String getServiceLocation()
  24 + {
  25 + return serviceLocation;
  26 + }
  27 +
  28 + public YoutrackAPI(String serviceLocation)
  29 + {
  30 + this.serviceLocation = serviceLocation;
  31 + this.webClient = new WebClient(BrowserVersion.FIREFOX_3_6);
  32 + this.webClient.setJavaScriptEnabled(false);
  33 + this.webClient.setCssEnabled(false);
  34 + }
  35 +
  36 + public YoutrackAPI(String serviceLocation, String username, String password) throws IOException
  37 + {
  38 + this(serviceLocation);
  39 + login(username, password);
  40 + }
  41 +
  42 + public void login(String username, String password) throws IOException
  43 + {
  44 + ArrayList<NameValuePair> requestParameters = new ArrayList<NameValuePair>();
  45 + requestParameters.add(new NameValuePair("login", username));
  46 + requestParameters.add(new NameValuePair("password", password));
  47 + WebRequest request = new WebRequest(new URL(serviceLocation + "/rest/user/login"), HttpMethod.POST);
  48 + request.setRequestParameters(requestParameters);
  49 + WebResponse response = webClient.getPage(request).getWebResponse();
  50 + System.out.println(response);
  51 + System.out.println(response.getContentAsString());
  52 + }
  53 +
  54 + public Issues searchIssuesByProject(String project, String filter) throws JAXBException, IOException
  55 + {
  56 + String url = serviceLocation + "/rest/issue/byproject/" + project + "?filter=" + filter;
  57 + return IssuesUnmarshaller.unmarshal(webClient.<Page>getPage(url).getWebResponse().getContentAsStream());
  58 + }
  59 +}
... ...
  1 +<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
  2 +<issues>
  3 + <issue id="SM-1">
  4 + <field name="voterName"/>
  5 + <field name="Priority">
  6 + <value>Normal</value>
  7 + </field>
  8 + <field name="Type">
  9 + <value>Task</value>
  10 + </field>
  11 + <field name="State">
  12 + <value>Verified</value>
  13 + </field>
  14 + <field name="Subsystem">
  15 + <value>No subsystem</value>
  16 + </field>
  17 + <field name="links">
  18 + <value type="Depend" role="depends on">SM-2</value>
  19 + <value type="Depend" role="depends on">SM-3</value>
  20 + <value type="Depend" role="depends on">SM-4</value>
  21 + <value type="Depend" role="depends on">SM-5</value>
  22 + <value type="Depend" role="depends on">SM-6</value>
  23 + <value type="Depend" role="depends on">SM-7</value>
  24 + <value type="Depend" role="depends on">SM-8</value>
  25 + <value type="Depend" role="depends on">SM-9</value>
  26 + <value type="Depend" role="depends on">SM-10</value>
  27 + </field>
  28 + <field name="projectShortName">
  29 + <value>SM</value>
  30 + </field>
  31 + <field name="numberInProject">
  32 + <value>1</value>
  33 + </field>
  34 + <field name="summary">
  35 + <value>Draw screens</value>
  36 + </field>
  37 + <field name="description">
  38 + <value>Draw screens in Balsamiq, the online tool for drawing screen sketches. http://balsamiq.com/
  39 + As a result the screen image in PNG format and Balsamiq source in XML format are expected.
  40 + Artefacts must be delivered in form of directory structure (not in Enterprise Architect file).
  41 + Partially documented packages will not be accepted.
  42 + Sample directory structure:
  43 + + Package name (directory)
  44 + + Screen name (directory)
  45 + - Screen name.png
  46 + - Screen name.xml
  47 +
  48 + In screens include only elements specific to documented screen. Do not include stuff that will land in template.
  49 + </value>
  50 + </field>
  51 + <field name="created">
  52 + <value>1292829185847</value>
  53 + </field>
  54 + <field name="updated">
  55 + <value>1321871424473</value>
  56 + </field>
  57 + <field name="updaterName">
  58 + <value>root</value>
  59 + </field>
  60 + <field name="resolved">
  61 + <value>1321607946298</value>
  62 + </field>
  63 + <field name="reporterName">
  64 + <value>bernard</value>
  65 + </field>
  66 + <field name="commentsCount">
  67 + <value>0</value>
  68 + </field>
  69 + <field name="votes">
  70 + <value>0</value>
  71 + </field>
  72 + </issue>
  73 + <issue id="SM-2">
  74 + <field name="voterName"/>
  75 + <comment id="39-74" author="bernard" issueId="SM-2" deleted="false" text="See parent task for details." shownForIssueAuthor="false"
  76 + created="1292829250455">
  77 + <replies/>
  78 + </comment>
  79 + <field name="Priority">
  80 + <value>Normal</value>
  81 + </field>
  82 + <field name="Type">
  83 + <value>Task</value>
  84 + </field>
  85 + <field name="State">
  86 + <value>Verified</value>
  87 + </field>
  88 + <field name="Assignee">
  89 + <value>tomek</value>
  90 + </field>
  91 + <field name="Subsystem">
  92 + <value>No subsystem</value>
  93 + </field>
  94 + <field name="links">
  95 + <value type="Depend" role="is required for">SM-1</value>
  96 + </field>
  97 + <field name="projectShortName">
  98 + <value>SM</value>
  99 + </field>
  100 + <field name="numberInProject">
  101 + <value>2</value>
  102 + </field>
  103 + <field name="summary">
  104 + <value>Draw screens for &quot;Courses &amp; classes&quot; package</value>
  105 + </field>
  106 + <field name="created">
  107 + <value>1292829263475</value>
  108 + </field>
  109 + <field name="updated">
  110 + <value>1321871424473</value>
  111 + </field>
  112 + <field name="updaterName">
  113 + <value>root</value>
  114 + </field>
  115 + <field name="resolved">
  116 + <value>1321607946297</value>
  117 + </field>
  118 + <field name="reporterName">
  119 + <value>bernard</value>
  120 + </field>
  121 + <field name="commentsCount">
  122 + <value>1</value>
  123 + </field>
  124 + <field name="votes">
  125 + <value>0</value>
  126 + </field>
  127 + </issue>
  128 + <issue id="SM-3">
  129 + <field name="voterName"/>
  130 + <comment id="39-75" author="bernard" issueId="SM-3" deleted="false" text="See parent task for details." shownForIssueAuthor="false"
  131 + created="1292829295404">
  132 + <replies/>
  133 + </comment>
  134 + <field name="Priority">
  135 + <value>Normal</value>
  136 + </field>
  137 + <field name="Type">
  138 + <value>Task</value>
  139 + </field>
  140 + <field name="State">
  141 + <value>Verified</value>
  142 + </field>
  143 + <field name="Assignee">
  144 + <value>tomek</value>
  145 + </field>
  146 + <field name="Subsystem">
  147 + <value>No subsystem</value>
  148 + </field>
  149 + <field name="links">
  150 + <value type="Depend" role="is required for">SM-1</value>
  151 + </field>
  152 + <field name="projectShortName">
  153 + <value>SM</value>
  154 + </field>
  155 + <field name="numberInProject">
  156 + <value>3</value>
  157 + </field>
  158 + <field name="summary">
  159 + <value>Draw screens for &quot;Discounts&quot; package</value>
  160 + </field>
  161 + <field name="created">
  162 + <value>1292829302297</value>
  163 + </field>
  164 + <field name="updated">
  165 + <value>1321871424473</value>
  166 + </field>
  167 + <field name="updaterName">
  168 + <value>root</value>
  169 + </field>
  170 + <field name="resolved">
  171 + <value>1321607946296</value>
  172 + </field>
  173 + <field name="reporterName">
  174 + <value>bernard</value>
  175 + </field>
  176 + <field name="commentsCount">
  177 + <value>1</value>
  178 + </field>
  179 + <field name="votes">
  180 + <value>0</value>
  181 + </field>
  182 + </issue>
  183 + <issue id="SM-4">
  184 + <field name="voterName"/>
  185 + <comment id="39-76" author="bernard" issueId="SM-4" deleted="false" text="See parent task for details." shownForIssueAuthor="false"
  186 + created="1292829335014">
  187 + <replies/>
  188 + </comment>
  189 + <comment id="39-86" author="tomek" issueId="SM-4" deleted="false"
  190 + text="Some use cases are related to &quot;Students&quot; and &quot;Courses and Classes&quot; packages. These weren't finished yet."
  191 + shownForIssueAuthor="false" created="1292932584457">
  192 + <replies/>
  193 + </comment>
  194 + <field name="Priority">
  195 + <value>Normal</value>
  196 + </field>
  197 + <field name="Type">
  198 + <value>Task</value>
  199 + </field>
  200 + <field name="State">
  201 + <value>Verified</value>
  202 + </field>
  203 + <field name="Assignee">
  204 + <value>tomek</value>
  205 + </field>
  206 + <field name="Subsystem">
  207 + <value>No subsystem</value>
  208 + </field>
  209 + <field name="links">
  210 + <value type="Depend" role="is required for">SM-1</value>
  211 + </field>
  212 + <field name="projectShortName">
  213 + <value>SM</value>
  214 + </field>
  215 + <field name="numberInProject">
  216 + <value>4</value>
  217 + </field>
  218 + <field name="summary">
  219 + <value>Draw screens for &quot;Passes&quot; package</value>
  220 + </field>
  221 + <field name="created">
  222 + <value>1292829339100</value>
  223 + </field>
  224 + <field name="updated">
  225 + <value>1321871424473</value>
  226 + </field>
  227 + <field name="updaterName">
  228 + <value>root</value>
  229 + </field>
  230 + <field name="resolved">
  231 + <value>1321607946296</value>
  232 + </field>
  233 + <field name="reporterName">
  234 + <value>bernard</value>
  235 + </field>
  236 + <field name="commentsCount">
  237 + <value>2</value>
  238 + </field>
  239 + <field name="votes">
  240 + <value>0</value>
  241 + </field>
  242 + </issue>
  243 + <issue id="SM-5">
  244 + <field name="voterName"/>
  245 + <comment id="39-77" author="bernard" issueId="SM-5" deleted="false" text="See parent task for details." shownForIssueAuthor="false"
  246 + created="1292829374840">
  247 + <replies/>
  248 + </comment>
  249 + <comment id="39-83" author="jacek" issueId="SM-5" deleted="true"
  250 + text="Można by się zastanowić czy szkoła ustala listę sprzętu i przy tworzeniu sali wybiera sprzęt z listy, czy po prostu wpisuje w inputa całą listę"
  251 + shownForIssueAuthor="false" created="1292881859712">
  252 + <replies/>
  253 + </comment>
  254 + <comment id="39-84" author="jacek" issueId="SM-5" deleted="false"
  255 + text="Zastanawiam się czy będziemy używać stron w modelu view/edit, czy na liście będziemy mieli przyciski edytuj oraz usuń po których wykonywać się będą odpowiednie akcje"
  256 + shownForIssueAuthor="false" created="1292882323313">
  257 + <replies/>
  258 + </comment>
  259 + <comment id="39-85" author="jacek" issueId="SM-5" deleted="false" text="Będziemy używać komponentów typu input inplace " shownForIssueAuthor="false"
  260 + created="1292924308679">
  261 + <replies/>
  262 + </comment>
  263 + <field name="Priority">
  264 + <value>Normal</value>
  265 + </field>
  266 + <field name="Type">
  267 + <value>Task</value>
  268 + </field>
  269 + <field name="State">
  270 + <value>Verified</value>
  271 + </field>
  272 + <field name="Assignee">
  273 + <value>jacek</value>
  274 + </field>
  275 + <field name="Subsystem">
  276 + <value>No subsystem</value>
  277 + </field>
  278 + <field name="links">
  279 + <value type="Depend" role="is required for">SM-1</value>
  280 + </field>
  281 + <field name="projectShortName">
  282 + <value>SM</value>
  283 + </field>
  284 + <field name="numberInProject">
  285 + <value>5</value>
  286 + </field>
  287 + <field name="summary">
  288 + <value>Draw screens for &quot;Rooms&quot; package</value>
  289 + </field>
  290 + <field name="created">
  291 + <value>1292829377329</value>
  292 + </field>
  293 + <field name="updated">
  294 + <value>1321871424471</value>
  295 + </field>
  296 + <field name="updaterName">
  297 + <value>root</value>
  298 + </field>
  299 + <field name="resolved">
  300 + <value>1321607946295</value>
  301 + </field>
  302 + <field name="reporterName">
  303 + <value>bernard</value>
  304 + </field>
  305 + <field name="commentsCount">
  306 + <value>3</value>
  307 + </field>
  308 + <field name="votes">
  309 + <value>0</value>
  310 + </field>
  311 + </issue>
  312 + <issue id="SM-6">
  313 + <field name="voterName"/>
  314 + <comment id="39-78" author="bernard" issueId="SM-6" deleted="false" text="See parent task for details." shownForIssueAuthor="false"
  315 + created="1292829408224">
  316 + <replies/>
  317 + </comment>
  318 + <field name="Priority">
  319 + <value>Normal</value>
  320 + </field>
  321 + <field name="Type">
  322 + <value>Task</value>
  323 + </field>
  324 + <field name="State">
  325 + <value>Verified</value>
  326 + </field>
  327 + <field name="Assignee">
  328 + <value>tomek</value>
  329 + </field>
  330 + <field name="Subsystem">
  331 + <value>No subsystem</value>
  332 + </field>
  333 + <field name="links">
  334 + <value type="Depend" role="is required for">SM-1</value>
  335 + </field>
  336 + <field name="projectShortName">
  337 + <value>SM</value>
  338 + </field>
  339 + <field name="numberInProject">
  340 + <value>6</value>
  341 + </field>
  342 + <field name="summary">
  343 + <value>Draw screens for &quot;Schools&quot; package</value>
  344 + </field>
  345 + <field name="created">
  346 + <value>1292829411325</value>
  347 + </field>
  348 + <field name="updated">
  349 + <value>1321871424472</value>
  350 + </field>
  351 + <field name="updaterName">
  352 + <value>root</value>
  353 + </field>
  354 + <field name="resolved">
  355 + <value>1321607946294</value>
  356 + </field>
  357 + <field name="reporterName">
  358 + <value>bernard</value>
  359 + </field>
  360 + <field name="commentsCount">
  361 + <value>1</value>
  362 + </field>
  363 + <field name="votes">
  364 + <value>0</value>
  365 + </field>
  366 + </issue>
  367 + <issue id="SM-7">
  368 + <field name="voterName"/>
  369 + <comment id="39-79" author="bernard" issueId="SM-7" deleted="false" text="See parent task for details." shownForIssueAuthor="false"
  370 + created="1292829466655">
  371 + <replies/>
  372 + </comment>
  373 + <field name="Priority">
  374 + <value>Normal</value>
  375 + </field>
  376 + <field name="Type">
  377 + <value>Task</value>
  378 + </field>
  379 + <field name="State">
  380 + <value>Verified</value>
  381 + </field>
  382 + <field name="Assignee">
  383 + <value>jacek</value>
  384 + </field>
  385 + <field name="Subsystem">
  386 + <value>No subsystem</value>
  387 + </field>
  388 + <field name="links">
  389 + <value type="Depend" role="is required for">SM-1</value>
  390 + </field>
  391 + <field name="projectShortName">
  392 + <value>SM</value>
  393 + </field>
  394 + <field name="numberInProject">
  395 + <value>7</value>
  396 + </field>
  397 + <field name="summary">
  398 + <value>Draw screens for &quot;Students&quot; package</value>
  399 + </field>
  400 + <field name="created">
  401 + <value>1292829469581</value>
  402 + </field>
  403 + <field name="updated">
  404 + <value>1321871424472</value>
  405 + </field>
  406 + <field name="updaterName">
  407 + <value>root</value>
  408 + </field>
  409 + <field name="resolved">
  410 + <value>1321607946302</value>
  411 + </field>
  412 + <field name="reporterName">
  413 + <value>bernard</value>
  414 + </field>
  415 + <field name="commentsCount">
  416 + <value>1</value>
  417 + </field>
  418 + <field name="votes">
  419 + <value>0</value>
  420 + </field>
  421 + </issue>
  422 + <issue id="SM-8">
  423 + <field name="voterName"/>
  424 + <comment id="39-80" author="bernard" issueId="SM-8" deleted="false" text="See parent task for details." shownForIssueAuthor="false"
  425 + created="1292829510003">
  426 + <replies/>
  427 + </comment>
  428 + <field name="Priority">
  429 + <value>Normal</value>
  430 + </field>
  431 + <field name="Type">
  432 + <value>Task</value>
  433 + </field>
  434 + <field name="State">
  435 + <value>Verified</value>
  436 + </field>
  437 + <field name="Assignee">
  438 + <value>tomek</value>
  439 + </field>
  440 + <field name="Subsystem">
  441 + <value>No subsystem</value>
  442 + </field>
  443 + <field name="links">
  444 + <value type="Depend" role="is required for">SM-1</value>
  445 + </field>
  446 + <field name="projectShortName">
  447 + <value>SM</value>
  448 + </field>
  449 + <field name="numberInProject">
  450 + <value>8</value>
  451 + </field>
  452 + <field name="summary">
  453 + <value>Draw screens for &quot;Subjects&quot; package</value>
  454 + </field>
  455 + <field name="created">
  456 + <value>1292829513591</value>
  457 + </field>
  458 + <field name="updated">
  459 + <value>1321871424472</value>
  460 + </field>
  461 + <field name="updaterName">
  462 + <value>root</value>
  463 + </field>
  464 + <field name="resolved">
  465 + <value>1321607946301</value>
  466 + </field>
  467 + <field name="reporterName">
  468 + <value>bernard</value>
  469 + </field>
  470 + <field name="commentsCount">
  471 + <value>1</value>
  472 + </field>
  473 + <field name="votes">
  474 + <value>0</value>
  475 + </field>
  476 + </issue>
  477 + <issue id="SM-9">
  478 + <field name="voterName"/>
  479 + <comment id="39-81" author="bernard" issueId="SM-9" deleted="false" text="See parent task for details." shownForIssueAuthor="false"
  480 + created="1292829550576">
  481 + <replies/>
  482 + </comment>
  483 + <field name="Priority">
  484 + <value>Normal</value>
  485 + </field>
  486 + <field name="Type">
  487 + <value>Task</value>
  488 + </field>
  489 + <field name="State">
  490 + <value>Verified</value>
  491 + </field>
  492 + <field name="Assignee">
  493 + <value>tomek</value>
  494 + </field>
  495 + <field name="Subsystem">
  496 + <value>No subsystem</value>
  497 + </field>
  498 + <field name="links">
  499 + <value type="Depend" role="is required for">SM-1</value>
  500 + </field>
  501 + <field name="projectShortName">
  502 + <value>SM</value>
  503 + </field>
  504 + <field name="numberInProject">
  505 + <value>9</value>
  506 + </field>
  507 + <field name="summary">
  508 + <value>Draw screens for &quot;Teachers&quot; package</value>
  509 + </field>
  510 + <field name="created">
  511 + <value>1292829553292</value>
  512 + </field>
  513 + <field name="updated">
  514 + <value>1321871424470</value>
  515 + </field>
  516 + <field name="updaterName">
  517 + <value>root</value>
  518 + </field>
  519 + <field name="resolved">
  520 + <value>1321607946301</value>
  521 + </field>
  522 + <field name="reporterName">
  523 + <value>bernard</value>
  524 + </field>
  525 + <field name="commentsCount">
  526 + <value>1</value>
  527 + </field>
  528 + <field name="votes">
  529 + <value>0</value>
  530 + </field>
  531 + </issue>
  532 + <issue id="SM-10">
  533 + <field name="voterName"/>
  534 + <comment id="39-82" author="bernard" issueId="SM-10" deleted="false" text="See parent task for details." shownForIssueAuthor="false"
  535 + created="1292829586642">
  536 + <replies/>
  537 + </comment>
  538 + <field name="Priority">
  539 + <value>Normal</value>
  540 + </field>
  541 + <field name="Type">
  542 + <value>Task</value>
  543 + </field>
  544 + <field name="State">
  545 + <value>Verified</value>
  546 + </field>
  547 + <field name="Assignee">
  548 + <value>tomek</value>
  549 + </field>
  550 + <field name="Subsystem">
  551 + <value>No subsystem</value>
  552 + </field>
  553 + <field name="links">
  554 + <value type="Depend" role="is required for">SM-1</value>
  555 + </field>
  556 + <field name="projectShortName">
  557 + <value>SM</value>
  558 + </field>
  559 + <field name="numberInProject">
  560 + <value>10</value>
  561 + </field>
  562 + <field name="summary">
  563 + <value>Draw screens for &quot;Users&quot; package</value>
  564 + </field>
  565 + <field name="created">
  566 + <value>1292829588016</value>
  567 + </field>
  568 + <field name="updated">
  569 + <value>1321871424471</value>
  570 + </field>
  571 + <field name="updaterName">
  572 + <value>root</value>
  573 + </field>
  574 + <field name="resolved">
  575 + <value>1321607946300</value>
  576 + </field>
  577 + <field name="reporterName">
  578 + <value>bernard</value>
  579 + </field>
  580 + <field name="commentsCount">
  581 + <value>1</value>
  582 + </field>
  583 + <field name="votes">
  584 + <value>0</value>
  585 + </field>
  586 + </issue>
  587 +</issues>
\ No newline at end of file
... ...
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  3 + <xs:element name="issues">
  4 + <xs:complexType>
  5 + <xs:sequence>
  6 + <xs:element name="issue" maxOccurs="unbounded" minOccurs="0">
  7 + <xs:complexType>
  8 + <xs:choice maxOccurs="unbounded" minOccurs="0">
  9 + <xs:element name="field">
  10 + <xs:complexType mixed="true">
  11 + <xs:sequence>
  12 + <xs:element name="value" maxOccurs="unbounded" minOccurs="0">
  13 + <xs:complexType>
  14 + <xs:attribute type="xs:string" name="type" use="optional"/>
  15 + <xs:attribute type="xs:string" name="role" use="optional"/>
  16 + </xs:complexType>
  17 + </xs:element>
  18 + </xs:sequence>
  19 + <xs:attribute type="xs:string" name="name" use="optional"/>
  20 + </xs:complexType>
  21 + </xs:element>
  22 + <xs:element name="comment">
  23 + <xs:complexType>
  24 + <xs:sequence>
  25 + <xs:element type="xs:string" name="replies" minOccurs="0"/>
  26 + <xs:element name="value" minOccurs="0">
  27 + <xs:complexType>
  28 + <xs:simpleContent>
  29 + <xs:extension base="xs:string">
  30 + <xs:attribute type="xs:string" name="type" use="optional"/>
  31 + <xs:attribute type="xs:string" name="role" use="optional"/>
  32 + </xs:extension>
  33 + </xs:simpleContent>
  34 + </xs:complexType>
  35 + </xs:element>
  36 + </xs:sequence>
  37 + <xs:attribute type="xs:string" name="id" use="optional"/>
  38 + <xs:attribute type="xs:string" name="author" use="optional"/>
  39 + <xs:attribute type="xs:string" name="issueId" use="optional"/>
  40 + <xs:attribute type="xs:string" name="deleted" use="optional"/>
  41 + <xs:attribute type="xs:string" name="text" use="optional"/>
  42 + <xs:attribute type="xs:string" name="shownForIssueAuthor" use="optional"/>
  43 + <xs:attribute type="xs:string" name="created" use="optional"/>
  44 + <xs:attribute type="xs:string" name="name" use="optional"/>
  45 + </xs:complexType>
  46 + </xs:element>
  47 + </xs:choice>
  48 + <xs:attribute type="xs:string" name="id" use="optional"/>
  49 + </xs:complexType>
  50 + </xs:element>
  51 + </xs:sequence>
  52 + </xs:complexType>
  53 + </xs:element>
  54 +</xs:schema>
\ No newline at end of file
... ...
Please register or login to post a comment