Retrieves feature content data from the source system APIs and places it in a MongoDB for later retrieval and use by the DevOps Dashboard This project uses Spring Boot to package the collector as an executable JAR with dependencies.

Execute the following command to package the collector into an executable JAR file.

    mvn install

Copy this file to your server and launch it using:

  java -JAR jira-feature-collector.jar

You will need to provide an application.properties file that contains information about how to connect to the Dashboard MongoDB database instance, as well as properties the Hudson collector requires. See the Spring Boot [documentation](http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#boot-features-external-config-application-property-files) for information about sourcing this properties file.

Sample application.properties file
  #Database Name - default is test
  spring.data.mongodb.database=dashboard

  #Database HostName - default is localhost
  spring.data.mongodb.host=10.0.1.1

  #Database Port - default is 27017
  spring.data.mongodb.port=9999

  #Database Username - default is blank
  spring.data.mongodb.username=db

  #Database Password - default is blank
  spring.data.mongodb.password=dbpass

  #Collector schedule (required)
  feature.cron=0 * * * * *

  #Page size for data calls (Jira maxes at 1000)
  feature.pageSize=1000

  #In-built folder housing prepared REST queries (required)
  feature.queryFolder=jiraapi-queries

  #Jira API Query file names (String template requires the files to have .st extension) (required)
  feature.storyQuery=story
  feature.epicQuery=epic
  feature.projectQuery=projectinfo
  feature.memberQuery=memberinfo
  feature.sprintQuery=sprintinfo
  feature.teamQuery=teaminfo
  feature.trendingQuery=trendinginfo

  #Jira Connection Details
  feature.jiraProxyUrl=http://proxy.com
  feature.jiraProxyPort=9999

  # Trending Query:  Number of days in a sprint (not-required)
  feature.sprintDays=60
  # Trending Query:  Length of sprint week (not-required)
  feature.sprintEndPrior=7

  #Scheduled Job prior minutes to recover data created during execution time (usually, 2 minutes is enough)
  feature.scheduledPriorMin=2

  #Delta change date that modulates the collector item task - should be about as far back as possible, in ISO format (required)
  feature.deltaCollectorItemStartDate=2008-01-01T00:00:00.000000

  #Jira Connection Details
  feature.jiraBaseUrl=http://jira-instance.com/
  #64-bit encoded credentials with the pattern username:password
  feature.jiraCredentials=YWxsIHlvdXIgYmFzZSBhcmUgYmVsb25nIHRvIHVzOiB5b3UgYXJlIG9uIHRoZSB3YXkgdG8gZGVzdHJ1Y3Rpb246IG1ha2UgeW91ciB0aW1l
  #OAuth2.0 token credentials (currently not supported in this version)
  feature.jiraOauthAuthtoken=sdfghjkl==
  feature.jiraOauthRefreshtoken=sdfagheh==
  feature.jiraOauthRedirecturi=uri.this.is.test:uri
  feature.jiraOauthExpiretime=234567890987
  # In Jira, general IssueType IDs are associated to various "issue"
  # attributes. However, there is one attribute which this collector's
  # queries rely on that change between different instantiations of Jira.
  # Please provide the name value reference to your instance's IssueType for
  # the lowest level of Issues (e.g., "user story") specific to your Jira
  # instance.  Note:  You can retrieve your instance's IssueType Name
  # listings via the following URI:
  # https://[your-jira-domain-name]/rest/api/2/issuetype/.  It is listed as
  # attribute "name" in the JSON response.
  feature.jiraIssueTypeId=Story
  # In Jira, your instance will have its own custom field created for "sprint" or "timebox" details,
  # which includes a list of information.  This field allows you to specify that data field for your
  # instance of Jira. Note: You can retrieve your instance's sprint data field name
  # via the following URI, and look for a package name com.atlassian.greenhopper.service.sprint.Sprint;
  # your custom field name describes the values in this field:
  # https://[your-jira-domain-name]/rest/api/2/issue/[some-issue-name]
  feature.jiraSprintDataFieldName=customfield_10007
  # In Jira, your instance will have its own custom field created for "super story" or "epic" back-end ID,
  # which includes a list of information.  This field allows you to specify that data field for your instance
  # of Jira.  Note:  You can retrieve your instance's epic ID field name via the following URI where your
  # queried user story issue has a super issue (e.g., epic) tied to it; your custom field name describes the
  # epic value you expect to see, and is the only field that does this for a given issue:
  # https://[your-jira-domain-name]/rest/api/2/issue/[some-issue-name]
  feature.jiraEpicIdFieldName=customfield_10400

  #Start dates from which to begin collector data, if no other data is present - usually, a month back is appropriate (required)
  feature.deltaStartDate=2015-03-01T00:00:00.000000
  feature.masterStartDate=2008-01-01T00:00:00.000000

  #Core Artifacts
  # These arrays of status mappings must be completed in order for custom source system statuses to be providable by
  # Hygieia.  Currently, Hygieia only maps to the following 3 status mappings:  to do, doing, and done.  You can find
  # all available issue status mappings by going to your instance's version of the following API call:
  # http://fake.jira.com/rest/api/2/status/.  Your statuses are listed in the JSON response as "name."
  feature.todoStatuses[0]=
  feature.doingStatuses[0]=
  feature.doneStatuses[0]=