/* * Copyright 2003 Sun Microsystems, Inc. All rights reserved. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. */ /* * $Id: OfflineConfigTest.java,v 1.1.1.1 2005/05/28 00:39:19 dpatil Exp $ */ package com.sun.enterprise.admin.config; import java.lang.reflect.*; import java.util.*; import java.io.*; //junit imports import junit.framework.*; import junit.textui.TestRunner; //JMX import javax.management.DynamicMBean; import javax.management.Attribute; import javax.management.AttributeList; import javax.management.ObjectName; import javax.management.AttributeNotFoundException; //config imports import com.sun.enterprise.config.ConfigFactory; import com.sun.enterprise.config.ConfigContext; import com.sun.enterprise.admin.config.OfflineConfigMgr; public class OfflineCommander { static String TEST_DIR = "/tmp/asadmintest"; private OfflineConfigMgr _mgr; // = new AdminTester(_mode, _registry, _configContext); public OfflineCommander() throws Exception { _mgr = new OfflineConfigMgr(TEST_DIR+"/domain.xml"); } /////////////////////////////////////////////////////////////////////////////////////////////////// public static void main(String args[]) throws Exception { int length = args.length; if(length<2 || !args[0].equals("-testpath")) { System.out.println("usage: offlineconfigtest -testpath <path to test directory> [print|create]"); System.exit(1); } TEST_DIR = args[1]; OfflineCommander commander = new OfflineCommander(); System.out.print(">"); String cmd = ""; int iNext; ArrayList list; AttributeList attrs; while ((iNext = System.in.read())>0) { char ch = (char)iNext; if(ch==13 || ch==10) {//new command if(cmd.equals("q") || cmd.equals("Q")) break; try { if(cmd.startsWith("list ") || cmd.equals("list")) { //LIST COMMAND String mask = cmd.equals("list")?"":cmd.substring(4).trim(); list = commander._mgr.getListDottedNames(mask); printList(" ", list); } else if(cmd.startsWith("get ")) { //GET COMMAND attrs = commander._mgr.getAttributes(cmd.substring(3).trim()); printAttributes(" ", attrs); } else if(cmd.startsWith("set ")) { //SET COMMAND int eqIdx = cmd.indexOf("="); if(eqIdx<0) { System.out.println("ERROR!"); continue; } attrs = commander._mgr.setAttribute( cmd.substring(4, eqIdx).trim(), cmd.substring(eqIdx+1).trim()); printAttributes(" ", attrs); } else if(cmd.startsWith("add ")) { //add COMMAND String rest = cmd.substring(4).trim(); int spaceIdx = rest.indexOf(" "); if(spaceIdx<0) { System.out.println("ERROR!"); continue; } attrs = commander._mgr.addSubvaluesToArrayAttribute( rest.substring(0, spaceIdx).trim(), rest.substring(spaceIdx).trim().split(",")); printAttributes(" ", attrs); } else if(cmd.startsWith("remove ")) { //add COMMAND String rest = cmd.substring(7).trim(); int spaceIdx = rest.indexOf(" "); if(spaceIdx<0) { System.out.println("ERROR!"); continue; } attrs = commander._mgr.removeSubvaluesFromArrayAttribute( rest.substring(0, spaceIdx).trim(), rest.substring(spaceIdx).trim().split(",")); printAttributes(" ", attrs); } } catch (Exception e) { System.out.println("\n***Exception: "+e.getMessage()); } System.out.print("\n>"); cmd=""; continue; } //System.out.print(ch); cmd = cmd + ch; } System.out.println("\n finished"); } //****************************************************************** //******************HELPERS*************************************** //****************************************************************** static private void printAttributes(String title, AttributeList attrs) { if(title!=null) System.out.println(title); for(int i=0; i<attrs.size(); i++) { Attribute attr = (Attribute)attrs.get(i); if(attr.getValue() instanceof Object[]) { System.out.println(" "+ attr.getName() + " = " ); Object[] sub_attrs= (Object[])attr.getValue(); for(int j=0; j<sub_attrs.length; j++) { System.out.println(" "+ sub_attrs[j]); } } else { System.out.println(" "+ attr.getName() + " = " + attr.getValue()); } } } static private void printList(String title, ArrayList list) { if(title!=null) System.out.println(title); for(int i=0; i<list.size(); i++) { System.out.println(" " + list.get(i)); } } }