Class JiraReader
- Direct Known Subclasses:
JiraEpicReader,JiraIssueReader,JiraProjectReader,JiraSprintReader
Base class for readers that page through a Jira REST resource, returning each item of every page as a record.
-
Nested Class Summary
Nested classes/interfaces inherited from class com.northconcepts.datapipeline.core.DataEndpoint
DataEndpoint.State -
Field Summary
Fields inherited from class com.northconcepts.datapipeline.core.DataReader
fieldLineage, recordLineageFields inherited from class com.northconcepts.datapipeline.core.DataEndpoint
lastRecord, PRODUCT, PRODUCT_VERSION, VENDOR, XML_INPUT_FACTORY_KEYFields inherited from class com.northconcepts.datapipeline.core.Endpoint
BUFFER_SIZE, captureElapsedTime, DEFAULT_READ_BUFFER_SIZEFields inherited from class com.northconcepts.datapipeline.core.DataObject
id, log, name, TIMESTAMP_FORMAT -
Constructor Summary
ConstructorsConstructorDescriptionJiraReader(String domain, String username, String apiKey) Creates a reader for the Jira site at thedomainbase URL, authenticating with the username and API key. -
Method Summary
Modifier and TypeMethodDescriptionaddExceptionProperties(DataException exception) Adds this endpoint's current state to aDataException.voidclose()Indicates that this endpoint has finished reading or writing.intIndicates the number of items to retrieve per batch.protected JiraClientReturns the Jira REST client created byopen(); only valid while the reader is open.protected abstract RecordFetches the next page as a record with anisLastflag and the item array (namedvaluesunless changed bysetRecordsFieldName(String)), or returns null to end the read.longIndicates the maximum number of items to return.intIndicates the first offset to start returning.longReturns the number of items fetched so far, or -1 before the first page is fetched.voidopen()Makes this endpoint ready for reading or writing.protected RecordreadImpl()Overridden by subclasses to read the next record from thisDataReader.protected booleanFetches the next page viagetIssuesRecord()and buffers its items; returns false after the last page, if the page is null or empty, or if at leastgetMaxItems()items were already fetched.setBatchSize(int batchSize) Indicates the number of items to retrieve per batch.protected JiraReadersetIssuesRecord(Record issuesRecord) setMaxItems(long maxItems) Indicates the maximum number of items to return.protected JiraReadersetPageOffset(int pageOffset) Indicates the first offset to start returning.protected JiraReadersetRecordsFieldName(String recordsFieldName) Sets the name of the array field in each page that holds the items to return (defaults to"values").protected JiraReadersetTotalItems(long totalItems) Sets the number of items fetched so far; no further pages are fetched once it reachesgetMaxItems().Methods inherited from class com.northconcepts.datapipeline.core.DataReader
addLineage, available, getBufferSize, getNestedEndpoint, getNestedReader, getReader, getRootEndpoint, getRootReader, isExhausted, isLineageSupported, isSaveLineage, peek, pop, push, read, setSaveLineage, skipMethods inherited from class com.northconcepts.datapipeline.core.DataEndpoint
decrementRecordCount, enableJmx, getLastRecord, getRecordCount, getRecordCountAsBigInteger, getRecordCountAsString, incrementRecordCount, isRecordCountBigInteger, resetRecordCount, toStringMethods inherited from class com.northconcepts.datapipeline.core.Endpoint
addElapsedtime, assertClosed, assertNotOpened, assertOpened, finalize, getClosedOn, getDescription, getElapsedTime, getElapsedTimeAsString, getOpenedOn, getOpenElapsedTime, getOpenElapsedTimeAsString, getSelfTime, getSelfTimeAsString, getState, isCaptureElapsedTime, isClosed, isOpen, setCaptureElapsedTime, setDescription
-
Constructor Details
-
JiraReader
Creates a reader for the Jira site at thedomainbase URL, authenticating with the username and API key.
-
-
Method Details
-
getIssuesRecord
Fetches the next page as a record with anisLastflag and the item array (namedvaluesunless changed bysetRecordsFieldName(String)), or returns null to end the read. -
getPageOffset
public int getPageOffset()Indicates the first offset to start returning. -
setPageOffset
Indicates the first offset to start returning. -
getBatchSize
public int getBatchSize()Indicates the number of items to retrieve per batch. -
setBatchSize
Indicates the number of items to retrieve per batch. -
getTotalItems
public long getTotalItems()Returns the number of items fetched so far, or -1 before the first page is fetched. -
setTotalItems
Sets the number of items fetched so far; no further pages are fetched once it reachesgetMaxItems(). -
getMaxItems
public long getMaxItems()Indicates the maximum number of items to return. -
setMaxItems
Indicates the maximum number of items to return. -
setIssuesRecord
-
setRecordsFieldName
Sets the name of the array field in each page that holds the items to return (defaults to"values"). -
getClient
Returns the Jira REST client created byopen(); only valid while the reader is open. -
open
Description copied from class:DataEndpointMakes this endpoint ready for reading or writing.- Overrides:
openin classIntegrationReader- Throws:
DataException
-
close
Description copied from class:DataEndpointIndicates that this endpoint has finished reading or writing.- Overrides:
closein classDataEndpoint- Throws:
DataException
-
readImpl
Description copied from class:DataReaderOverridden by subclasses to read the next record from thisDataReader. The default implementation ofDataReader.read()now insures that this method will not be called again after it returns anull.If no record is available,
nullwill be returned.Contract for subclasses (see also
docs/authoring/DataReader.md):- Return
nullexactly once to signal end-of-stream. - Do not call this method directly —
DataReader.read()is the template method that wraps exceptions, increments the record count, and tracks lineage. - Do not call
DataEndpoint.incrementRecordCount()here;DataReader.read()already does. - Throw raw exceptions;
DataReader.read()wraps them viaexception(throwable).
- Specified by:
readImplin classDataReader
- Return
-
readNextBatch
protected boolean readNextBatch()Fetches the next page viagetIssuesRecord()and buffers its items; returns false after the last page, if the page is null or empty, or if at leastgetMaxItems()items were already fetched. The limit is only checked before a page is fetched, so up to one page more than the limit can be buffered. -
addExceptionProperties
Description copied from class:EndpointAdds this endpoint's current state to aDataException. Since this method is called whenever an exception is thrown, subclasses should override it to add their specific information.- Overrides:
addExceptionPropertiesin classDataReader
-