public void loadInfo(String xmlPath, String confPath) {
    this.xmlPath = xmlPath;
    xml = new MyXML(xmlPath);
    if (xml.getDoc() != null
        && (xml.getRootNode().getName().equalsIgnoreCase("install")
            || xml.getRootNode().getName().equalsIgnoreCase("extension"))) {

      String type = xml.getRootNode().getAttributeValue("type");
      plgGroup = xml.getRootNode().getAttributeValue("group");
      String ver = xml.getRootNode().getAttributeValue("version");
      extClient = xml.getRootNode().getAttributeValue("client");
      Element eName = xml.getFirstElementByTag("name", null);
      if (eName == null) {
        return;
      }

      String name = eName.getValue().toLowerCase();

      extType = SharedDefines.emJava_ext.valueOf(type);

      if (ver.compareTo(SharedDefines.emJava_ver.LATEST.getVersion()) < 0) {
        extVer = SharedDefines.emJava_ver.J_15;
        extFolder = extType.getPrefix() + name;
      } else {
        extVer = SharedDefines.emJava_ver.LATEST;
        extFolder = name;
      }

      if (!plgGroup.isEmpty()) extFolder = plgGroup;

      // check if xml is not in admin folder. [todo] optimize it
      if (xml.getFirstElementByTag("administration", null) == null)
        rootPath = MyCommonMethods.getParentDirectory(xmlPath, 3);
      else rootPath = MyCommonMethods.getParentDirectory(xmlPath, 4);

      if (!confPath.isEmpty()) {

        String user = MyCommonMethods.readPhpConf(confPath, "$user");
        String password = MyCommonMethods.readPhpConf(confPath, "$password");
        String dbName = MyCommonMethods.readPhpConf(confPath, "$db");
        String host = MyCommonMethods.readPhpConf(confPath, "$host");

        if (user.isEmpty() || dbName.isEmpty() || host.isEmpty()) return;

        propConn = new PropConnection(host, dbName, user, password, true);

        tableModelDatabases.cleanList();
        tableModelDatabases.refreshList(0, "", propConn);
      }

      // XXX implements reading table with #__ special char
      // cell selection must be disabled and rowselection enabled
      Element tableSection = xml.getFirstElementByTag("tables", null);
      if (tableSection != null) {
        ArrayList<String> tables =
            xml.getElementsValues(xml.getElementsByTag("table", tableSection), null);

        for (String T : tables) {
          int coord[] = MyCommonMethods.search(frame.jTableDBList, T, 0, -1);
          // because single col
          frame.jTableDBList.addRowSelectionInterval(coord[1], coord[1]);
        }
      }

      frame.jButtonExport.setEnabled(true);
    }
  }