[Yanel-commits] rev 25707 -
public/yanel/trunk/src/realms/welcome-admin/yanel/resources/update-webapp/src/java/org/wyona/yanel/impl/resources/updatefinder
simon at wyona.com
simon at wyona.com
Tue Jul 3 11:14:34 CEST 2007
Author: simon
Date: 2007-07-03 11:14:33 +0200 (Tue, 03 Jul 2007)
New Revision: 25707
Modified:
public/yanel/trunk/src/realms/welcome-admin/yanel/resources/update-webapp/src/java/org/wyona/yanel/impl/resources/updatefinder/UpdateFinder.java
Log:
refactored
Modified: public/yanel/trunk/src/realms/welcome-admin/yanel/resources/update-webapp/src/java/org/wyona/yanel/impl/resources/updatefinder/UpdateFinder.java
===================================================================
--- public/yanel/trunk/src/realms/welcome-admin/yanel/resources/update-webapp/src/java/org/wyona/yanel/impl/resources/updatefinder/UpdateFinder.java 2007-07-03 09:13:49 UTC (rev 25706)
+++ public/yanel/trunk/src/realms/welcome-admin/yanel/resources/update-webapp/src/java/org/wyona/yanel/impl/resources/updatefinder/UpdateFinder.java 2007-07-03 09:14:33 UTC (rev 25707)
@@ -35,6 +35,8 @@
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.HashMap;
+import java.util.Map;
+import java.util.Iterator;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
@@ -201,6 +203,25 @@
*
*/
private String getScreen() {
+ StringBuffer sbContent = new StringBuffer();
+ StringBuffer sbHeader = new StringBuffer();
+ Enumeration parameters = request.getParameterNames();
+ if (!parameters.hasMoreElements()) {
+ plainRequest(sbContent);
+ } else {
+ if (request.getParameter("save-as") != null) {
+ plainRequest(sbContent);
+ } else if (request.getParameter("update") != null && request.getParameter("update").equals("update")) {
+ getUpdateConfirmScreen(sbContent);
+ } else if (request.getParameter("updateconfirmed") != null && request.getParameter("updateconfirmed").equals("updateconfirmed")) {
+ getUpdateScreen(sbContent);
+ sbHeader.append("<meta http-equiv=\"refresh\" content=\"10; URL=" + "http://" + request.getServerName() + ":" + request.getServerPort() + "/updater/" + "\"/>");
+ } else {
+ log.info("Fallback ...");
+ plainRequest(sbContent);
+ }
+ }
+
StringBuffer sb = new StringBuffer("<?xml version=\"1.0\"?>");
sb.append("<html xmlns=\"http://www.w3.org/1999/xhtml\">");
sb.append("<head><title>create resource</title>");
@@ -212,139 +233,151 @@
+ "yanel-js/prototype.js\" type=\"text/javascript\"></script>");
sb.append("<script src=\"" + PathUtil.getGlobalHtdocsPath(this)
+ "yanel-js/progressBar.js\" type=\"text/javascript\"></script>");
+ sb.append("<script src=\"" + PathUtil.getGlobalHtdocsPath(this)
+ + "yanel-js/sorttable.js\" type=\"text/javascript\"></script>");
sb.append("<script src=\"" + PathUtil.getResourcesHtdocsPath(this)
+ "js/ajaxlookup.js\" type=\"text/javascript\"></script>");
+ sb.append(sbHeader);
sb.append("</head>");
sb.append("<body>");
-
- HttpServletRequest request = getRequest();
- Enumeration parameters = request.getParameterNames();
- if (!parameters.hasMoreElements()) {
- plainRequest(sb);
- } else {
- if (request.getParameter("save-as") != null) {
- plainRequest(sb);
- } else if (request.getParameter("save") != null) {
- plainRequest(sb);
- } else {
- log.info("Fallback ...");
- plainRequest(sb);
- }
- }
-
+ sb.append(sbContent);
sb.append("</body>");
sb.append("</html>");
return sb.toString();
}
private void plainRequest(StringBuffer sb) {
-
UpdateInfo updateInfo = null;
InstallInfo installInfo = getInstallInfo(sb);
- // install.rdf
-// InstallInfo installInfo = null;
-// try {
-// installInfo = new InstallInfo(request);
-// } catch (Exception e) {
-// log.error(e.getMessage(), e);
-// sb.append("<p>Exception: " + e.getMessage() + "</p>");
-// return;
-// }
+ if (!installInfo.getInstalltype().equals("bin-snapshot")) {
-
- if (!getInstallInfo(sb).getInstalltype().equals("bin-snapshot")) {
-
sb.append("<p>");
sb.append("This Yanel was not installed from binary. You can only use the updater if you installed yanel from binary. Please use svn up, build.sh");
sb.append("</p>");
-
- // transformer = TransformerFactory.newInstance().newTransformer();
-
} else {
updateInfo = getUpdateInfo(sb);
-// try {
-// URL UpdateRdfUrl = new URL(installInfo.getUpdateURL());
-// InputStream updateRdfIn = UpdateRdfUrl.openStream();
-// updateInfo = new UpdateInfo(updateRdfIn, installInfo);
-// } catch (Exception e) {
-// log.error(e.getMessage(), e);
-// sb.append("<p>");
-// sb.append("Yanel could not get the Update information! " + e);
-// sb.append("</p>");
-// }
- }
- if (updateInfo != null) {
-
- if (request.getParameter("update") != null
- && request.getParameter("update").equals("update")) {
- WarFetcher warFetcher = null;
- try {
- String destDir = request.getSession().getServletContext().getRealPath(".") + File.separator + "..";
- warFetcher = new WarFetcher(request, request.getParameter("updatelink"), destDir);
- } catch (Exception e) {
- log.error(e.getMessage(), e);
- sb.append("<p>Exception: " + e.getMessage() + "</p>");
- return;
- }
+ sb.append("<p>");
+ sb.append("Your installed yanel is: " + installInfo.getId() + "-v-" + installInfo.getVersion() + "-r-" + installInfo.getRevision());
+ sb.append("</p>");
+ HashMap newestYanel = updateInfo.getNewestUpdateVersionsOf("id", "wyona-yanel-webapp");
+ sb.append("<p>");
+ sb.append("Newest yanel is: " + newestYanel.get("id") + "-v-" + newestYanel.get("version") + "-r-" + newestYanel.get("revision"));
+ sb.append("<form method=\"post\"><input type=\"submit\" name=\"button\" value=\"update\"></input><input type=\"hidden\" name=\"update\" value=\"update\"></input><input type=\"hidden\" name=\"updatelink\" value=\""
+ + newestYanel.get("updateLink") + "\"/></form>");
+ sb.append("</p>");
-
- try {
- HashMap versionDetails = updateInfo.getUpdateVersionDetail("updateLink", request.getParameter("updatelink"));
- String version = (String) versionDetails.get("version");
- String revision = (String) versionDetails.get("revision");
- String id = (String) versionDetails.get("id");
-
- warFetcher.fetch();
-
- TomcatContextHandler tomcatContextHandler = new TomcatContextHandler(request);
- tomcatContextHandler.setContext("updater", id + "-v-" + version + "-r-" + revision);
- String pathToUpdater = "http://" + request.getServerName() + ":" + request.getServerPort() +"/updater/";
-
- sb.append("<p>");
- sb.append("Update done.");
- sb.append("<a href=\"" +pathToUpdater + "\">");
- sb.append("go to the Updater!");
- sb.append("</a>");
- sb.append("</p>");
- } catch (Exception e) {
- log.error(e.getMessage(), e);
- sb.append("<p>Update failed. Exception: " + e.getMessage() + "</p>");
+ sb.append("<p>");
+ sb.append("Other versions you can get:");
+ sb.append("</p>");
+ sb.append("<ul>");
+ for (int i = 0; i < updateInfo.getUpdateVersions().size(); i++) {
+ HashMap versionDetails = (HashMap) updateInfo.getUpdateVersionsOf("id", "wyona-yanel-webapp").get(i);
+ if ((versionDetails.get("version") != installInfo.getVersion() && versionDetails.get("revision") != installInfo.getRevision()) || ( versionDetails.get("idd") != newestYanel.get("id") && versionDetails.get("version") != newestYanel.get("version") && versionDetails.get("revision") != newestYanel.get("revision"))) {
+ sb.append("<li>"
+ + versionDetails.get("title")
+ + "<ul>"
+ + "<li>Version: "
+ + versionDetails.get("version")
+ + "Revision:" + versionDetails.get("revision")
+ + "</li>"
+ + "<li>Type: "
+ + versionDetails.get("type")
+ + "</li>"
+ + "<li> ChangeLog: "
+ + versionDetails.get("changeLog")
+ + "</li>"
+ + "<li> <form method=\"post\"><input type=\"submit\" name=\"button\" value=\"update\"></input><input type=\"hidden\" name=\"update\" value=\"update\"/><input type=\"hidden\" name=\"updatelink\" value=\""
+ + versionDetails.get("updateLink") + "\"/></form></li>" + "</ul></li>");
}
-
+ }
+ sb.append("</ul>");
+
+ sb.append("<p>");
+ sb.append("Installed versions:");
+ sb.append("</p>");
+ TomcatContextHandler tomcatContextHandler = null;
+ Map contextAndWebapp = null;
+ try {
+ tomcatContextHandler = new TomcatContextHandler(request);
+ contextAndWebapp = tomcatContextHandler.getContextAndWebapp();
+ } catch (Exception e) {
+ log.error(e.getMessage(), e);
+ sb.append("<p>Lookup for context and webabs failed. Exception: " + e.getMessage() + "</p>");
+ }
-
- } else {
- sb.append("<p>");
- sb.append("This are the updates which you can get:");
- sb.append("</p>");
- sb.append("<ul>");
- for (int i = 0; i < updateInfo.getUpdateVersions().size(); i++) {
- HashMap versionDetails = (HashMap) updateInfo.getUpdateVersions().get(i);
- if (versionDetails.get("version") != installInfo.getVersion()) {
- sb.append("<li>"
- + versionDetails.get("title")
- + "<ul>"
- + "<li>Version: "
- + versionDetails.get("version")
- + "</li>"
- + "<li>Type: "
- + versionDetails.get("type")
- + "</li>"
- + "<li> ChangeLog: "
- + versionDetails.get("changeLog")
- + "</li>"
- + "<li> <form method=\"post\"><input type=\"submit\" name=\"update\" value=\"update\"></input><input type=\"hidden\" name=\"updatelink\" value=\""
- + versionDetails.get("updateLink") + "\"/></form></li>"
- + "</ul></li>");
- }
- }
- sb.append("</ul>");
+ sb.append("<table class=\"sortable\">");
+ sb.append("<thead>");
+ sb.append("<tr><th>Context</th><th>Webapp</th></tr>");
+ sb.append("</thead>");
+ sb.append("<tbody>");
+ Iterator iterator = contextAndWebapp.keySet().iterator();
+
+ while (iterator.hasNext()) {
+ String context = (String) iterator.next();
+ String webapp = (String) contextAndWebapp.get(context);
+ sb.append("<tr><td><a href=\"" + "http://" + request.getServerName() + ":"
+ + request.getServerPort() + "/" + context.replaceAll("/", "") + "\">" + context + "</a></td><td>" + webapp + "</td></tr>");
}
+ sb.append("</tbody>");
+ sb.append("</table>");
}
}
- private InstallInfo getInstallInfo (StringBuffer sb) {
+ private void getUpdateConfirmScreen(StringBuffer sb) {
+ UpdateInfo updateInfo = getUpdateInfo(sb);
+ HashMap versionDetails = updateInfo.getUpdateVersionDetail("updateLink", request.getParameter("updatelink"));
+ String version = (String) versionDetails.get("version");
+ String revision = (String) versionDetails.get("revision");
+ String id = (String) versionDetails.get("id");
+
+ sb.append("<p>Yanel will download the update-manager which will download and install " + id + "-v-" + version + "-r-" + revision + "</p>");
+ sb.append("<p>Do you want to continue?</p>");
+ sb.append("<p>");
+ sb.append("<form method=\"post\">");
+ sb.append("<input type=\"submit\" name=\"button\" value=\"YES\"></input><input type=\"hidden\" name=\"updateconfirmed\" value=\"updateconfirmed\"/><input type=\"hidden\" name=\"updatelink\" value=\""
+ + request.getParameter("updatelink") + "\"/>");
+ sb.append("</form>");
+ sb.append("<form method=\"post\">");
+ sb.append("<input type=\"submit\" name=\"button\" value=\"NO\"></input>");
+ sb.append("</form>");
+ sb.append("</p>");
+ }
+
+ private void getUpdateScreen(StringBuffer sb) {
+ UpdateInfo updateInfo = getUpdateInfo(sb);
+ WarFetcher warFetcher = null;
+ try {
+ String destDir = request.getSession().getServletContext().getRealPath(".")
+ + File.separator + "..";
+ warFetcher = new WarFetcher(request, request.getParameter("updatelink"), destDir);
+
+ HashMap versionDetails = updateInfo.getUpdateVersionDetail("updateLink",
+ request.getParameter("updatelink"));
+ String version = (String) versionDetails.get("version");
+ String revision = (String) versionDetails.get("revision");
+ String id = (String) versionDetails.get("id");
+
+ warFetcher.fetch();
+
+ TomcatContextHandler tomcatContextHandler = new TomcatContextHandler(request);
+ tomcatContextHandler.setContext("updater", id + "-v-" + version + "-r-" + revision);
+ String pathToUpdater = "http://" + request.getServerName() + ":"
+ + request.getServerPort() + "/updater/";
+
+ sb.append("<p>");
+ sb.append("Update done.");
+ sb.append("<a href=\"" + pathToUpdater + "\">");
+ sb.append("go to the Updater!");
+ sb.append("</a>");
+ sb.append("</p>");
+ } catch (Exception e) {
+ log.error(e.getMessage(), e);
+ sb.append("<p>Update failed. Exception: " + e.getMessage() + "</p>");
+ }
+ }
+
+ private InstallInfo getInstallInfo(StringBuffer sb) {
InstallInfo installInfo = null;
try {
return installInfo = new InstallInfo(request);
@@ -354,8 +387,8 @@
return null;
}
}
-
- private UpdateInfo getUpdateInfo (StringBuffer sb) {
+
+ private UpdateInfo getUpdateInfo(StringBuffer sb) {
UpdateInfo updateInfo = null;
try {
URL UpdateRdfUrl = new URL(getInstallInfo(sb).getUpdateURL());
@@ -369,16 +402,6 @@
return null;
}
}
-
-// /**
-// * Get property value from resource configuration
-// */
-// private String getResourceProperty(String name) throws Exception {
-// ResourceConfiguration rc = getConfiguration();
-// if (rc != null)
-// return rc.getProperty(name);
-// return getRTI().getProperty(name);
-// }
/**
* Get XSLT path
More information about the Yanel-commits
mailing list