//
// Test08.java
//
// The contents of this file are subject to the SNIA Public License Version 1.0
// (the "License"); you may not use this file except in compliance with the
// License. You may obtain a copy of the License at
//
//	http://www.snia.org/resources/openSource.html
//
// Software distributed under the License is distributed on an "AS IS" basis,
// WITHOUT WARRANTY OF ANY KIND, either express or implied. See the 
// License for the specific language governing rights and limitations
// under the License.
//
// The Original Code is Test08.java
// 
// The Initial Developers of the Original Code are Bapu Patil 
//
//
// Revision 1.1  2002/05/15 09:36:59 bpatil
// Initial revision
//


package tests.ClientUnitTests;

import java.util.Enumeration;
import java.util.Vector;
import java.rmi.*;
import java.rmi.server.*;
import java.rmi.Naming;
import java.rmi.Remote;
import java.net.*;
import org.snia.wbemcmd.utils.SimpleEnum;
import org.snia.wbem.client.CIMClient;
import org.snia.wbem.cim.CIMNameSpace;
import org.snia.wbem.cim.CIMObjectPath;
import org.snia.wbem.cim.CIMClass;
import org.snia.wbem.cim.CIMProperty;
import org.snia.wbem.cim.CIMInstance;
import org.snia.wbem.cim.CIMValue;
import org.snia.wbem.cim.CIMQualifierType;
import org.snia.wbem.cim.CIMException;

public class Test08 {

    public void example(String args[])
    {

	CIMNameSpace clientNameSpace;
	String hostName = "localhost";		// host for cimom
	String nameSpace = "root/cimv2";		// namespace
	CIMClient cc=null;
	int portNo=CIMNameSpace.DEFAULT_PORT;
	String hostURL;
		
	if (args.length==3) {
	    hostName=args[0];
	    nameSpace=args[1];
            portNo=Integer.parseInt(args[2]);
	} else if (args.length!=0) {
	    System.err.println("SetClass [hostname namespace portNo]");
	    System.exit(1);
	}
	
	System.err.println("Connecting to "+hostName+
			    " for namespace "+nameSpace);
	hostURL="http://"+hostName+":"+portNo;
	try {
	    clientNameSpace = new CIMNameSpace(hostURL, nameSpace);  
	    cc = new CIMClient(clientNameSpace, "guest", "guest", CIMClient.XML);
	} catch (CIMException e) {
	    System.err.println("Failed to access CIMOM: "+e);
	    System.exit(1);
	}
	
	System.err.println("Client created");


     //
     // should return an instance
     //   - Gets an instance for the specified object path
     //
     //
System.err.println("\n **********Get instance of CIM_UnixProcess");
     try 
     {
        CIMObjectPath pa1=new CIMObjectPath("PG_UnixProcess");
        Enumeration enum = cc.enumInstances(pa1, true);

        while (enum.hasMoreElements()) 
        {
             System.err.println("\n **********one Instance ");

             //
             // get value of the property for this instance  
             //
             Object obj=enum.nextElement();              
             CIMObjectPath currentInstancePath=(CIMObjectPath)obj;
             CIMInstance currentInstance=cc.getInstance(currentInstancePath,false);
             CIMProperty valProp = currentInstance.getProperty("Description");
             System.out.println("Test08::getting property of - Description : "+ valProp);

             CIMValue value = valProp.getValue();
                                                     
                  if (value != null && value.getValue() != null)
	            System.err.println("property value:"+value.toString());
                  else
	            System.err.println("property value null");
             

        }
     }
     catch (CIMException ce) {
	 System.err.println("Failed to fetch specified instance:"+ce);
         ce.printStackTrace();
         // BAPU
	 System.exit(1);
    }
     
     System.out.println("done:");
   }

   
   public Test08() {
   }
   
    public static void main(String args[]){
	Test08 ea=new Test08();
	ea.example(args);
    }
}
