|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectnet.shibboleth.utilities.java.support.component.AbstractDestructableInitializableComponent
net.shibboleth.utilities.java.support.component.AbstractDestructableIdentifiableInitializableComponent
net.shibboleth.metadata.pipeline.BaseStage<ItemType>
net.shibboleth.metadata.pipeline.PipelineDemultiplexerStage<ItemType>
ItemType - type of items upon which this stage operates@ThreadSafe public class PipelineDemultiplexerStage<ItemType extends Item<?>>
A stage which, given an item collection and a list of Pipeline and Predicate pairs, sends the
collection of item copies selected by the predicate to the associated pipeline. This stage is similar to
SplitMergeStage but a given item, or more precisely a copy of it, may end up going to more than one pipeline
(or no pipeline).
This stage requires the following properties be set prior to initialization:
PipelineAndSelectionStrategies
If no executorService is provided, one will be created using Executors.newFixedThreadPool(int) with
6 threads.
If no collectionFactory is given, then SimpleItemCollectionFactory is used.
| Field Summary | |
|---|---|
private com.google.common.base.Supplier<Collection<ItemType>> |
collectionFactory
Factory used to create the Item collection that is then given to the pipelines. |
private ExecutorService |
executorService
Service used to execute the selected and/or non-selected item pipelines. |
private Logger |
log
Class logger. |
private List<net.shibboleth.utilities.java.support.collection.Pair<Pipeline<ItemType>,com.google.common.base.Predicate<ItemType>>> |
pipelineAndStrategies
The pipelines through which items are sent and the selection strategy used for that pipeline. |
private boolean |
waitingForPipelines
Whether this child waits for all the invoked pipelines to complete before proceeding. |
| Constructor Summary | |
|---|---|
PipelineDemultiplexerStage()
|
|
| Method Summary | |
|---|---|
protected void |
doDestroy()
|
protected void |
doExecute(Collection<ItemType> itemCollection)
Performs the stage processing on the given Item collection. |
protected void |
doInitialize()
|
com.google.common.base.Supplier<Collection<ItemType>> |
getCollectionFactory()
Gets the factory used to create the Item collection that is then given to the pipelines. |
ExecutorService |
getExecutorService()
Gets the executor service used to run the selected and non-selected item pipelines. |
List<net.shibboleth.utilities.java.support.collection.Pair<Pipeline<ItemType>,com.google.common.base.Predicate<ItemType>>> |
getPipelineAndSelectionStrategies()
Gets the pipeline and item selection strategies used to demultiplex item collections within this stage. |
boolean |
isWaitingForPipelines()
Gets whether this child waits for all the invoked pipelines to complete before proceeding. |
void |
setCollectionFactory(com.google.common.base.Supplier<Collection<ItemType>> factory)
Sets the factory used to create the Item collection that is then given to the pipelines. |
void |
setExecutorService(ExecutorService service)
Sets the executor service used to run the selected and non-selected item pipelines. |
void |
setPipelineAndSelectionStrategies(List<net.shibboleth.utilities.java.support.collection.Pair<Pipeline<ItemType>,com.google.common.base.Predicate<ItemType>>> passes)
Sets the pipeline and item selection strategies used to demultiplex item collections within this stage. |
void |
setWaitingForPipelines(boolean isWaiting)
Sets whether this child waits for all the invoked pipelines to complete before proceeding. |
| Methods inherited from class net.shibboleth.metadata.pipeline.BaseStage |
|---|
execute, setId |
| Methods inherited from class net.shibboleth.utilities.java.support.component.AbstractDestructableIdentifiableInitializableComponent |
|---|
getId |
| Methods inherited from class net.shibboleth.utilities.java.support.component.AbstractDestructableInitializableComponent |
|---|
destroy, initialize, isDestroyed, isInitialized |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Methods inherited from interface net.shibboleth.utilities.java.support.component.DestructableComponent |
|---|
destroy, isDestroyed |
| Methods inherited from interface net.shibboleth.utilities.java.support.component.IdentifiableComponent |
|---|
getId |
| Methods inherited from interface net.shibboleth.utilities.java.support.component.InitializableComponent |
|---|
initialize, isInitialized |
| Field Detail |
|---|
private final Logger log
private ExecutorService executorService
private boolean waitingForPipelines
private com.google.common.base.Supplier<Collection<ItemType extends Item<?>>> collectionFactory
private List<net.shibboleth.utilities.java.support.collection.Pair<Pipeline<ItemType extends Item<?>>,com.google.common.base.Predicate<ItemType extends Item<?>>>> pipelineAndStrategies
| Constructor Detail |
|---|
public PipelineDemultiplexerStage()
| Method Detail |
|---|
@Nonnull public ExecutorService getExecutorService()
public void setExecutorService(@Nonnull
ExecutorService service)
service - executor service used to run the selected and non-selected item pipelinespublic boolean isWaitingForPipelines()
public void setWaitingForPipelines(boolean isWaiting)
isWaiting - whether this child waits for all the invoked pipelines to complete before proceeding@Nonnull public com.google.common.base.Supplier<Collection<ItemType>> getCollectionFactory()
public void setCollectionFactory(@Nonnull
com.google.common.base.Supplier<Collection<ItemType>> factory)
factory - factory used to create the Item collection that is then given to the pipelines@Nonnull @NonnullElements @Unmodifiable public List<net.shibboleth.utilities.java.support.collection.Pair<Pipeline<ItemType>,com.google.common.base.Predicate<ItemType>>> getPipelineAndSelectionStrategies()
public void setPipelineAndSelectionStrategies(@Nonnull@NonnullElements
List<net.shibboleth.utilities.java.support.collection.Pair<Pipeline<ItemType>,com.google.common.base.Predicate<ItemType>>> passes)
passes - pipeline and item selection strategies used to demultiplex item collections within this stage
protected void doExecute(@Nonnull@NonnullElements
Collection<ItemType> itemCollection)
throws StageProcessingException
The stage is guaranteed to be have been initialized and not destroyed when this is invoked.
doExecute in class BaseStage<ItemType extends Item<?>>itemCollection - collection to be processed
StageProcessingException - thrown if there is an unrecoverable problem when processing the stageprotected void doDestroy()
doDestroy in class net.shibboleth.utilities.java.support.component.AbstractDestructableInitializableComponent
protected void doInitialize()
throws net.shibboleth.utilities.java.support.component.ComponentInitializationException
doInitialize in class net.shibboleth.utilities.java.support.component.AbstractDestructableIdentifiableInitializableComponentnet.shibboleth.utilities.java.support.component.ComponentInitializationException
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||