public boolean initialise(final String config) {
    if (ActiveMQXARecoveryLogger.LOGGER.isTraceEnabled()) {
      ActiveMQXARecoveryLogger.LOGGER.trace(this + " intialise: " + config);
    }

    String[] configs = config.split(";");
    XARecoveryConfig[] xaRecoveryConfigs = new XARecoveryConfig[configs.length];
    for (int i = 0, configsLength = configs.length; i < configsLength; i++) {
      String s = configs[i];
      ConfigParser parser = new ConfigParser(s);
      String connectorFactoryClassName = parser.getConnectorFactoryClassName();
      Map<String, Object> connectorParams = parser.getConnectorParameters();
      String username = parser.getUsername();
      String password = parser.getPassword();
      TransportConfiguration transportConfiguration =
          new TransportConfiguration(connectorFactoryClassName, connectorParams);
      xaRecoveryConfigs[i] =
          new XARecoveryConfig(
              false,
              new TransportConfiguration[] {transportConfiguration},
              username,
              password,
              null,
              null);
    }

    res = new ActiveMQXAResourceWrapper(xaRecoveryConfigs);

    if (ActiveMQXARecoveryLogger.LOGGER.isTraceEnabled()) {
      ActiveMQXARecoveryLogger.LOGGER.trace(this + " initialised");
    }

    return true;
  }
  public String[] save() {
    ArrayList<String> lines = new ArrayList<String>();
    Field[] fields = getClass().getDeclaredFields();
    lines.add("<config>");
    for (Field f : fields) {
      if (isConfigItem(f)) {
        Object obj;
        try {
          f.setAccessible(true);
          obj = f.get(this);
        } catch (IllegalAccessException e) {
          e.printStackTrace();
          continue;
        }
        if (obj instanceof ConfigParser) {
          lines.add("<" + f.getName() + ">");
          ConfigParser parser = (ConfigParser) obj;
          parser.save(lines);
          lines.add("</" + f.getName() + ">");
        } else {
          String item_name = f.getName();
          if (!Modifier.isTransient(f.getModifiers())) {
            lines.add("<" + item_name + ">" + obj.toString() + "</" + item_name + ">");
          }
        }
      }
    }
    lines.add("</config>");

    return lines.toArray(new String[lines.size()]);
  }
  /**
   * Generates code for tag provider class from specified configuration XML file. In order to create
   * custom tag info provider, make config file and call this main method with the specified file.
   * Output will be generated on the standard output. This way default tag provider (class
   * DefaultTagProvider) is generated from default.xml which which is packaged in the source
   * distribution.
   *
   * @param args
   * @throws IOException
   * @throws SAXException
   * @throws ParserConfigurationException
   */
  public static void main(String[] args)
      throws IOException, SAXException, ParserConfigurationException {
    final ConfigFileTagProvider provider = new ConfigFileTagProvider();
    provider.generateCode = true;

    File configFile = new File("default.xml");
    String packagePath = "org.htmlcleaner";
    String className = "DefaultTagProvider";

    final ConfigParser parser = provider.new ConfigParser(provider);
    System.out.println("package " + packagePath + ";");
    System.out.println("import java.util.HashMap;");
    System.out.println(
        "public class " + className + " extends HashMap implements ITagInfoProvider {");
    System.out.println("public " + className + "() {");
    System.out.println("TagInfo tagInfo;");
    parser.parse(new InputSource(new FileReader(configFile)));
    System.out.println("}");
    System.out.println("}");
  }
Esempio n. 4
0
  /**
   * 获取配置
   *
   * @return 配置
   */
  public Config getConfig() {
    ConfigParser configParser = new PropConfigParser();

    return configParser.parse();
  }
  private SchemaCrawlerCommandLine(
      final Config config2, final ConnectionOptions connectionOptions, final String... args)
      throws SchemaCrawlerException {
    if (args == null || args.length == 0) {
      throw new SchemaCrawlerException("No command line arguments provided");
    }

    String[] remainingArgs = args;

    final CommandParser commandParser = new CommandParser();
    remainingArgs = commandParser.parse(remainingArgs);
    if (!commandParser.hasOptions()) {
      throw new SchemaCrawlerException("No command specified");
    }
    command = commandParser.getOptions().toString();

    final OutputOptionsParser outputOptionsParser = new OutputOptionsParser();
    remainingArgs = outputOptionsParser.parse(remainingArgs);
    outputOptions = outputOptionsParser.getOptions();

    final boolean isBundledWithDriver = config2 != null;
    if (isBundledWithDriver) {
      this.config = config2;
    } else {
      this.config = new Config();
    }
    if (remainingArgs.length > 0) {
      final ConfigParser configParser = new ConfigParser();
      remainingArgs = configParser.parse(remainingArgs);
      config.putAll(configParser.getOptions());
    }

    if (connectionOptions != null) {
      this.connectionOptions = connectionOptions;
    } else if (isBundledWithDriver) {
      final BaseDatabaseConnectionOptionsParser bundledDriverConnectionOptionsParser =
          new BundledDriverConnectionOptionsParser(config);
      remainingArgs = bundledDriverConnectionOptionsParser.parse(remainingArgs);
      this.connectionOptions = bundledDriverConnectionOptionsParser.getOptions();
    } else {
      final CommandLineConnectionOptionsParser commandLineConnectionOptionsParser =
          new CommandLineConnectionOptionsParser(config);
      remainingArgs = commandLineConnectionOptionsParser.parse(remainingArgs);
      ConnectionOptions parsedConnectionOptions = commandLineConnectionOptionsParser.getOptions();
      if (parsedConnectionOptions == null) {
        final ConfigConnectionOptionsParser configConnectionOptionsParser =
            new ConfigConnectionOptionsParser(config);
        remainingArgs = configConnectionOptionsParser.parse(remainingArgs);
        parsedConnectionOptions = configConnectionOptionsParser.getOptions();
      }
      this.connectionOptions = parsedConnectionOptions;
    }

    final SchemaCrawlerOptionsParser schemaCrawlerOptionsParser =
        new SchemaCrawlerOptionsParser(config);
    remainingArgs = schemaCrawlerOptionsParser.parse(remainingArgs);
    schemaCrawlerOptions = schemaCrawlerOptionsParser.getOptions();

    if (remainingArgs.length > 0) {
      LOGGER.log(
          Level.INFO,
          "Too many command line arguments provided: " + ObjectToString.toString(remainingArgs));
    }
  }
 public String getProperty(PropertyKey key) {
   return parser.getProperty(key.getValue());
 }
Esempio n. 7
0
 public static void main(String[] args) {
   Main m = new Main();
   parse(m, ConfigParser.expand(args));
   m.start();
 }
  public void parseFile(File file) throws IOException {
    if (!file.exists()) throw new IOException("File not found!");

    Field[] fields = getClass().getDeclaredFields();

    FileInputStream fin = new FileInputStream(file);
    try {
      DocumentBuilder db = DOCUMENT_BUILDER_FACTORY.newDocumentBuilder();
      Document dom = db.parse(fin);
      Element elm = dom.getDocumentElement();

      NodeList list = elm.getChildNodes();
      if (list != null && list.getLength() > 0) {
        for (int i = 0; i < list.getLength(); i++) {
          if (!(list.item(i) instanceof Element)) continue;
          Element item = (Element) list.item(i);
          String item_name = item.getNodeName();

          for (Field f : fields) {
            if (f.getName().equals(item_name)) {
              if (isConfigItem(f)) {
                if (ConfigParser.class.isAssignableFrom(f.getType())) {
                  ConfigParser parser = (ConfigParser) f.getType().getConstructor().newInstance();
                  parser.parse(item.getChildNodes());
                  f.setAccessible(true);
                  f.set(this, parser);
                } else {
                  if (String.class.isAssignableFrom(f.getType())) {
                    f.setAccessible(true);
                    f.set(this, item.getFirstChild().getNodeValue());
                  } else if (Integer.class.isAssignableFrom(f.getType())
                      || int.class.isAssignableFrom(f.getType())) {
                    f.setAccessible(true);
                    f.set(this, Integer.parseInt(item.getFirstChild().getNodeValue()));
                  } else if (Boolean.class.isAssignableFrom(f.getType())
                      || boolean.class.isAssignableFrom(f.getType())) {
                    f.setAccessible(true);
                    f.set(this, item.getFirstChild().getNodeValue().toLowerCase().contains("true"));
                  } else if (Float.class.isAssignableFrom(f.getType())
                      || float.class.isAssignableFrom(f.getType())) {
                    f.setAccessible(true);
                    f.set(this, Float.parseFloat(item.getFirstChild().getNodeValue()));
                  } else if (Double.class.isAssignableFrom(f.getType())
                      || double.class.isAssignableFrom(f.getType())) {
                    f.setAccessible(true);
                    f.set(this, Double.parseDouble(item.getFirstChild().getNodeValue()));
                  } else if (Long.class.isAssignableFrom(f.getType())
                      || long.class.isAssignableFrom(f.getType())) {
                    f.setAccessible(true);
                    f.set(this, Long.parseLong(item.getFirstChild().getNodeValue()));
                  } else if (Float.class.isAssignableFrom(f.getType())
                      || float.class.isAssignableFrom(f.getType())) {
                    f.setAccessible(true);
                    f.set(this, Float.parseFloat(item.getFirstChild().getNodeValue()));
                  } else {
                    System.err.println("Cannot assign value for item \"" + item_name + "\"");
                  }
                }
              } else {
                System.err.println("Unknown mapConfig item \"" + item_name + "\"");
              }
              break;
            }
          }
        }
      }
    } catch (ParserConfigurationException e) {
      throw new IOException("Error reading config file!", e);
    } catch (SAXException e) {
      throw new IOException("Error parsing file!", e);
    } catch (IllegalAccessException e) {
      throw new IOException("Error setting value for config file!", e);
    } catch (NoSuchMethodException e) {
      throw new IOException("Field did not have a default constructor!", e);
    } catch (InstantiationException e) {
      throw new IOException("Error creating new field!", e);
    } catch (InvocationTargetException e) {
      throw new IOException("Error invoking method to parse item!", e);
    }
  }