/** * 获取此产品所有应用的更新日志<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); /* */ }
/** 执行升级操作 */ 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 + "]"); } }