Exemple #1
0
  /**
   * 获取此产品所有应用的更新日志<br>
   *
   * @return
   */
  private List<UpdateLog> getUpdateLog() {

    if (this.logger.isDebugEnabled()) {
      this.logger.debug("获取产品所有应用的更新日志...");
    }

    // 声明要返回的容器
    List<UpdateLog> updateLogList = new ArrayList<UpdateLog>();

    // 加载升级xml文件
    Document document = this.loadUpdateXmlDoc("/version.xml");

    // 找到apps结点
    Element appsNode = XMLUtil.getChildByTagName(document, "apps");

    // 获取此产品的应用
    List<EopApp> appList = this.siteManager.getSiteApps();
    for (EopApp app : appList) {
      // 获取每个应用的版本
      String verison = app.getVersion();

      // 获取远程服务器上version.xml中的此应用节点
      Element appNode = XMLUtil.getChildByTagName(appsNode, app.getAppid());

      // 获取此应用的所有版本历史的更新日志
      UpdateLog updateLog = this.getAppUpdateLog(app.getAppid(), verison, appNode);
      if (updateLog != null) {
        updateLogList.add(updateLog);
      }
    }

    if (this.logger.isDebugEnabled()) {
      this.logger.debug("获取产品所有应用的更新日志完成.");
    }

    return updateLogList;
  }
 /*     */ public void createProfile(String path) /*     */ {
   /*  37 */ Element product = new Element("product");
   /*     */
   /*  39 */ List appList = this.siteManager.getSiteApps();
   /*     */
   /*  45 */ Element apps = new Element("apps");
   /*  46 */ for (EopApp app : appList)
   /*     */ {
     /*  48 */ Element appEl = new Element("app");
     /*  49 */ appEl.setAttribute("id", app.getAppid());
     /*  50 */ appEl.setAttribute("version", app.getVersion());
     /*  51 */ apps.addContent(appEl);
     /*     */ }
   /*     */
   /*  54 */ product.addContent(apps);
   /*     */
   /*  60 */ Element site = new Element("site");
   /*  61 */ fillSiteElement(site);
   /*  62 */ product.addContent(site);
   /*     */
   /*  67 */ Element urlsEl = new Element("urls");
   /*  68 */ fillUrlElement(urlsEl);
   /*  69 */ product.addContent(urlsEl);
   /*     */
   /*  74 */ Element menusEl = new Element("menus");
   /*  75 */ fillMenuElement(menusEl);
   /*  76 */ product.addContent(menusEl);
   /*     */
   /*  81 */ Element themesEl = new Element("themes");
   /*  82 */ fillThemesElement(themesEl);
   /*  83 */ product.addContent(themesEl);
   /*     */
   /*  85 */ Element indexItemEl = new Element("indexitems");
   /*  86 */ fillIndexItemElement(indexItemEl);
   /*  87 */ product.addContent(indexItemEl);
   /*     */
   /*  89 */ Document pfDocument = new Document(product);
   /*  90 */ outputDocumentToFile(pfDocument, path);
   /*     */ }
Exemple #3
0
  /** 执行升级操作 */
  public void update() {
    if (logger.isDebugEnabled()) {
      logger.debug("执行升级操作...");
    }

    String newVersion = this.getNewVersion();
    if (logger.isDebugEnabled()) {
      logger.debug("产品最新版本为:[" + newVersion + "]");
    }

    // 加载升级xml文件
    Document document = this.loadUpdateXmlDoc("/version.xml");

    // 找到apps结点
    Element appsNode = XMLUtil.getChildByTagName(document, "apps");

    // 获取此产品的应用
    List<EopApp> appList = this.siteManager.getSiteApps();

    for (EopApp app : appList) {

      // 获取每个应用的版本
      String appVersion = app.getVersion();

      // 获取远程服务器上version.xml中的此应用节点
      Element appNode = XMLUtil.getChildByTagName(appsNode, app.getAppid());

      // 此应用的最新版本
      String appLastVersion = appNode.getAttribute("lastversion");

      if (logger.isDebugEnabled()) {
        logger.debug(
            "升级应用["
                + app.getAppid()
                + "],产品中此应用当前版本["
                + appVersion
                + "],最新版本["
                + appLastVersion
                + "]");
      }

      this.update(app.getAppid(), appVersion, appNode);

      // 记录app以便以后更新
      // app.setVersion(appLastVersion);

      // 更新站点的应用版本
      daoSupport.execute(
          "update eop_app set version=? where appid=?", appLastVersion, app.getAppid());

      if (logger.isDebugEnabled()) {
        logger.debug("升级应用[" + app.getAppid() + "]完成。");
      }
    }

    //	updateProfile(appList); //更新profile.xml
    this.updateVersion(newVersion); // 更新eop.properties中的version

    if (logger.isDebugEnabled()) {
      logger.debug("产品升级完成,当前版本为:[" + EopSetting.VERSION + "]");
    }
  }