Mercurial > hg > release > icedtea-web-1.6
changeset 1214:b3c2e66b813a
Fixed loading of deployment.properties during 1.4 migration to 1.5 fs.XdgSpecification test adapted to new deployment.manifest.attributes.check schema
author | Jiri Vanek <jvanek@redhat.com> |
---|---|
date | Thu, 23 Apr 2015 12:04:56 +0200 |
parents | dd4f7ccae35e |
children | 47a18e12709a |
files | ChangeLog netx/net/sourceforge/jnlp/config/Defaults.java netx/net/sourceforge/jnlp/config/DeploymentConfiguration.java netx/net/sourceforge/jnlp/config/PathsAndFiles.java netx/net/sourceforge/jnlp/controlpanel/ControlPanel.java netx/net/sourceforge/jnlp/controlpanel/UnsignedAppletsTrustingListPanel.java netx/net/sourceforge/jnlp/security/appletextendedsecurity/AppletStartupSecuritySettings.java tests/reproducers/simple/simpletest1/testcases/XDGspecificationTests.java |
diffstat | 8 files changed, 137 insertions(+), 76 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog Mon Apr 20 14:13:08 2015 -0400 +++ b/ChangeLog Thu Apr 23 12:04:56 2015 +0200 @@ -1,3 +1,21 @@ +2015-04-20 Jiri Vanek <jvanek@redhat.com> + + Fixed loading of deployment.properties during 1.4 migration to 1.5 fs. + * netx/net/sourceforge/jnlp/config/Defaults.java: hardcoded value of ALL fixed + * netx/net/sourceforge/jnlp/config/DeploymentConfiguration.java: reused + first line of transfer moved to (TRANSFER_TITLE). Added possibility to specify + destination of source file. (move14AndOlderFilesTo15Structure) order of moving + files reorder, so deployment.properties go first and sensitive files after, setupable + files first. Used getDefaultFullPAth insted of getFullPath where suitable (everywhere in this method) + * netx/net/sourceforge/jnlp/config/PathsAndFiles.java: encapsualted security string, + generalized getAllFiles,a dd getAllSwcurityFiles + * netx/net/sourceforge/jnlp/controlpanel/ControlPanel.java: Removed redundant + calls to DeplymentConfiguration. Used PathsAndFiles rather. + * netx/net/sourceforge/jnlp/controlpanel/UnsignedAppletsTrustingListPanel.java: same + * netx/net/sourceforge/jnlp/security/appletextendedsecurity/AppletStartupSecuritySettings.java: + * tests/reproducers/simple/simpletest1/testcases/XDGspecificationTests.java: + (fakeExtendedSecurity) adapted to new deployment.manifest.attributes.check schema + 2015-04-20 Lukasz Dracz <ldracz@redhat.com> Add Tab Completion for icedtea-web
--- a/netx/net/sourceforge/jnlp/config/Defaults.java Mon Apr 20 14:13:08 2015 -0400 +++ b/netx/net/sourceforge/jnlp/config/Defaults.java Thu Apr 23 12:04:56 2015 +0200 @@ -414,7 +414,7 @@ { DeploymentConfiguration.KEY_ENABLE_MANIFEST_ATTRIBUTES_CHECK, BasicValueValidators.getManifestAttributeCheckValidator(), - String.valueOf("ALL") + String.valueOf(ManifestAttributesChecker.MANIFEST_ATTRIBUTES_CHECK.ALL) } };
--- a/netx/net/sourceforge/jnlp/config/DeploymentConfiguration.java Mon Apr 20 14:13:08 2015 -0400 +++ b/netx/net/sourceforge/jnlp/config/DeploymentConfiguration.java Thu Apr 23 12:04:56 2015 +0200 @@ -214,6 +214,10 @@ */ public static final String KEY_PLUGIN_JVM_ARGUMENTS= "deployment.plugin.jvm.arguments"; public static final String KEY_JRE_DIR= "deployment.jre.dir"; + + + public static final String TRANSFER_TITLE = "Legacy configuration and cache found. Those will be now transported to new locations"; + private ConfigurationException loadingException = null; public void setLoadingException(ConfigurationException ex) { @@ -238,6 +242,8 @@ /** The system's subdirResult deployment.config file */ private File systemPropertiesFile = null; + /** Source of always right and only path to file (even if underlying path changes) */ + private final InfrastructureFileDescriptor userDeploymentFileDescriptor; /** The user's subdirResult deployment.config file */ private File userPropertiesFile = null; @@ -248,6 +254,11 @@ private Map<String, Setting<String>> unchangeableConfiguration; public DeploymentConfiguration() { + this(PathsAndFiles.USER_DEPLOYMENT_FILE); + } + + public DeploymentConfiguration(InfrastructureFileDescriptor configFile) { + userDeploymentFileDescriptor = configFile; currentConfiguration = new HashMap<>(); unchangeableConfiguration = new HashMap<>(); } @@ -262,15 +273,6 @@ load(true); } - public static File getAppletTrustUserSettingsPath() { - return PathsAndFiles.APPLET_TRUST_SETTINGS_USER.getFile(); - } - - public static File getAppletTrustGlobalSettingsPath() { - return PathsAndFiles.APPLET_TRUST_SETTINGS_SYS.getFile(); - - } - /** * Initialize this deployment configuration by reading configuration files. * Generally, it will try to continue and ignore errors it finds (such as file not found). @@ -282,12 +284,12 @@ public void load(boolean fixIssues) throws ConfigurationException { SecurityManager sm = System.getSecurityManager(); if (sm != null) { - sm.checkRead(PathsAndFiles.USER_DEPLOYMENT_FILE.getFullPath()); + sm.checkRead(userDeploymentFileDescriptor.getFullPath()); } File systemConfigFile = findSystemConfigFile(); - load(systemConfigFile, PathsAndFiles.USER_DEPLOYMENT_FILE.getFile(), fixIssues); + load(systemConfigFile, userDeploymentFileDescriptor.getFile(), fixIssues); } void load(File systemConfigFile, File userFile, boolean fixIssues) throws ConfigurationException { @@ -471,7 +473,7 @@ String jrePath = null; try { - Map<String, Setting<String>> tmpProperties = parsePropertiesFile(PathsAndFiles.USER_DEPLOYMENT_FILE.getFile()); + Map<String, Setting<String>> tmpProperties = parsePropertiesFile(userDeploymentFileDescriptor.getFile()); Setting<String> jreSetting = tmpProperties.get(KEY_JRE_DIR); if (jreSetting != null) { jrePath = jreSetting.getValue(); @@ -731,11 +733,12 @@ int errors = 0; String PRE_15_DEPLOYMENT_DIR = ".icedtea"; String LEGACY_USER_HOME = System.getProperty("user.home") + File.separator + PRE_15_DEPLOYMENT_DIR; + String legacyProperties = LEGACY_USER_HOME + File.separator + DEPLOYMENT_PROPERTIES; File configDir = new File(PathsAndFiles.USER_CONFIG_HOME); File cacheDir = new File(PathsAndFiles.USER_CACHE_HOME); File legacyUserDir = new File(LEGACY_USER_HOME); if (legacyUserDir.exists()) { - OutputController.getLogger().log(OutputController.Level.MESSAGE_ALL, "Legacy configuration and cache found. Those will be now transported to new locations"); + OutputController.getLogger().log(OutputController.Level.MESSAGE_ALL, TRANSFER_TITLE); OutputController.getLogger().log(OutputController.Level.MESSAGE_ALL, PathsAndFiles.USER_CONFIG_HOME + " and " + PathsAndFiles.USER_CACHE_HOME); OutputController.getLogger().log(OutputController.Level.MESSAGE_ALL, "You should not see this message next time you run icedtea-web!"); OutputController.getLogger().log(OutputController.Level.MESSAGE_ALL, "Your custom dirs will not be touched and will work"); @@ -746,18 +749,34 @@ errors += resultToStd(configDir.mkdirs()); OutputController.getLogger().log(OutputController.Level.MESSAGE_ALL, " " + PathsAndFiles.USER_CACHE_HOME); errors += resultToStd(cacheDir.mkdirs()); + //move this first, the creation of config singleton may happen anytime... + //but must not before USER_DEPLOYMENT_FILE is moved and should not in this block + String currentProperties = PathsAndFiles.USER_DEPLOYMENT_FILE.getDefaultFullPath(); + errors += moveLegacyToCurrent(legacyProperties, currentProperties); + + String legacyPropertiesOld = LEGACY_USER_HOME + File.separator + DEPLOYMENT_PROPERTIES + ".old"; + String currentPropertiesOld = currentProperties + ".old"; + errors += moveLegacyToCurrent(legacyPropertiesOld, currentPropertiesOld); String legacySecurity = LEGACY_USER_HOME + File.separator + "security"; - String currentSecurity = PathsAndFiles.USER_SECURITY; + String currentSecurity = PathsAndFiles.USER_DEFAULT_SECURITY_DIR; errors += moveLegacyToCurrent(legacySecurity, currentSecurity); + + String legacyAppletTrust = LEGACY_USER_HOME + File.separator + APPLET_TRUST_SETTINGS; + String currentAppletTrust = PathsAndFiles.APPLET_TRUST_SETTINGS_USER.getDefaultFullPath(); + errors += moveLegacyToCurrent(legacyAppletTrust, currentAppletTrust); + + //note - all here use default path. Any call to getFullPAth will invoke creation of config singleton + // but: we DO copy only defaults. There is no need to copy nondefaults! + // nond-efault will be used thanks to config singleton read from copied deployment.properties String legacyCache = LEGACY_USER_HOME + File.separator + "cache"; - String currentCache = PathsAndFiles.CACHE_DIR.getFullPath(); + String currentCache = PathsAndFiles.CACHE_DIR.getDefaultFullPath(); errors += moveLegacyToCurrent(legacyCache, currentCache); OutputController.getLogger().log(OutputController.Level.MESSAGE_ALL, "Adapting " + PathsAndFiles.CACHE_INDEX_FILE_NAME + " to new destination"); //replace all legacyCache by currentCache in new recently_used try { - File f = PathsAndFiles.getRecentlyUsedFile().getFile(); + File f = PathsAndFiles.getRecentlyUsedFile().getDefaultFile(); String s = FileUtils.loadFileAsString(f); s = s.replace(legacyCache, currentCache); FileUtils.saveFile(s, f); @@ -774,19 +793,6 @@ String currentLogDir = PathsAndFiles.LOG_DIR.getDefaultFullPath(); errors += moveLegacyToCurrent(legacyLogDir, currentLogDir); - String legacyProperties = LEGACY_USER_HOME + File.separator + DEPLOYMENT_PROPERTIES; - String currentProperties = PathsAndFiles.USER_CONFIG_HOME + File.separator + DEPLOYMENT_PROPERTIES; - errors += moveLegacyToCurrent(legacyProperties, currentProperties); - - String legacyPropertiesOld = LEGACY_USER_HOME + File.separator + DEPLOYMENT_PROPERTIES + ".old"; - String currentPropertiesOld = PathsAndFiles.USER_CONFIG_HOME + File.separator + DEPLOYMENT_PROPERTIES + ".old"; - errors += moveLegacyToCurrent(legacyPropertiesOld, currentPropertiesOld); - - - String legacyAppletTrust = LEGACY_USER_HOME + File.separator + APPLET_TRUST_SETTINGS; - String currentAppletTrust = getAppletTrustUserSettingsPath().getAbsolutePath(); - errors += moveLegacyToCurrent(legacyAppletTrust, currentAppletTrust); - String legacyTmp = LEGACY_USER_HOME + File.separator + "tmp"; String currentTmp = PathsAndFiles.TMP_DIR.getDefaultFullPath(); errors += moveLegacyToCurrent(legacyTmp, currentTmp);
--- a/netx/net/sourceforge/jnlp/config/PathsAndFiles.java Mon Apr 20 14:13:08 2015 -0400 +++ b/netx/net/sourceforge/jnlp/config/PathsAndFiles.java Thu Apr 23 12:04:56 2015 +0200 @@ -57,7 +57,7 @@ private static final String RUNTIME_HOME; public static final String USER_CONFIG_HOME; public static final String USER_CACHE_HOME; - public static final String USER_SECURITY; + public static final String USER_DEFAULT_SECURITY_DIR; public static final String XDG_CONFIG_HOME_VAR = "XDG_CONFIG_HOME"; public static final String XDG_CACHE_HOME_VAR = "XDG_CACHE_HOME"; public static final String XDG_RUNTIME_DIR_VAR = "XDG_RUNTIME_DIR"; @@ -67,6 +67,7 @@ private static final String JAVA_PROP = "java.home"; private static final String USER_PROP = "user.name"; private static final String VARIABLE = JNLPRuntime.isWindows() ? "%" : "$"; + private static final String securityWord = "security"; public static final String ICEDTEA_SO = "IcedTeaPlugin.so"; public static final String CACHE_INDEX_FILE_NAME = "recently_used"; @@ -101,7 +102,7 @@ } USER_CONFIG_HOME = CONFIG_HOME + File.separator + DEPLOYMENT_SUBDIR_DIR; USER_CACHE_HOME = CACHE_HOME + File.separator + DEPLOYMENT_SUBDIR_DIR; - USER_SECURITY = USER_CONFIG_HOME + File.separator + "security"; + USER_DEFAULT_SECURITY_DIR = USER_CONFIG_HOME + File.separator + securityWord; } /** @@ -297,14 +298,21 @@ public static List<InfrastructureFileDescriptor> getAllFiles() { return getAllFiles(null); } + + public static List<InfrastructureFileDescriptor> getAllSecurityFiles() { + return getAllFiles(null, UserSecurityConfigFileDescriptor.class); + } private static List<InfrastructureFileDescriptor> getAllFiles(Target desired) { + return getAllFiles(desired, InfrastructureFileDescriptor.class); + } + private static List<InfrastructureFileDescriptor> getAllFiles(Target desired, Class c) { List<InfrastructureFileDescriptor> r = new ArrayList<>(); Field[] all = PathsAndFiles.class.getDeclaredFields(); for (Field field : all) { try { Object o = field.get(null); - if (o instanceof InfrastructureFileDescriptor) { + if (c.isInstance(o)) { InfrastructureFileDescriptor i = (InfrastructureFileDescriptor) o; for (Target targe : i.target) { if (desired == null || targe == desired) { @@ -396,7 +404,7 @@ private static class SystemJavaSecurityFileDescriptor extends SystemJavaLibFileDescriptor { private SystemJavaSecurityFileDescriptor(String fileName) { - super(fileName, "security", "FILEjavacerts", Target.JAVAWS); + super(fileName, securityWord, "FILEjavacerts", Target.JAVAWS); } } @@ -479,7 +487,7 @@ private static class UserSecurityConfigFileDescriptor extends ItwConfigFileDescriptor { private UserSecurityConfigFileDescriptor(String fileName, String description, Target... target) { - super(fileName, "security", description, target); + super(fileName, securityWord, description, target); } }
--- a/netx/net/sourceforge/jnlp/controlpanel/ControlPanel.java Mon Apr 20 14:13:08 2015 -0400 +++ b/netx/net/sourceforge/jnlp/controlpanel/ControlPanel.java Thu Apr 23 12:04:56 2015 +0200 @@ -56,7 +56,6 @@ import net.sourceforge.jnlp.config.PathsAndFiles; import net.sourceforge.jnlp.controlpanel.JVMPanel.JvmValidationResult; import net.sourceforge.jnlp.runtime.Translator; -import net.sourceforge.jnlp.security.KeyStores; import net.sourceforge.jnlp.security.viewer.CertificatePane; import net.sourceforge.jnlp.util.ImageResources; import net.sourceforge.jnlp.util.logging.OutputController; @@ -265,7 +264,7 @@ new SettingsPanel(Translator.R("CPTabSecurity"), createSecuritySettingsPanel()), //todo refactor to work with tmp file and apply as asu designed it new SettingsPanel(Translator.R("CPTabPolicy"), createPolicySettingsPanel()), - new SettingsPanel(Translator.R("APPEXTSECControlPanelExtendedAppletSecurityTitle"), new UnsignedAppletsTrustingListPanel(DeploymentConfiguration.getAppletTrustGlobalSettingsPath(), DeploymentConfiguration.getAppletTrustUserSettingsPath(), this.config)) + new SettingsPanel(Translator.R("APPEXTSECControlPanelExtendedAppletSecurityTitle"), new UnsignedAppletsTrustingListPanel(PathsAndFiles.APPLET_TRUST_SETTINGS_SYS.getFile(), PathsAndFiles.APPLET_TRUST_SETTINGS_USER.getFile(), this.config)) }; // Add panels.
--- a/netx/net/sourceforge/jnlp/controlpanel/UnsignedAppletsTrustingListPanel.java Mon Apr 20 14:13:08 2015 -0400 +++ b/netx/net/sourceforge/jnlp/controlpanel/UnsignedAppletsTrustingListPanel.java Thu Apr 23 12:04:56 2015 +0200 @@ -85,6 +85,7 @@ import javax.swing.table.TableRowSorter; import net.sourceforge.jnlp.config.DeploymentConfiguration; +import net.sourceforge.jnlp.config.PathsAndFiles; import net.sourceforge.jnlp.runtime.Translator; import net.sourceforge.jnlp.security.appletextendedsecurity.AppletSecurityActions; import net.sourceforge.jnlp.security.appletextendedsecurity.AppletSecurityLevel; @@ -244,8 +245,8 @@ if (askBeforeActionCheckBox.isSelected()) { UnsignedAppletActionEntry[] items = model.back.toArray(); String s = Translator.R("APPEXTSECguiPanelConfirmDeletionOf", items.length) + ": \n"; - for (int i = 0; i < items.length; i++) { - s += appletItemToCaption(items[i], " ") + "\n"; + for (UnsignedAppletActionEntry item : items) { + s += appletItemToCaption(item, " ") + "\n"; } int a = JOptionPane.showConfirmDialog(this, s); if (a != JOptionPane.OK_OPTION) { @@ -514,8 +515,8 @@ mainTabPanel.add(globalPanel); mainTabPanel.setTitleAt(0, Translator.R("APPEXTSECguiPanelCustomDefs")); mainTabPanel.setTitleAt(1, Translator.R("APPEXTSECguiPanelGlobalDefs")); - mainTabPanel.setToolTipTextAt(0, DeploymentConfiguration.getAppletTrustUserSettingsPath().getAbsolutePath()); - mainTabPanel.setToolTipTextAt(1, DeploymentConfiguration.getAppletTrustGlobalSettingsPath().getAbsolutePath()); + mainTabPanel.setToolTipTextAt(0, PathsAndFiles.APPLET_TRUST_SETTINGS_USER.getFile().getAbsolutePath()); + mainTabPanel.setToolTipTextAt(1, PathsAndFiles.APPLET_TRUST_SETTINGS_SYS.getFile().getAbsolutePath()); mainTabPanel.addChangeListener(new ChangeListener() { @Override public void stateChanged(ChangeEvent e) { @@ -609,8 +610,7 @@ bw.close(); UnsignedAppletActionStorageExtendedImpl copy = new UnsignedAppletActionStorageExtendedImpl(f); UnsignedAppletActionEntry[] items = copy.toArray(); - for (int i = 0; i < items.length; i++) { - UnsignedAppletActionEntry unsignedAppletActionEntry = items[i]; + for (UnsignedAppletActionEntry unsignedAppletActionEntry : items) { if (unsignedAppletActionEntry.getDocumentBase() != null && !unsignedAppletActionEntry.getDocumentBase().getRegEx().trim().isEmpty()) { Pattern p = Pattern.compile(unsignedAppletActionEntry.getDocumentBase().getRegEx()); p.matcher("someInput").find(); @@ -624,7 +624,6 @@ throw new RuntimeException(Translator.R("APPEXTSECguiPanelEmptyCode")); } UnsignedAppletActionEntry.createArchivesString(UnsignedAppletActionEntry.createArchivesList(UnsignedAppletActionEntry.createArchivesString(unsignedAppletActionEntry.getArchives()))); - } JOptionPane.showMessageDialog(this, Translator.R("APPEXTSECguiPanelTableValid")); } catch (Exception ex) {
--- a/netx/net/sourceforge/jnlp/security/appletextendedsecurity/AppletStartupSecuritySettings.java Mon Apr 20 14:13:08 2015 -0400 +++ b/netx/net/sourceforge/jnlp/security/appletextendedsecurity/AppletStartupSecuritySettings.java Thu Apr 23 12:04:56 2015 +0200 @@ -35,11 +35,9 @@ */ package net.sourceforge.jnlp.security.appletextendedsecurity; -import javax.naming.ConfigurationException; -import net.sourceforge.jnlp.security.appletextendedsecurity.AppletSecurityLevel; -import net.sourceforge.jnlp.security.appletextendedsecurity.UnsignedAppletActionStorage; import net.sourceforge.jnlp.security.appletextendedsecurity.impl.UnsignedAppletActionStorageImpl; import net.sourceforge.jnlp.config.DeploymentConfiguration; +import net.sourceforge.jnlp.config.PathsAndFiles; import net.sourceforge.jnlp.runtime.JNLPRuntime; import net.sourceforge.jnlp.util.lockingfile.StorageIoException; @@ -63,7 +61,7 @@ */ public UnsignedAppletActionStorage getUnsignedAppletActionGlobalStorage() { if (globalInstance == null) { - globalInstance = new UnsignedAppletActionStorageImpl(DeploymentConfiguration.getAppletTrustGlobalSettingsPath()); + globalInstance = new UnsignedAppletActionStorageImpl(PathsAndFiles.APPLET_TRUST_SETTINGS_SYS.getFile()); } return globalInstance; } @@ -74,7 +72,7 @@ */ public UnsignedAppletActionStorage getUnsignedAppletActionCustomStorage() { if (customInstance == null) { - customInstance = new UnsignedAppletActionStorageImpl(DeploymentConfiguration.getAppletTrustUserSettingsPath()); + customInstance = new UnsignedAppletActionStorageImpl(PathsAndFiles.APPLET_TRUST_SETTINGS_USER.getFile()); } return customInstance; }
--- a/tests/reproducers/simple/simpletest1/testcases/XDGspecificationTests.java Mon Apr 20 14:13:08 2015 -0400 +++ b/tests/reproducers/simple/simpletest1/testcases/XDGspecificationTests.java Thu Apr 23 12:04:56 2015 +0200 @@ -56,6 +56,7 @@ import net.sourceforge.jnlp.browsertesting.Browsers; import net.sourceforge.jnlp.browsertesting.browsers.firefox.FirefoxProfilesOperator; import net.sourceforge.jnlp.closinglisteners.RulesFolowingClosingListener; +import net.sourceforge.jnlp.config.DeploymentConfiguration; import net.sourceforge.jnlp.config.PathsAndFiles; import org.junit.Assert; import org.junit.After; @@ -90,7 +91,7 @@ static { String configHome = System.getProperty("user.home") + File.separator + ".config"; String cacheHome = System.getProperty("user.home") + File.separator + ".cache"; - ; + String XDG_CONFIG_HOME_value = System.getenv(PathsAndFiles.XDG_CONFIG_HOME_VAR); String XDG_CACHE_HOME_value = System.getenv(PathsAndFiles.XDG_CACHE_HOME_VAR); if (XDG_CONFIG_HOME_value != null) { @@ -165,7 +166,7 @@ config.mkdirs(); File cache = new File(base, "cache"); cache.mkdirs(); - List<Backup> l = new ArrayList<Backup>(); + List<Backup> l = new ArrayList<>(); mv(oldRoot, base, l); mv(realCache, cache, l); mv(realConfig, config, l); @@ -206,7 +207,7 @@ private String[] removeXdgVAlues() { Map<String, String> p = System.getenv(); Set<Entry<String, String>> r = p.entrySet(); - List<Entry<String, String>> rr = new ArrayList<Entry<String, String>>(r); + List<Entry<String, String>> rr = new ArrayList<>(r); Collections.sort(rr, new Comparator<Entry<String, String>>() { @Override @@ -214,7 +215,7 @@ return o1.getKey().compareTo(o2.getKey()); } }); - List<String> l = new ArrayList<String>(p.size()); + List<String> l = new ArrayList<>(p.size()); int i = 0; int c = 0; for (Iterator<Entry<String, String>> it = rr.iterator(); it.hasNext(); i++) { @@ -244,7 +245,7 @@ boolean config = false; Map<String, String> p = System.getenv(); Set<Entry<String, String>> r = p.entrySet(); - List<Entry<String, String>> rr = new ArrayList<Entry<String, String>>(r); + List<Entry<String, String>> rr = new ArrayList<>(r); Collections.sort(rr, new Comparator<Entry<String, String>>() { @Override @@ -252,22 +253,25 @@ return o1.getKey().compareTo(o2.getKey()); } }); - List<String> l = new ArrayList<String>(p.size() + 2); + List<String> l = new ArrayList<>(p.size() + 2); int i = 0; for (Iterator<Entry<String, String>> it = rr.iterator(); it.hasNext(); i++) { Entry<String, String> entry = it.next(); String v = entry.getValue(); String s = entry.getKey() + "=" + v; - if (entry.getKey().equals(PathsAndFiles.XDG_CACHE_HOME_VAR)) { - ServerAccess.logOutputReprint(entry.getKey() + " was " + v); - v = cacheF.getAbsolutePath(); - ServerAccess.logOutputReprint("set " + v); - cache = true; - } else if (entry.getKey().equals(PathsAndFiles.XDG_CONFIG_HOME_VAR)) { - ServerAccess.logOutputReprint(entry.getKey() + " was " + v); - v = configF.getAbsolutePath(); - ServerAccess.logOutputReprint("set " + v); - config = true; + switch (entry.getKey()) { + case PathsAndFiles.XDG_CACHE_HOME_VAR: + ServerAccess.logOutputReprint(entry.getKey() + " was " + v); + v = cacheF.getAbsolutePath(); + ServerAccess.logOutputReprint("set " + v); + cache = true; + break; + case PathsAndFiles.XDG_CONFIG_HOME_VAR: + ServerAccess.logOutputReprint(entry.getKey() + " was " + v); + v = configF.getAbsolutePath(); + ServerAccess.logOutputReprint("set " + v); + config = true; + break; } s = entry.getKey() + "=" + v; l.add(s); @@ -346,7 +350,6 @@ Assert.assertTrue("creation of old config by renaming " + currentConfigCache + " to " + oldIcedTea + " failed", a); assertOldConfigFilesInHome(true, true, true); assertNotConfigFilesInHome(true, true, true); - ; } finally { ServerAccess.PROCESS_TIMEOUT = t; deleteRecursively(tmp); @@ -367,27 +370,24 @@ } private static List<File> getContentOfDirectory(File f) { - List<File> result = new ArrayList<File>(); + List<File> result = new ArrayList<>(); if (f == null || !f.exists() || !f.isDirectory()) { return result; } File[] files = f.listFiles(); - for (int i = 0; i < files.length; i++) { - File file = files[i]; + for (File file : files) { if (file.isDirectory()) { result.addAll(getContentOfDirectory(file)); } else { result.add(file); } - } return result; } private static String listToString(List<File>... l) { StringBuilder sb = new StringBuilder(); - for (int i = 0; i < l.length; i++) { - List<File> list = l[i]; + for (List<File> list : l) { for (File s : list) { sb.append(s.getAbsolutePath()).append('\n'); } @@ -494,8 +494,8 @@ //runs private static final RulesFolowingClosingListener.ContainsRule simpletests1Run = new RulesFolowingClosingListener.ContainsRule("Good simple javaws exapmle"); private static final RulesFolowingClosingListener.ContainsRule simpletests2Run = new RulesFolowingClosingListener.ContainsRule("Correct exception"); - private static final RulesFolowingClosingListener.ContainsRule moving = new RulesFolowingClosingListener.ContainsRule("Legacy configuration and cache found. Those will be now transported to new location"); - private static final RulesFolowingClosingListener.NotContainsRule notMoving = new RulesFolowingClosingListener.NotContainsRule("Legacy configuration and cache found. Those will be now transported to new location"); + private static final RulesFolowingClosingListener.ContainsRule moving = new RulesFolowingClosingListener.ContainsRule(DeploymentConfiguration.TRANSFER_TITLE); + private static final RulesFolowingClosingListener.NotContainsRule notMoving = new RulesFolowingClosingListener.NotContainsRule(DeploymentConfiguration.TRANSFER_TITLE); private static final RulesFolowingClosingListener.ContainsRule unknownProperty = new RulesFolowingClosingListener.ContainsRule("WARNING: Unknown property name"); private static final RulesFolowingClosingListener.ContainsRule applet1Run = new RulesFolowingClosingListener.ContainsRule("applet was started"); //javaws/plugin files @@ -532,6 +532,11 @@ ProcessResult pr = pw.execute(); Assert.assertTrue(simpletests1Run.toPassingString(), simpletests1Run.evaluate(pr.stdout)); Assert.assertTrue(notMoving.toPassingString(), notMoving.evaluate(pr.stdout)); + itwDoesNotComplainAboutOldConfig(pr); //no old config + assertMainFilesInHome(true, false, false); + assertOldNotMainFilesInHome(true, true, true); + ProcessResult pr2 = pw.execute(); + itwDoesNotComplainAboutOldConfig(pr2); assertMainFilesInHome(true, false, false); assertOldNotMainFilesInHome(true, true, true); } finally { @@ -550,10 +555,17 @@ fakeExtendedSecurity(ff); ProcessWrapper pw = new ProcessWrapper(server.getJavawsLocation(), null, server.getUrl("simpletest1.jnlp"), (ContentReaderListener) null, null, setXdgVAlues(f)); ProcessResult pr = pw.execute(); + itwDoesNotComplainAboutOldConfig(pr); //no old config Assert.assertTrue(simpletests1Run.toPassingString(), simpletests1Run.evaluate(pr.stdout)); Assert.assertTrue(notMoving.toPassingString(), notMoving.evaluate(pr.stdout)); assertMainFiles(listToString(getContentOfDirectory(f)), true, false, false); assertOldNotMainFilesInHome(true, true, true); + ProcessResult pr2 = pw.execute(); + itwDoesNotComplainAboutOldConfig(pr2); //no old config + Assert.assertTrue(simpletests1Run.toPassingString(), simpletests1Run.evaluate(pr2.stdout)); + Assert.assertTrue(notMoving.toPassingString(), notMoving.evaluate(pr2.stdout)); + assertMainFiles(listToString(getContentOfDirectory(f)), true, false, false); + assertOldNotMainFilesInHome(true, true, true); } finally { deleteRecursively(f); } @@ -571,15 +583,36 @@ fakeExtendedSecurity(ff); ProcessWrapper pw = new ProcessWrapper(server.getJavawsLocation(), null, server.getUrl("simpletest1.jnlp"), (ContentReaderListener) null, null, setXdgVAlues(f)); ProcessResult pr = pw.execute(); + itwDoesNotComplainAboutOldConfig(pr); Assert.assertTrue(simpletests1Run.toPassingString(), simpletests1Run.evaluate(pr.stdout)); Assert.assertTrue(notMoving.toPassingString(), notMoving.evaluate(pr.stdout)); assertMainFiles(listToString(getContentOfDirectory(f)), true, false, false); assertOldNotMainFilesInHome(true, true, true); + ProcessResult pr3 = pw.execute(); + itwDoesNotComplainAboutOldConfig(pr3); + Assert.assertTrue(simpletests1Run.toPassingString(), simpletests1Run.evaluate(pr3.stdout)); + Assert.assertTrue(notMoving.toPassingString(), notMoving.evaluate(pr3.stdout)); + assertMainFiles(listToString(getContentOfDirectory(f)), true, false, false); + assertOldNotMainFilesInHome(true, true, true); } finally { deleteRecursively(f); } } + private static void itwDoesNotComplainAboutOldConfig(ProcessResult pr) { + itwDoesNotComplainAboutOldConfig(pr.stdout); + } + private static void itwDoesNotComplainAboutOldConfig(String stdout) { + Assert.assertFalse(stdout.contains(DeploymentConfiguration.TRANSFER_TITLE)); + } + + private static void itwDoesComplainAboutOldConfig(ProcessResult pr) { + itwDoesComplainAboutOldConfig(pr.stdout); + } + private static void itwDoesComplainAboutOldConfig(String stdout) { + Assert.assertTrue(stdout.contains(DeploymentConfiguration.TRANSFER_TITLE)); + } + private static void assertOldMainFiles(String s, boolean s1, boolean s2, boolean a1) { if (a1) { Assert.assertTrue(appletJarInside.toPassingString(), appletJarInside.evaluate(s)); @@ -1017,8 +1050,8 @@ boolean a = file.mkdirs(); Assert.assertTrue("creation of directories for " + file + " failed", a); } - File f = new File(file, "deployment.properties"); - ServerAccess.saveFile("deployment.security.level = ALLOW_UNSIGNED\ndeployment.manifest.attributes.check=false", f); + File f = new File(file, PathsAndFiles.USER_DEPLOYMENT_FILE.getDefaultFile().getName()); + ServerAccess.saveFile("deployment.security.level=ALLOW_UNSIGNED\ndeployment.manifest.attributes.check=NONE", f); } /*