diff --git a/css.editor/src/org/netbeans/modules/css/resources/layer.xml b/css.editor/src/org/netbeans/modules/css/resources/layer.xml --- a/css.editor/src/org/netbeans/modules/css/resources/layer.xml +++ b/css.editor/src/org/netbeans/modules/css/resources/layer.xml @@ -164,6 +164,10 @@ + + + + diff --git a/nbbuild/antsrc/org/netbeans/nbbuild/LayerOptionsImport.java b/nbbuild/antsrc/org/netbeans/nbbuild/LayerOptionsImport.java --- a/nbbuild/antsrc/org/netbeans/nbbuild/LayerOptionsImport.java +++ b/nbbuild/antsrc/org/netbeans/nbbuild/LayerOptionsImport.java @@ -146,7 +146,7 @@ log(origin); } for (String name : name2value.keySet()) { - if (name.matches("(in|ex)clude")) { + if (name.matches("(in|ex)clude") || name.equals("translate")) { String value = name2value.get(name); if (value != null && value.length() > 0) { String line = String.format("%s %s", name, value); @@ -198,9 +198,14 @@ String n = attributes.getValue("name"); prefix += n; register(prefix); - } else if (qName.equals("attr") && attributes.getValue("name").matches("(in|ex)clude")) { + } else if (qName.equals("attr") && (attributes.getValue("name").matches("(in|ex)clude") + || attributes.getValue("name").equals("translate"))) { String attrName = attributes.getValue("name"); String attrValue = attributes.getValue("stringvalue"); + if(attrName.equals("translate")) { + prefix = "OptionsExport/".concat(cnb); + register(prefix); + } Map name2value = attributesMap.get(prefix); if (name2value == null) { name2value = new HashMap(); diff --git a/o.n.upgrader/src/org/netbeans/upgrade/CopyFiles.java b/o.n.upgrader/src/org/netbeans/upgrade/CopyFiles.java --- a/o.n.upgrader/src/org/netbeans/upgrade/CopyFiles.java +++ b/o.n.upgrader/src/org/netbeans/upgrade/CopyFiles.java @@ -52,7 +52,9 @@ import java.io.InputStreamReader; import java.io.OutputStream; import java.io.Reader; +import java.util.HashMap; import java.util.HashSet; +import java.util.Map.Entry; import java.util.Set; import java.util.logging.Level; import java.util.logging.Logger; @@ -67,18 +69,13 @@ * @author Jiri Skrivanek */ final class CopyFiles extends Object { - - //>>> hack for http://netbeans.org/bugzilla/show_bug.cgi?id=218976 - private static final String CSSSP = "config/Editors/text/"; - private static final String ORIG_CSSSP = CSSSP + "x-css"; - private static final String TARG_CSSSP = CSSSP + "css"; - //<< includePatterns = new HashSet(); private Set excludePatterns = new HashSet(); + private HashMap translatePatterns = new HashMap(); // private static final Logger LOGGER = Logger.getLogger(CopyFiles.class.getName()); private CopyFiles(File source, File target, File patternsFile) { @@ -193,9 +190,14 @@ return; } - //>>> hack for http://netbeans.org/bugzilla/show_bug.cgi?id=218976 - if(relativePath.startsWith(ORIG_CSSSP)) { relativePath = TARG_CSSSP + relativePath.substring(ORIG_CSSSP.length()); } - //<<< + for (Entry entry : translatePatterns.entrySet()) { + if (relativePath.startsWith(entry.getKey())) { + String value = entry.getValue(); + LOGGER.log(Level.INFO, "Translating old relative path: {0}", relativePath); //NOI18N + relativePath = value + relativePath.substring(entry.getKey().length()); + LOGGER.log(Level.INFO, " to new one: {0}", relativePath); //NOI18N + } + } File targetFile = new File(targetRoot, relativePath); LOGGER.log(Level.FINE, "Path: {0}", relativePath); //NOI18N @@ -299,6 +301,22 @@ if (line.length() > 0) { excludePatterns.addAll(parsePattern(line)); } + } else if (line.startsWith("translate ")) { //NOI18N + line = line.substring(10); + if (line.length() > 0) { + String[] translations = line.split("\\|"); + for (String translation : translations) { + String originalPath = translation.substring(0, translation.indexOf("=>")); + String newPath = translation.substring(translation.lastIndexOf("=>") + 2); + if (translatePatterns.containsKey(originalPath)) { + LOGGER.log(Level.INFO, "Translation already exists: {0}. Ignoring new translation: {1}", //NOI18N + new Object[]{originalPath.concat("=>").concat(translatePatterns.get(originalPath)), + originalPath.concat("=>").concat(newPath)}); + } else { + translatePatterns.put(originalPath, newPath); + } + } + } } else { throw new java.io.IOException("Wrong line: " + line); //NOI18N }