public DocRef duplicatePipeline(final DocRef sourcePipelineDocRef,
                                    final String newName,
                                    final String newDescription) {
        Objects.requireNonNull(pipelineStore);
        Objects.requireNonNull(sourcePipelineDocRef);
        Objects.requireNonNull(newName);

        final PipelineDoc sourcePipeline = pipelineStore.readDocument(sourcePipelineDocRef);

        final ExplorerNode newNode = explorerService.create(
                PipelineDoc.TYPE,
                newName,
                ExplorerConstants.SYSTEM_NODE,
                PermissionInheritance.DESTINATION);
        final DocRef newDocRef = newNode != null
                ? newNode.getDocRef()
                : pipelineStore.createDocument(newName);
        final PipelineDoc newPipeline = pipelineStore.readDocument(newDocRef);

        newPipeline.setName(newName);
        if (newDescription != null) {
            newPipeline.setDescription(newDescription);
        }

        // copy the data part
        newPipeline.setPipelineData(sourcePipeline.getPipelineData());

        pipelineStore.writeDocument(newPipeline);
        return newDocRef;
    }
Adds event data to a stream store.

@param feedName                         The feed name to use.
@param translationTextConverterType     Type of text converter
@param translationTextConverterLocation The Text Converter location
@param translationXsltLocation          The XSLT location
@param dataLocation                     The event data location.
@param referenceFeeds                   The reference feeds used.
@return An event feed definition.
@throws IOException Thrown if files not found.
stroom-app/src/test/java/stroom/test/StoreCreationTool.java