/* * JBoss, Home of Professional Open Source. * Copyright 2008, Red Hat Middleware LLC, and individual contributors * as indicated by the @author tags. See the copyright.txt file in the * distribution for a full listing of individual contributors. * * This is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; either version 2.1 of * the License, or (at your option) any later version. * * This software is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this software; if not, write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA * 02110-1301 USA, or see the FSF site: http://www.fsf.org. */ package org.jboss.deployment.spi.beans; import javax.enterprise.deploy.model.DDBean; import javax.enterprise.deploy.spi.DConfigBean; import javax.enterprise.deploy.spi.exceptions.ConfigurationException; public class TestBeans { /* public static void main( String args[] ) { //tempFunction1(); tempFunction2(); } public static void tempFunction2() { // DDBeanRootImpl impl = new DDBeanRootImpl(null, // new File("c:\\eclipse\\ConfigExample.xml"), "ConfigExample.xml"); // DConfigBean configRoot1 = new JBossExample1ConfigBeanRoot(impl); // DConfigBean configRoot2 = new JBossExample2ConfigBeanRoot(impl); try { //traverse(configRoot1, impl, 0); //traverse(configRoot2, impl, 0); //test_remove(configRoot2, impl); //test_getClass(); } catch( Exception e ) { System.out.println("Exception: " + e.getMessage()); e.printStackTrace(); } } /* public static void test_getClass() { try { PackagedDeployable dep = new PackagedDeployable( new File("c:\\eclipse\\crimeportal\\crimeportal.war")); WarConfiguration config = new WarConfiguration(dep); } catch( Exception e ) { System.out.println("DEAD: " + e.getMessage()); e.printStackTrace(); } } */ public static void test_remove(DConfigBean config, DDBean dd) { try { System.out.println(config.getXpaths().length + " xpaths."); String targetXPath = config.getXpaths()[0]; System.out.println(targetXPath + " is the first."); DDBean first = dd.getChildBean(targetXPath)[0]; DConfigBean cnfg = config.getDConfigBean(first); System.out.println("cnfg has " + cnfg.getXpaths().length + " sub kids"); config.removeDConfigBean(cnfg); System.out.println("cnfg has " + cnfg.getXpaths().length + " sub kids"); System.out.println(config.getXpaths().length + " xpaths."); } catch (Exception e) { System.out.println("ERROR: " + e.getMessage()); e.printStackTrace(); } } public static void traverse(DConfigBean config, DDBean dd, int indent) throws ConfigurationException { indent += 3; indentPrint(indent, "starting \"" + dd.getXpath() + "\", config of type " + trimClass(config.getClass())); String[] pathsToFollow = config.getXpaths(); if (pathsToFollow.length > 0) indentPrint(indent, "- There are " + pathsToFollow.length + " xpaths returned."); indent += 4; for (int i = 0; i < pathsToFollow.length; i++) { String s = "path " + i + ": " + pathsToFollow[i]; DDBean[] lesserBeans = dd.getChildBean(pathsToFollow[i]); indentPrint(indent, s + " , " + lesserBeans.length + " found."); for (int j = 0; j < lesserBeans.length; j++) { DConfigBean cb = config.getDConfigBean(lesserBeans[j]); traverse(cb, lesserBeans[j], indent); } } } public static String trimClass(Class c) { int dot = c.getName().lastIndexOf('.'); int dollar = c.getName().lastIndexOf('$'); if (dollar == -1) { return c.getName().substring(dot + 1); } return c.getName().substring(dollar + 1); } public static void indentPrint(int x, String y) { String s = ""; for (int i = 0; i < x; i++) s += " "; System.out.println(s + y); } }