001 /*
002 * file InstallCheck.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.InstallCheck
010 *
011 * (C) Copyright IBM Corporation 2005, 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 package com.ibm.rational.stp.client.samples;
016
017 import javax.wvcm.ProviderFactory;
018
019 import com.ibm.rational.wvcm.stp.StpProvider;
020 import com.ibm.rational.wvcm.stp.cq.CqProvider;
021
022 /**
023 * An application for testing proper installation of the CM API library for a
024 * specific repository type or types
025 */
026 public class InstallCheck {
027 /**
028 * Instantiates a provider and tests for successful instantiation of
029 * the repository types specified on the input command line.
030 * @param args The Selector symbols for the repository type(s) to be tested.
031 */
032 public static void main(String[] args)
033 {
034 int errors = 0;
035
036 try {
037 StpProvider provider = (StpProvider) ProviderFactory
038 .createProvider(StpProvider.PROVIDER_CLASS, null);
039 Package[] packages = Package.getPackages();
040
041 for (int i = 0; i < args.length; ++i) {
042 StpProvider.Domain type = StpProvider.Domain.fromSymbol(args[i]);
043 Exception error =
044 (Exception)provider.getInstantiationErrors().get(type);
045
046 if (error != null) {
047 ++errors;
048 error.printStackTrace();
049 } else {
050 for (int j = 0; j < packages.length; ++j) {
051 Package myPackage = packages[j];
052 String name = myPackage.getName();
053
054 if (name.indexOf("." + args[i]) >= 0
055 && !name.startsWith("com.ibm.rational.wvcm")) {
056 System.out.println(
057 "Instantiated " + name
058 + " " + myPackage.getImplementationTitle()
059 + ", " + myPackage.getImplementationVersion()
060 + ", " + myPackage.getImplementationVendor());
061 }
062 }
063 }
064 }
065 } catch (Throwable t) {
066 errors = 100;
067 t.printStackTrace();
068 }
069
070 System.exit(errors);
071 }
072 }