001 /*
002 * file CcDemoBase.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.cc.CcDemoBase
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 javax.wvcm.ProviderFactory;
019 import javax.wvcm.WvcmException;
020 import javax.wvcm.ProviderFactory.Callback;
021 import javax.wvcm.WvcmException.ReasonCode;
022
023 import junit.framework.TestCase;
024
025 import com.ibm.rational.wvcm.stp.StpProvider;
026 import com.ibm.rational.wvcm.stp.cc.CcProvider;
027
028 /**
029 * TODO
030 */
031 public class CcDemoBase extends TestCase {
032
033 public class DefaultCallback implements Callback {
034
035 public Authentication getAuthentication(String realm, int retryCount)
036 throws WvcmException
037 {
038 trace("Getting credentials");
039 if (retryCount > 0) {
040 throw new WvcmException("Invalid credentials", ReasonCode.UNAUTHORIZED);
041 }
042 return new Authentication() {
043 public String loginName() {
044 return props().getLoginNameAndDomain();
045 }
046 public String password() {
047 return props().getPassword();
048 }
049 };
050 }
051 }
052
053 private CcDemoProps m_props;
054 private CcProvider m_provider;
055
056 /* (non-Javadoc)
057 * @see junit.framework.TestCase#setUp()
058 */
059 protected void setUp() throws Exception {
060 super.setUp();
061
062 // Read the current user's properties file.
063 m_props = new CcDemoProps();
064
065 // Instantiate a ClearCase CM API provider
066 StpProvider provider = (StpProvider) ProviderFactory.createProvider(
067 CcProvider.CC_ONLY_PROVIDER_CLASS,
068 new DefaultCallback());
069 provider.setServerUrl(props().getCmServerUrl());
070 m_provider = provider.ccProvider();
071 }
072
073 /* (non-Javadoc)
074 * @see junit.framework.TestCase#tearDown()
075 */
076 protected void tearDown() throws Exception {
077 super.tearDown();
078 }
079
080 CcDemoProps props() {
081 return m_props;
082 }
083
084 CcProvider getClearCaseProvider() {
085 return m_provider;
086 }
087
088 void trace(String msg) {
089 System.out.println(msg);
090 }
091 }