It's all about the answers!

Ask a question

How to set components scope in flow target using plain java/ client side api?


Andrew Ciaz (59264) | asked Mar 13 '19, 7:12 a.m.

 Hi all,

My requirement is I want to scoped only selected components to flow with stream, I know in stream editor already has option for scope component, but I want to do it by code. Please suggest solution

Accepted answer


permanent link
Ralph Schoon (63.7k33648) | answered Mar 13 '19, 7:24 a.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER
    private void setFlow(IWorkspaceConnection source,
            IWorkspaceConnection dest, Collection<icomponenthandle> components,
            IProgressMonitor monitor) throws TeamRepositoryException {
        System.out.print("Set flow targets and component scope " + source.getName() + " to " + dest.getName() );

        // Get the current flow table
        IFlowTable cflowTable = source.getFlowTable().getWorkingCopy();
        // Set the accept and deliver flow to the target
        cflowTable.addAcceptFlow(dest.getResolvedWorkspace(), dest
                .teamRepository().getId(), dest.teamRepository()
                .getRepositoryURI(), components /* Collections.EMPTY_LIST */,
                "Accept Flow");
        cflowTable.addDeliverFlow(dest.getResolvedWorkspace(), dest
                .teamRepository().getId(), dest.teamRepository()
                .getRepositoryURI(), components /* Collections.EMPTY_LIST */,
                "Deliver Flow");
        // Limit the scope for accept and delivery to the components that are
        // needed
        cflowTable.setComponentScopes(dest.getResolvedWorkspace(), components);
        // We want incoming and outgoing default and current flow
        // Set the incoming flow for current and default
        IFlowEntry acceptEntry = cflowTable.getAcceptFlow(dest
                .getResolvedWorkspace());
        cflowTable.setCurrent(acceptEntry);
        cflowTable.setDefault(acceptEntry);
        // Set the incoming flow for current and default
        IFlowEntry deliverEntry = cflowTable.getDeliverFlow(dest
                .getResolvedWorkspace());
        cflowTable.setCurrent(deliverEntry);
        cflowTable.setDefault(deliverEntry);

        // Set the modified flow table
        source.setFlowTable(cflowTable, monitor);
        System.out.println(" success...");
           }
Ralph Schoon selected this answer as the correct answer

Comments
Andrew Ciaz commented Mar 20 '19, 7:11 a.m.

Thanks @Ralph Schoon for your valuable contribution

Your answer


Register or to post your answer.


Dashboards and work items are no longer publicly available, so some links may be invalid. We now provide similar information through other means. Learn more here.