public class BulkLoaderImpl extends LoaderImpl implements BulkLoader
Created: February 16 2005
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
CLASS_VERSION
Class version string
|
protected static RepositoryItem[] |
EMPTY_REPOSITORY_ARRAY |
DELETE_DOCUMENT, GET_GENERATOR_PROPERTY, GET_META_PROPERTY, GET_TEXT_PROPERTY, MY_RESOURCE_NAME, PROCESS_PROPERTIES, REGENERATE_FOR_CHANGE, REPOSITORY_ID_PROPERTY_NAME, sResourceBundle, START_QUERY
SERVICE_INFO_KEY
DEFAULT_LOG_TRACE_STATUS
DEFAULT_LOG_DEBUG_STATUS, DEFAULT_LOG_ERROR_STATUS, DEFAULT_LOG_INFO_STATUS, DEFAULT_LOG_WARNING_STATUS
Constructor and Description |
---|
BulkLoaderImpl() |
Modifier and Type | Method and Description |
---|---|
boolean |
anyItemOfType(java.util.Set<AssetVersion> pItems,
java.util.Set<RepositoryItemDescriptor> pItemTypes,
java.util.Set<RepositoryItemDescriptor> pIgnoredTypeCache)
Return true if set of AssetVersion items (pItems) contains at
least one instance of a repository item which is of any type, or
any subtype, of the types specified in pItemTypes.
|
java.util.List<RepositoryItem> |
assetVersionsToRepositoryItems(java.util.Collection<AssetVersion> pAssetVersions)
Return a potentially empty or null list of repository items from
the collection of AssetVersion objects.
|
atg.repository.search.indexing.BulkLoaderResults |
bulkLoad(IndexingOutputConfig pOutputConfig)
Do a bulk load, using the query pQuery for the top-level
repository items.
|
atg.repository.search.indexing.BulkLoaderResults |
bulkLoad(IndexingOutputConfig pOutputConfig,
Query pQuery)
Do a bulk load, using the query
pQuery . |
atg.repository.search.indexing.BulkLoaderResults |
bulkLoad(IndexingOutputConfig pOutputConfig,
Query pQuery,
atg.repository.search.indexing.DocumentSubmitterSession pDocSubSession)
Do a bulk load, using the query
pQuery . |
atg.repository.search.indexing.BulkLoaderResults |
bulkLoad(IndexingOutputConfig pOutputConfig,
Query pQuery,
atg.repository.search.indexing.DocumentSubmitterSession pDocSubSession,
boolean pDeleteGenerations,
atg.search.index.IndexInfo pIndexInfo)
Do a bulk load, using the query
pQuery . |
atg.repository.search.indexing.BulkLoaderResults |
bulkLoadWithRetry(IndexingOutputConfig pOutputConfig,
atg.repository.search.indexing.DocumentSubmitterSession pDocSubSession,
int pTimeoutMinutes,
atg.search.index.IndexInfo pIndexInfo)
Attempt a bulk load, retrying if someone else is
currently updating.
|
Context |
createTestContext(IndexingOutputConfig pOutputConfig,
atg.search.index.IndexInfo pIndexInfo)
Create a testing Context.
|
void |
deleteGenerationChanges(IndexingOutputConfig pOutputConfig,
java.lang.String pContentId,
int pGeneration)
Delete changes for IndexingOutputConfig and all generations in
generation set.
|
protected RepositoryItem[] |
fetchItemsUsingThreadedQueue(atg.repository.search.indexing.ThreadedItemQueue pTiq)
Retrieves the next repository item from the ThreadItemQueue
|
atg.repository.search.indexing.DocumentSubmitterSession |
generateTestDocument(IndexingOutputConfig pOutputConfig,
DocumentSubmitter pDocSubmitter,
RepositoryItem pItem,
atg.search.index.IndexInfo pIndexInfo)
Generate a single output document for specified item, return the
sesion.
|
CurrentDate |
getCurrentDate()
Returns the currently effective date property.
|
java.util.Collection<atg.repository.search.indexing.DevLineIndexInfo> |
getDevelopmentLines(IndexingOutputConfig pOutputConfig)
Return the development lines to load.
|
int |
getGcCallingRangeSize()
Get range size for calling garbage collector, if any.
|
atg.xml.jaxb.JaxbInvoker |
getJaxbUnmarshaller()
The jaxb unmarshaller used by IndexingOutputConfigs.
|
protected Query |
getPagedQuery(RepositoryView pView,
RepositoryItemGroup pGroup,
java.lang.Object pLastRepositoryId)
Deprecated.
Use
getPagedQuery(RepositoryView, RepositoryItemGroup, Object, IndexingOutputConfig)
This deprecated method will not apply the RepositoryItemGroup constraint defined in the IndexingOutputConfig to the batch query.
This deprecated method does not support sharding. |
protected Query |
getPagedQuery(RepositoryView pView,
RepositoryItemGroup pGroup,
java.lang.Object pLastRepositoryId,
IndexingOutputConfig pIndexingOutputConfig)
Get the batched query.
|
protected QueryOptions |
getPagedQueryOptions(java.lang.String pRepoIdPropName)
Get the query options for paged queries.
|
int |
getPagedQuerySize()
Get query page size for the top-level query, if any.
|
protected RepositoryPropertyDescriptor |
getRepositoryIdPropertyDescriptor(RepositoryItemDescriptor pItemDesc)
Return the string name of the repository id.
|
boolean |
isItemOfTypeInSet(java.util.Set<RepositoryItemDescriptor> pTypes,
RepositoryItemDescriptor pType)
Return true of item descriptor is of a type, or subtype of a
type, in the set of types.
|
protected void |
loadIteration(IndexingOutputConfig pOutputConfig,
Context pContext,
Query pQuery,
atg.repository.search.indexing.DocumentSubmitterSession pDocSubSession,
RepositoryItem[] pItems) |
protected void |
loadPagedIteration(IndexingOutputConfig pOutputConfig,
Context pContext,
Query pQuery,
atg.repository.search.indexing.DocumentSubmitterSession pDocSubSession)
Perform a page iteration over the set of top-level repository items.
|
void |
postIndexingCleanup(IndexingOutputConfig pOutputConfig,
boolean pSuccess,
atg.repository.search.indexing.BulkLoaderResults pResults)
Called after a SearchAdmin indexing invocation to perform
post-index housekeeping.
|
void |
setCurrentDate(CurrentDate pCurrentDate)
Sets the current effective date property.
|
void |
setGcCallingRangeSize(int pGcCallingRangeSize)
Set range size for calling garbage collector, if any.
|
void |
setJaxbUnmarshaller(atg.xml.jaxb.JaxbInvoker pJaxbUnmarshaller)
The jaxb unmarshaller used by IndexingOutputConfigs.
|
void |
setPagedQuerySize(int pPagedQuerySize)
Set query page size for the top-level query, if any.
|
protected java.util.Map<java.lang.String,AssetVersion> |
uriMapFromAssetVersions(java.util.Set<AssetVersion> pAssetVersions)
Return a set of version manager, versionless asset URIs
corresponding to the specified AssetVersion objects.
|
addActiveContext, adjustIncrementalQueue, afterSessionStart, beforeSessionEnd, cancelActiveContext, claimGeneration, createAdminServlet, createContext, createEmptyOutputDocumentContent, createMembershipContextSet, deleteDocumentItem, deleteOrExcludeItem, doStartService, doStopService, getActiveContextStatuses, getArrayFromMultiRepoItems, getConfigStatePersister, getDocumentsPerTransaction, getIncrementalItemQueue, getLoggingInfoStatusCount, getTransactionManager, getUpdateActivityTimeMillis, getUpdateLastActivityTimeInSeparateThread, initContext, isConnectionRelated, isEchoDocumentsToStdout, isItemLoggingDebug, isPrettyPrint, isPropertyLoggingDebug, isSubTypeOfItemDesc, isTransactionPerDocument, nextQueuedUpdateActivity, outputAndSubmitDocument, popMembershipContexts, popMembershipContexts, processItem, processMetaProperty, processParentProperties, processProperties, processProperties, processTextProperty, pushMembershipContexts, pushMembershipContexts, pushMembershipContextsIfUsedByRepository, queueUpdateActivity, releaseContext, releaseGeneration, removeActiveContext, repositoryUsesMembershipContext, resetContextAfterDocument, setConfigStatePersister, setDocumentsPerTransaction, setEchoDocumentsToStdout, setIncrementalItemQueue, setItemLoggingDebug, setLoggingInfoStatusCount, setNextIncrementalGeneration, setPrettyPrint, setPropertyLoggingDebug, setTransactionPerDocument, setUpdateActivityTimeMillis, setUpdateLastActivityTimeInSeparateThread, splitPropertyValue, updateActivity
addLogListener, getAbsoluteName, getAdminServlet, getAdminServletOutputStreamEncoding, getLoggingForVlogging, getLogListenerCount, getLogListeners, getName, getNameContext, getNucleus, getRoot, getServiceConfiguration, getServiceInfo, isAdminServletUseServletOutputStream, isLoggingDebug, isLoggingError, isLoggingInfo, isLoggingTrace, isLoggingWarning, isRunning, logDebug, logDebug, logDebug, logError, logError, logError, logInfo, logInfo, logInfo, logTrace, logTrace, logTrace, logWarning, logWarning, logWarning, nameContextElementBound, nameContextElementUnbound, removeLogListener, reResolveThis, resolveName, resolveName, resolveName, resolveName, sendLogEvent, setAdminServletOutputStreamEncoding, setAdminServletUseServletOutputStream, setLoggingDebug, setLoggingError, setLoggingInfo, setLoggingTrace, setLoggingWarning, setNucleus, setServiceInfo, startService, stopService
vlogDebug, vlogDebug, vlogDebug, vlogDebug, vlogDebugTrace, vlogError, vlogError, vlogError, vlogError, vlogInfo, vlogInfo, vlogInfo, vlogInfo, vlogTrace, vlogTrace, vlogTrace, vlogTrace, vlogWarning, vlogWarning, vlogWarning, vlogWarning
public static java.lang.String CLASS_VERSION
protected static final RepositoryItem[] EMPTY_REPOSITORY_ARRAY
public void setCurrentDate(CurrentDate pCurrentDate)
pCurrentDate
- - parameter holding the current date instance to usepublic CurrentDate getCurrentDate()
public void setJaxbUnmarshaller(atg.xml.jaxb.JaxbInvoker pJaxbUnmarshaller)
public atg.xml.jaxb.JaxbInvoker getJaxbUnmarshaller()
getJaxbUnmarshaller
in interface BulkLoader
public void setPagedQuerySize(int pPagedQuerySize)
public int getPagedQuerySize()
public void setGcCallingRangeSize(int pGcCallingRangeSize)
public int getGcCallingRangeSize()
public atg.repository.search.indexing.BulkLoaderResults bulkLoadWithRetry(IndexingOutputConfig pOutputConfig, atg.repository.search.indexing.DocumentSubmitterSession pDocSubSession, int pTimeoutMinutes, atg.search.index.IndexInfo pIndexInfo) throws IndexingException
bulkLoadWithRetry
in interface BulkLoader
pOutputConfig
- the output configuration to bulkLoadpTimeoutMinutes
- the timeout minutes.pDocSubSession
- the existing document submitter session.
if null, will create a new document submitter session.pTimeoutMinutes
- the timeout minutes.pIndexInfo
- The IndexInfo as supplied by the SearchAdmin
if null, will create a new document submitter session.IndexingException
public atg.repository.search.indexing.BulkLoaderResults bulkLoad(IndexingOutputConfig pOutputConfig) throws IndexingException
bulkLoad
in interface BulkLoader
pOutputConfig
- The output configurationIndexingException
public atg.repository.search.indexing.BulkLoaderResults bulkLoad(IndexingOutputConfig pOutputConfig, Query pQuery) throws IndexingException
pQuery
.bulkLoad
in interface BulkLoader
pOutputConfig
- The output configurationpQuery
- the query to use for bulk loadingIndexingException
protected QueryOptions getPagedQueryOptions(java.lang.String pRepoIdPropName)
pRepoIdPropName
- The repository id property name.@Deprecated protected Query getPagedQuery(RepositoryView pView, RepositoryItemGroup pGroup, java.lang.Object pLastRepositoryId)
getPagedQuery(RepositoryView, RepositoryItemGroup, Object, IndexingOutputConfig)
This deprecated method will not apply the RepositoryItemGroup constraint defined in the IndexingOutputConfig to the batch query.
This deprecated method does not support sharding.pView
- the top-level repository item view.pGroup
- the top-level repository item group (if any, may be null)pLastRepositoryId
- the repository ID of the last repository item processed. Should be null the first time this method is invoked.protected Query getPagedQuery(RepositoryView pView, RepositoryItemGroup pGroup, java.lang.Object pLastRepositoryId, IndexingOutputConfig pIndexingOutputConfig)
pView
- the top-level repository item view.pGroup
- the top-level repository item group (if any, may be null)pLastRepositoryId
- the repository ID of the last repository item processed. Should be null the first time this method is invoked.pIndexingOutputConfig
- The bulk load query is generated from IndexingOutputConfig.getBulkLoadQuery(RepositoryView, Query)
protected RepositoryPropertyDescriptor getRepositoryIdPropertyDescriptor(RepositoryItemDescriptor pItemDesc)
protected RepositoryItem[] fetchItemsUsingThreadedQueue(atg.repository.search.indexing.ThreadedItemQueue pTiq) throws IndexingException
IndexingException
atg.repository.search.indexing.ThreadItemQueue
protected void loadPagedIteration(IndexingOutputConfig pOutputConfig, Context pContext, Query pQuery, atg.repository.search.indexing.DocumentSubmitterSession pDocSubSession) throws IndexingException, RepositoryException
IndexingException
RepositoryException
protected void loadIteration(IndexingOutputConfig pOutputConfig, Context pContext, Query pQuery, atg.repository.search.indexing.DocumentSubmitterSession pDocSubSession, RepositoryItem[] pItems) throws IndexingException, RepositoryException
pOutputConfig
- the output configurationpContext
- the indexing contextpQuery
- optional query to select top-level items (may be null)pDocSubSession
- the document submitter sessionpItems
- an optional array of items to index, if already calculatedIndexingException
RepositoryException
public java.util.List<RepositoryItem> assetVersionsToRepositoryItems(java.util.Collection<AssetVersion> pAssetVersions)
pAssetVersions
- the AssetVersion collectionpublic Context createTestContext(IndexingOutputConfig pOutputConfig, atg.search.index.IndexInfo pIndexInfo)
pOutputConfig
- the IndexingOutputConfig to use.pSubmitter
- the document submitter to set.public atg.repository.search.indexing.DocumentSubmitterSession generateTestDocument(IndexingOutputConfig pOutputConfig, DocumentSubmitter pDocSubmitter, RepositoryItem pItem, atg.search.index.IndexInfo pIndexInfo)
pOutputConfig
- the indexing output config to usepDocSubmitter
- the document submitter to usepItem
- the repository item to usepIndexInfo
- the IndexInfo objectpublic atg.repository.search.indexing.BulkLoaderResults bulkLoad(IndexingOutputConfig pOutputConfig, Query pQuery, atg.repository.search.indexing.DocumentSubmitterSession pDocSubSession) throws IndexingException
pQuery
.bulkLoad
in interface BulkLoader
pOutputConfig
- The output configurationpQuery
- the query to use for the top-level itemspDocSubSession
- the existing document submitter session.
if null, will create a new document submitter session.IndexingException
public atg.repository.search.indexing.BulkLoaderResults bulkLoad(IndexingOutputConfig pOutputConfig, Query pQuery, atg.repository.search.indexing.DocumentSubmitterSession pDocSubSession, boolean pDeleteGenerations, atg.search.index.IndexInfo pIndexInfo) throws IndexingException
pQuery
.bulkLoad
in interface BulkLoader
pOutputConfig
- The output configurationpQuery
- the query to use for the top-level itemspDocSubSession
- the existing document submitter session.
if null, will create a new document submitter session.pDeleteGenerations
- If true, delete incremental generations
up to and including the last generation indexed in this
invocation. This value is true if this method has not been
invoked by the SearchAdmin, or there is no other similar
process that will be calling postIndexingCleanup() for this
operation.pTimeoutMinutes
- the timeout minutes.IndexingException
public void deleteGenerationChanges(IndexingOutputConfig pOutputConfig, java.lang.String pContentId, int pGeneration)
pOutputConfig
- the output config with associated change generationspGenerations
- the set of generations to deletepublic void postIndexingCleanup(IndexingOutputConfig pOutputConfig, boolean pSuccess, atg.repository.search.indexing.BulkLoaderResults pResults)
postIndexingCleanup
in interface BulkLoader
pOutputConfig
- the IndexingOutputConfigpSuccess
- True if SearchAdmin indexing process completed
successfully, false if rolled backpResults
- The local bulk indexing job resultspublic java.util.Collection<atg.repository.search.indexing.DevLineIndexInfo> getDevelopmentLines(IndexingOutputConfig pOutputConfig)
public boolean isItemOfTypeInSet(java.util.Set<RepositoryItemDescriptor> pTypes, RepositoryItemDescriptor pType)
pTypes
- the set of typespType
- the type to test for typehoodpublic boolean anyItemOfType(java.util.Set<AssetVersion> pItems, java.util.Set<RepositoryItemDescriptor> pItemTypes, java.util.Set<RepositoryItemDescriptor> pIgnoredTypeCache)
pDevLineItems
- a set of AssetVersion items from a
development linepItemTypes
- a set of item descriptorspIgnoredTypeCache
- a set of ignored types, or nullprotected java.util.Map<java.lang.String,AssetVersion> uriMapFromAssetVersions(java.util.Set<AssetVersion> pAssetVersions)