1 19 20 package com.sslexplorer.install.forms; 21 22 import java.util.Iterator ; 23 24 import javax.servlet.http.HttpServletRequest ; 25 26 import org.apache.commons.logging.Log; 27 import org.apache.commons.logging.LogFactory; 28 import org.apache.struts.action.ActionMapping; 29 30 import com.sslexplorer.extensions.ExtensionBundle; 31 import com.sslexplorer.extensions.store.ExtensionStore; 32 import com.sslexplorer.extensions.store.ExtensionStoreDescriptor; 33 import com.sslexplorer.wizard.AbstractWizardSequence; 34 import com.sslexplorer.wizard.forms.DefaultWizardForm; 35 36 public class InstallXtraForm extends DefaultWizardForm { 37 38 final static Log log = LogFactory.getLog(InstallXtraForm.class); 39 40 public final static String ATTR_INSTALL_XTRA = "installXtra"; 42 43 private boolean installXtra; 45 private boolean xtraInstalled; 46 private boolean xtraAvailable; 47 private boolean updateRequired; 48 private Exception connectionException; 49 50 public static final String ENTERPRISE_CORE_BUNDLE_ID = "sslexplorer-enterprise-core"; 51 52 public InstallXtraForm() { 53 super(true, true, "/WEB-INF/jsp/content/install/installXtra.jspf", 54 "", true, false, "installXtra", "install", "installation.installXtra", 6); 55 } 56 57 62 public void init(AbstractWizardSequence sequence, HttpServletRequest request) throws Exception { 63 try { 64 ExtensionStore.getInstance().getExtensionBundle(ENTERPRISE_CORE_BUNDLE_ID); 65 xtraInstalled = true; 66 } 67 catch(Exception e) { 68 xtraInstalled = false; 69 } 70 xtraAvailable = false; 71 updateRequired = false; 72 connectionException = (Exception )sequence.getAttribute(ConfigureProxiesForm.ATTR_EXTENSION_STORE_EXCEPTION, null); 73 if(connectionException != null) { 74 installXtra = false; 75 } 76 else { 77 ExtensionStoreDescriptor installable = ExtensionStore.getInstance().getDownloadableExtensionStoreDescriptor(true); 78 xtraAvailable = installable.getApplicationBundle(ENTERPRISE_CORE_BUNDLE_ID)!=null; 79 80 boolean found = false; 81 for (Iterator i = installable.getExtensionBundles().iterator(); i.hasNext();) { 82 ExtensionBundle bundle = (ExtensionBundle) i.next(); 83 if (bundle.getId().equals(ENTERPRISE_CORE_BUNDLE_ID) && ExtensionStore.getInstance().isExtensionLoaded(bundle.getId())) { 84 ExtensionBundle installed = ExtensionStore.getInstance().getExtensionBundle(bundle.getId()); 85 found = true; 86 xtraAvailable = true; 87 if (bundle.getVersion().compareTo(installed.getVersion()) > 0) { 88 updateRequired = true; 89 } 90 } 91 } 92 93 installXtra = updateRequired || "true".equals( 94 sequence.getAttribute(ATTR_INSTALL_XTRA, "true")); 95 } 96 } 97 98 103 public void apply(AbstractWizardSequence sequence) throws Exception { 104 sequence.putAttribute(ATTR_INSTALL_XTRA, String.valueOf(installXtra)); 105 } 106 107 110 public boolean getInstallXtra() { 111 return installXtra; 112 } 113 114 117 public void setInstallXtra(boolean installXtra) { 118 this.installXtra = installXtra; 119 } 120 121 124 public Exception getConnectionException() { 125 return connectionException; 126 } 127 128 131 public boolean getUpdateRequired() { 132 return updateRequired; 133 } 134 135 138 public boolean getXtraInstalled() { 139 return xtraInstalled; 140 } 141 142 public void reset(ActionMapping mapping, HttpServletRequest request) { 143 super.reset(mapping, request); 144 installXtra = false; 145 } 146 147 public boolean getXtraAvailable() { 148 return xtraAvailable; 149 } 150 } 151 | Popular Tags |