001 /* 002 * file CreateActivityDemo.java 003 * 004 * Licensed Materials - Property of IBM 005 * Restricted Materials of IBM - you are allowed to copy, modify and 006 * redistribute this file as part of any program that interfaces with 007 * IBM Rational CM API. 008 * 009 * com.ibm.rational.stp.client.samples.CreateActivityDemo 010 * 011 * (C) Copyright IBM Corporation 2008. All Rights Reserved. 012 * Note to U.S. Government Users Restricted Rights: Use, duplication or 013 * disclosure restricted by GSA ADP Schedule Contract with IBM Corp. 014 */ 015 016 package com.ibm.rational.stp.client.samples.cc; 017 018 import java.util.Date; 019 020 import javax.wvcm.PropertyRequestItem.PropertyRequest; 021 022 import com.ibm.rational.wvcm.stp.StpLocation; 023 import com.ibm.rational.wvcm.stp.StpLocation.Namespace; 024 import com.ibm.rational.wvcm.stp.StpProvider.Domain; 025 import com.ibm.rational.wvcm.stp.cc.CcActivity; 026 import com.ibm.rational.wvcm.stp.cc.CcProvider; 027 import com.ibm.rational.wvcm.stp.cc.CcStream; 028 029 /** 030 * Create a new UCM activity in an existing UCM development stream. 031 * Demonstrates WVCM's resource creation convention. 032 * Also demonstrates how to construct resource locations and proxies. 033 * as well as setting property values via "setter" methods. 034 */ 035 public class CreateActivityDemo extends CcDemoBase { 036 037 /** 038 * Create a new UCM activity in the development stream. 039 */ 040 public void testMakeActivity() throws Exception { 041 042 UcmHelper ucmHelper = new UcmHelper(this); 043 CcProvider provider = getClearCaseProvider(); 044 045 // Get the development stream in which we'll create the new activity. 046 CcStream devStream = ucmHelper.getUcmDevelopmentStream(); 047 048 // Create a location for the new activity. 049 String pvobName = props().getDemoUcmProjectVob(); 050 StpLocation newActLoc = provider.userFriendlySelector( 051 Domain.CLEAR_CASE, 052 Namespace.ACTIVITY, 053 "", // activity name is auto-generated; see below 054 pvobName); 055 056 // Create a proxy for the new activity from the above location 057 // Note: This does *not* create the activity - that happens below. 058 // If we tried to use this proxy now, we would get a "NOT_FOUND" error. 059 CcActivity newAct = provider.ccActivity(newActLoc); 060 061 // Set the properties we want this activity to have when it's created. 062 newAct.setStream(devStream); 063 newAct.setHeadline("This is a new activity: " + new Date()); 064 065 // The properties of the new activity we're interested in. 066 PropertyRequest wantedProps = new PropertyRequest( 067 CcActivity.DISPLAY_NAME, 068 CcActivity.HEADLINE, 069 CcActivity.STREAM.nest( 070 CcStream.DISPLAY_NAME 071 )); 072 073 // Now ask the server to actually create the activity. 074 // Note that "doCreateGeneratedCcActivity()" automatically generates 075 // a unique name for the new activity so we don't have to. 076 // Note also that we're making a property request at the same time 077 // we're creating the activity. This saves an extra round-trip 078 // to the server and simplifies our code a bit. 079 // Extra credit question: What is the purpose of the "newAct = " piece 080 // of this statement? 081 newAct = newAct.doCreateGeneratedCcActivity(wantedProps); 082 083 // Print new activity's properties 084 trace("New activity name: " + newAct.getDisplayName()); 085 trace("New activity headline: " + newAct.getHeadline()); 086 trace("New activity parent stream: " + newAct.getStream().getDisplayName()); 087 } 088 }