It's all about the answers!

Ask a question

Stream integration question


Shiping Ji (2132) | asked Aug 22 '08, 5:24 a.m.
Hi,

We have a couple of Jazz project areas that contribute to our end product. We're now trying to create an integration stream that combines all components from the individual project, which can be also used for build. This integration stream is inside one of the project, however, the changes to the integrated components from other project areas do not automatically flow into this stream and thus changes cannot be been.
Could you please help us out?

Thanks.

BR,
Shiping

6 answers



permanent link
Dmitry Karasik (1.8k11) | answered Aug 22 '08, 5:24 a.m.
JAZZ DEVELOPER
the changes to the integrated components from other project areas do not
automatically flow into this stream and thus changes cannot be been.

Changesets never flow automatically by default. You need to manually flow
them to the integration stream. Alternatively you could write a build
script that automatically flows changes to the integration stream on a
successful build for example.

- Dmitry

permanent link
Ryan Manwiller (1.3k1) | answered Aug 25 '08, 11:07 p.m.
JAZZ DEVELOPER
Shiping,

You are on the right track. I think you want a single integration stream and
an integration build workspace that flows with this stream. Then, a build
definition that uses this workspace. The stream can live in one of the
existing projects, or you could create an "Integration Project".

When the individual project team is ready to share their work with the
broader product, a person on that team will act as integrator and explicitly
change his workspace's flow target to the integration stream (previously,
the person was flowing with his team stream and has accepted all the latest
from his direct teammates). At this point, the person will see incoming
(other teams shared work), and outgoing (his own team's work he wants to
share) change sets. The person then integrates by accepting all incoming,
and then delivering to integration. Once all projects have delivered to the
integration stream, you can kick off an integration build to build it all
(for RTC, we have an automatic schedule for this build and teams are
responsible for delivering by a certain time).

This is essentially how we work to develop RTC, although we don't do it
across project areas. From my testing, it should work fine across project
areas, assuming the person delivering is a member of the team associated
with the target stream, and has permission to deliver.

It might seem inconvenient that you need to manually change the flow target
and deliver changes to the integration stream. However, in practice, this
worked really well for us. Its an explicit thing to share code with the
broader product. I can imagine you could automate this using the scm command
line tool, but I never saw the need to do that. As a team lead, I liked
having the control over exactly when and if we shared a baseline with the
broader team.

For general guidance in multi-stream development you might want to take a
look at this article:
https://jazz.net/learn/LearnItem.jsp?href=content/docs/source-control/streamdev/index.html

---
Ryan Manwiller
Jazz Team

permanent link
Shiping Ji (2132) | answered Aug 27 '08, 1:53 p.m.
Hi, thanks for the detailed instructions. These are pretty clear and we'll follow to create integrated build. I'll inform the other project leads to deliver to our stream once an integration build is needed.

BR,
Shiping

permanent link
Dmitry Karasik (1.8k11) | answered Aug 28 '08, 5:42 a.m.
JAZZ DEVELOPER
Hi, this error can be ignored, it happened because the build was running
probably. And after the build finished, accepting change sets works :)

No that was actually a known problem in the server in M6. It has been
fixed since then.

- Dmitry

permanent link
Shiping Ji (2132) | answered Aug 28 '08, 9:04 a.m.
Hi, we have an integration stream inside project "A", which contains a component from another project "B". Now the project "B" has delivered the changes to the integration stream, however, in the project "A", we're not able to accept the change sets even though they are visible. The following error occurred, could you please help?

We're running on 1.0M6a.

java.lang.IllegalArgumentException: com.ibm.team.repository.common.model.impl.ItemTypeImpl@4b524b52 (namespaceURI: com.ibm.team.filesystem, name: FileItem, abstract: false): _Z5ppgFMeEd2PxNJzNuqRNQ, state: null, name: , parent: null, internal id: null, override: false != com.ibm.team.repository.common.model.impl.ItemTypeImpl@4b524b52 (namespaceURI: com.ibm.team.filesystem, name: FileItem, abstract: false): _Z5ppgFMeEd2PxNJzNuqRNQ, state: null, name: , parent: null, internal id: _ZaJR0Dd5Ed22buYfd1UNAw, override: false
at com.ibm.team.scm.service.internal.utils.PartialConfiguration$ResultCache.ensureEqual(PartialConfiguration.java:494)
at com.ibm.team.scm.service.internal.utils.PartialConfiguration$ResultCache.rememberStateSelection(PartialConfiguration.java:263)
at com.ibm.team.scm.service.internal.utils.PartialConfiguration.rememberStateSelection(PartialConfiguration.java:158)
at com.ibm.team.scm.service.internal.utils.ConfigurationProxy.rememberSelections(ConfigurationProxy.java:1139)
at com.ibm.team.scm.service.internal.utils.ConfigurationProxy.fetchStateSelectionsForItems(ConfigurationProxy.java:1107)
at com.ibm.team.scm.service.internal.utils.ConfigurationProxy.getStateSelectionsForItems(ConfigurationProxy.java:659)
at com.ibm.team.scm.service.internal.ScmTransactionContext.retrieveStateSelections(ScmTransactionContext.java:717)
at com.ibm.team.scm.service.internal.ScmServiceInternal.internalRetrieveStateSelectionsForItems(ScmServiceInternal.java:1298)
at com.ibm.team.scm.service.internal.utils.AcceptImpl.detectGaps(AcceptImpl.java:929)
at com.ibm.team.scm.service.internal.utils.AcceptImpl.doCombinedAccept(AcceptImpl.java:1192)
at com.ibm.team.scm.service.internal.utils.AcceptImpl.acceptCombined(AcceptImpl.java:1037)
at com.ibm.team.scm.service.internal.ScmServiceInternal.internalAcceptCombined(ScmServiceInternal.java:3371)
at com.ibm.team.scm.service.internal.ScmServiceInternal.acceptCombined(ScmServiceInternal.java:3356)
at com.ibm.team.scm.service.internal.ScmService$36.run(ScmService.java:1629)
at com.ibm.team.scm.service.internal.AbstractScmService$3.run(AbstractScmService.java:406)
at com.ibm.team.repository.service.internal.rdb.RepositoryDatabase$Transaction.run(RepositoryDatabase.java:455)
at com.ibm.team.repository.service.internal.rdb.RepositoryDatabase.runTransaction(RepositoryDatabase.java:286)
at com.ibm.team.repository.service.internal.rdb.RepositoryDatabase.runInTransaction(RepositoryDatabase.java:241)
at com.ibm.team.repository.service.internal.TransactionService.runInTransaction(TransactionService.java:74)
at sun.reflect.GeneratedMethodAccessor77.invoke(null)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:615)
at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.invoke(ExportProxyServiceRecord.java:375)
at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.access$0(ExportProxyServiceRecord.java:361)
at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord$ExportedServiceInvocationHandler.invoke(ExportProxyServiceRecord.java:55)
at $Proxy29.runInTransaction(null)
at com.ibm.team.scm.service.internal.AbstractScmService.runInTransaction(AbstractScmService.java:344)
at com.ibm.team.scm.service.internal.AbstractScmService.runInTransaction(AbstractScmService.java:400)
at com.ibm.team.scm.service.internal.AbstractScmService.runInTransaction(AbstractScmService.java:379)
at com.ibm.team.scm.service.internal.ScmService.acceptCombined(ScmService.java:1626)
at sun.reflect.GeneratedMethodAccessor140.invoke(null)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:615)
at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.invoke(ExportProxyServiceRecord.java:375)
at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.access$0(ExportProxyServiceRecord.java:361)
at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord$ExportedServiceInvocationHandler.invoke(ExportProxyServiceRecord.java:55)
at $Proxy166.acceptCombined(null)
at sun.reflect.GeneratedMethodAccessor538.invoke(null)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:615)
at com.ibm.team.repository.servlet.AbstractTeamServerServlet.handleMethod(AbstractTeamServerServlet.java:1051)
at com.ibm.team.repository.servlet.AbstractTeamServerServlet.executeMethod(AbstractTeamServerServlet.java:805)
at com.ibm.team.repository.servlet.AbstractTeamServerServlet.doPost(AbstractTeamServerServlet.java:618)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at com.ibm.team.repository.servlet.AbstractTeamServerServlet.service(AbstractTeamServerServlet.java:1361)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.eclipse.equinox.http.registry.internal.ServletManager$ServletWrapper.service(ServletManager.java:180)
at org.eclipse.equinox.http.servlet.internal.ServletRegistration.handleRequest(ServletRegistration.java:90)
at org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:111)
at org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:75)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.eclipse.equinox.servletbridge.BridgeServlet.service(BridgeServlet.java:115)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:204)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:524)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:801)
at com.ibm.team.repository.common.internal.marshal.util.MarshallerUtil.decodeExceptions(Unknown Source)
at com.ibm.team.repository.common.internal.marshal.util.MarshallerUtil.decodeFault(Unknown Source)
at com.ibm.team.repository.transport.client.RemoteTeamService.constructExceptionFromFault(Unknown Source)
at com.ibm.team.repository.transport.client.RemoteTeamService.executeMethod(Unknown Source)
at com.ibm.team.repository.transport.client.RemoteTeamService.invoke(Unknown Source)
at com.ibm.team.repository.transport.client.ServiceInvocationHandler.invoke(Unknown Source)
at $Proxy8.acceptCombined(Unknown Source)
at sun.reflect.GeneratedMethodAccessor56.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.ibm.team.repository.client.internal.ServiceInterfaceProxy.invokeServiceCall(Unknown Source)
at com.ibm.team.repository.client.internal.ServiceInterfaceProxy.invoke(Unknown Source)
at $Proxy8.acceptCombined(Unknown Source)
at sun.reflect.GeneratedMethodAccessor56.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.ibm.team.scm.client.internal.ScmServiceInterfaceProxy$2.run(Unknown Source)
at com.ibm.team.repository.client.internal.TeamRepository$3.run(Unknown Source)
at com.ibm.team.repository.common.transport.CancelableCaller.call(Unknown Source)
at com.ibm.team.repository.client.internal.TeamRepository.callCancelableService(Unknown Source)
at com.ibm.team.scm.client.internal.ScmClientLibraryContext.callCancelableService(Unknown Source)
at com.ibm.team.scm.client.internal.ScmServiceInterfaceProxy.invokeCancelableService(Unknown Source)
at com.ibm.team.scm.client.internal.ScmServiceInterfaceProxy.invoke(Unknown Source)
at $Proxy8.acceptCombined(Unknown Source)
at com.ibm.team.scm.client.internal.WorkspaceConnection.accept(Unknown Source)
at com.ibm.team.scm.client.internal.WorkspaceConnection.accept(Unknown Source)
at com.ibm.team.filesystem.client.internal.operations.AcceptOperation.execute(Unknown Source)
at com.ibm.team.filesystem.rcp.core.internal.operations.EclipseWorkspaceAcceptOperation.execute(Unknown Source)
at com.ibm.team.filesystem.client.internal.operations.FileSystemOperation.run(Unknown Source)
at com.ibm.team.filesystem.rcp.core.internal.changes.model.ComponentBaselineUtil.acceptWithBaselines(Unknown Source)
at com.ibm.team.filesystem.ui.changes.actions.AcceptAction$1.filesystemRun(Unknown Source)
at com.ibm.team.filesystem.ui.operations.FileSystemUIOperation.repositoryRun(Unknown Source)
at com.ibm.team.repository.rcp.ui.operations.RepositoryOperation.run(Unknown Source)
at com.ibm.team.repository.rcp.ui.operations.JobRunner.run(Unknown Source)
at com.ibm.team.repository.rcp.ui.operations.JobRunner$1.run(Unknown Source)
at org.eclipse.core.internal.jobs.Worker.run(Unknown Source)

permanent link
Shiping Ji (2132) | answered Aug 28 '08, 9:22 a.m.
Hi, this error can be ignored, it happened because the build was running probably. And after the build finished, accepting change sets works :)

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.