blob: ba75d824bc79a31b3aa30b0866aaa22f14491cf2 [file] [log] [blame]
/*
* Copyright (c) 2003, 2018 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0, which is available at
* http://www.eclipse.org/legal/epl-2.0.
*
* This Source Code may also be made available under the following Secondary
* Licenses when the conditions for such availability set forth in the
* Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
* version 2 with the GNU Classpath Exception, which is available at
* https://www.gnu.org/software/classpath/license.html.
*
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
*/
/*
* $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));
}
}
}