Ecma6 Migration: logout login html/js migration
diff --git a/org.eclipse.scout.migration.ecma6/src/main/java/org/eclipse/scout/migration/ecma6/task/T200_IndexHtmlScriptTags.java b/org.eclipse.scout.migration.ecma6/src/main/java/org/eclipse/scout/migration/ecma6/task/T200_HtmlScriptTags.java
similarity index 80%
rename from org.eclipse.scout.migration.ecma6/src/main/java/org/eclipse/scout/migration/ecma6/task/T200_IndexHtmlScriptTags.java
rename to org.eclipse.scout.migration.ecma6/src/main/java/org/eclipse/scout/migration/ecma6/task/T200_HtmlScriptTags.java
index c01fc3e..267d2c1 100644
--- a/org.eclipse.scout.migration.ecma6/src/main/java/org/eclipse/scout/migration/ecma6/task/T200_IndexHtmlScriptTags.java
+++ b/org.eclipse.scout.migration.ecma6/src/main/java/org/eclipse/scout/migration/ecma6/task/T200_HtmlScriptTags.java
@@ -1,14 +1,13 @@
package org.eclipse.scout.migration.ecma6.task;
-import java.nio.file.Paths;
+import java.nio.file.FileSystems;
+import java.nio.file.PathMatcher;
import java.util.ArrayList;
import java.util.List;
-import java.util.function.Predicate;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.eclipse.scout.migration.ecma6.MigrationUtility;
-import org.eclipse.scout.migration.ecma6.PathFilters;
import org.eclipse.scout.migration.ecma6.PathInfo;
import org.eclipse.scout.migration.ecma6.WorkingCopy;
import org.eclipse.scout.migration.ecma6.context.AppNameContextProperty;
@@ -22,27 +21,31 @@
import org.slf4j.LoggerFactory;
@Order(200)
-public class T200_IndexHtmlScriptTags extends AbstractTask {
- private static final Logger LOG = LoggerFactory.getLogger(T200_IndexHtmlScriptTags.class);
+public class T200_HtmlScriptTags extends AbstractTask {
+ private static final Logger LOG = LoggerFactory.getLogger(T200_HtmlScriptTags.class);
+
+ private static PathMatcher FILE_MATCHER = FileSystems.getDefault().getPathMatcher("glob:src/main/resources/WebContent/{index,login,logout}.html");
private static Pattern END_BODY_REGEX = Pattern.compile("(\\s*)\\<\\/body\\>");
- private Predicate<PathInfo> m_indexJsFilter = PathFilters.oneOf(Paths.get("src/main/resources/WebContent/index.html"));
-
private String m_newLineAndIndet;
private List<String> m_scriptsMoveToBody = new ArrayList<>();
@Override
public boolean accept(PathInfo pathInfo, Context context) {
- return m_indexJsFilter.test(pathInfo);
+ return FILE_MATCHER.matches(pathInfo.getModuleRelativePath());
}
@Override
public void process(PathInfo pathInfo, Context context) {
+ String appJsFileName = pathInfo.getPath().getFileName().toString().replaceAll("\\.html\\Z", "");
+ if ("index".equalsIgnoreCase(appJsFileName)) {
+ appJsFileName = context.getProperty(AppNameContextProperty.class);
+ }
WorkingCopy workingCopy = context.ensureWorkingCopy(pathInfo.getPath());
m_newLineAndIndet = workingCopy.getLineDelimiter() + " ";
removeScriptElements(workingCopy);
- addScriptElements(workingCopy, context);
+ addScriptElements(workingCopy, appJsFileName, context);
}
private void removeScriptElements(WorkingCopy workingCopy) {
@@ -79,7 +82,7 @@
return source;
}
- private void addScriptElements(WorkingCopy workingCopy, Context context) {
+ private void addScriptElements(WorkingCopy workingCopy, String appJsFileName, Context context) {
String source = workingCopy.getSource();
Matcher matcher = END_BODY_REGEX.matcher(source);
if (matcher.find()) {
@@ -91,7 +94,7 @@
.append(m_newLineAndIndet)
.append("<scout:script src=\"eclipse-scout.js\" />")
.append(m_newLineAndIndet)
- .append("<scout:script src=\"").append(context.getProperty(AppNameContextProperty.class)).append(".js\" />");
+ .append("<scout:script src=\"").append(appJsFileName).append(".js\" />");
for (String scriptElement : m_scriptsMoveToBody) {
scriptBuilder.append(m_newLineAndIndet)
.append(scriptElement);
@@ -105,7 +108,7 @@
else {
MigrationUtility.prependTodo(workingCopy, "add script imports: <scout:script src=\"jquery.js\" /> " +
"<scout:script src=\"eclipse-scout.js\" /> " +
- "<scout:script src=\"jswidgets.js\" />");
+ "<scout:script src=\"" + appJsFileName + ".js\" />");
}
}
}
diff --git a/org.eclipse.scout.migration.ecma6/src/main/java/org/eclipse/scout/migration/ecma6/task/T300_IndexHtmlStylesheetTags.java b/org.eclipse.scout.migration.ecma6/src/main/java/org/eclipse/scout/migration/ecma6/task/T300_HtmlStylesheetTags.java
similarity index 90%
rename from org.eclipse.scout.migration.ecma6/src/main/java/org/eclipse/scout/migration/ecma6/task/T300_IndexHtmlStylesheetTags.java
rename to org.eclipse.scout.migration.ecma6/src/main/java/org/eclipse/scout/migration/ecma6/task/T300_HtmlStylesheetTags.java
index 117ec25..d123427 100644
--- a/org.eclipse.scout.migration.ecma6/src/main/java/org/eclipse/scout/migration/ecma6/task/T300_IndexHtmlStylesheetTags.java
+++ b/org.eclipse.scout.migration.ecma6/src/main/java/org/eclipse/scout/migration/ecma6/task/T300_HtmlStylesheetTags.java
@@ -1,5 +1,7 @@
package org.eclipse.scout.migration.ecma6.task;
+import java.nio.file.FileSystems;
+import java.nio.file.PathMatcher;
import java.nio.file.Paths;
import java.util.Set;
import java.util.function.Predicate;
@@ -22,15 +24,16 @@
import org.slf4j.LoggerFactory;
@Order(300)
-public class T300_IndexHtmlStylesheetTags extends AbstractTask {
- private static final Logger LOG = LoggerFactory.getLogger(T300_IndexHtmlStylesheetTags.class);
+public class T300_HtmlStylesheetTags extends AbstractTask {
+ private static final Logger LOG = LoggerFactory.getLogger(T300_HtmlStylesheetTags.class);
+ private static PathMatcher FILE_MATCHER = FileSystems.getDefault().getPathMatcher("glob:src/main/resources/WebContent/{index,login,logout}.html");
private Predicate<PathInfo> m_fileFilter = PathFilters.oneOf(Paths.get("src/main/resources/WebContent/index.html"));
- private Set<String> m_stylesheetsToRemove = CollectionUtility.hashSet("res/libs-all-macro.less");
+ private Set<String> m_stylesheetsToRemove = CollectionUtility.hashSet("res/libs-all-macro.less", "res/scout-login-module.less", "res/scout-logout-module.less");
@Override
public boolean accept(PathInfo pathInfo, Context context) {
- return m_fileFilter.test(pathInfo);
+ return FILE_MATCHER.matches(pathInfo.getModuleRelativePath());
}
@Override
diff --git a/org.eclipse.scout.migration.ecma6/src/main/java/org/eclipse/scout/migration/ecma6/task/T400_IndexHtmlIncludeHead.java b/org.eclipse.scout.migration.ecma6/src/main/java/org/eclipse/scout/migration/ecma6/task/T400_HtmlIncludeHead.java
similarity index 84%
rename from org.eclipse.scout.migration.ecma6/src/main/java/org/eclipse/scout/migration/ecma6/task/T400_IndexHtmlIncludeHead.java
rename to org.eclipse.scout.migration.ecma6/src/main/java/org/eclipse/scout/migration/ecma6/task/T400_HtmlIncludeHead.java
index 67a5415..62f1df0 100644
--- a/org.eclipse.scout.migration.ecma6/src/main/java/org/eclipse/scout/migration/ecma6/task/T400_IndexHtmlIncludeHead.java
+++ b/org.eclipse.scout.migration.ecma6/src/main/java/org/eclipse/scout/migration/ecma6/task/T400_HtmlIncludeHead.java
@@ -1,12 +1,11 @@
package org.eclipse.scout.migration.ecma6.task;
-import java.nio.file.Paths;
+import java.nio.file.FileSystems;
+import java.nio.file.PathMatcher;
import java.util.List;
-import java.util.function.Predicate;
import java.util.stream.Collectors;
import org.eclipse.scout.migration.ecma6.MigrationUtility;
-import org.eclipse.scout.migration.ecma6.PathFilters;
import org.eclipse.scout.migration.ecma6.PathInfo;
import org.eclipse.scout.migration.ecma6.WorkingCopy;
import org.eclipse.scout.migration.ecma6.context.Context;
@@ -19,14 +18,14 @@
import org.slf4j.LoggerFactory;
@Order(400)
-public class T400_IndexHtmlIncludeHead extends AbstractTask {
- private static final Logger LOG = LoggerFactory.getLogger(T400_IndexHtmlIncludeHead.class);
+public class T400_HtmlIncludeHead extends AbstractTask {
+ private static final Logger LOG = LoggerFactory.getLogger(T400_HtmlIncludeHead.class);
- private Predicate<PathInfo> m_pathFilter = PathFilters.oneOf(Paths.get("src/main/resources/WebContent/index.html"));
+ private static PathMatcher FILE_MATCHER = FileSystems.getDefault().getPathMatcher("glob:src/main/resources/WebContent/{index,login,logout}.html");
@Override
public boolean accept(PathInfo pathInfo, Context context) {
- return m_pathFilter.test(pathInfo);
+ return FILE_MATCHER.matches(pathInfo.getModuleRelativePath());
}
@Override
diff --git a/org.eclipse.scout.migration.ecma6/src/main/java/org/eclipse/scout/migration/ecma6/task/T40100_JsApp.java b/org.eclipse.scout.migration.ecma6/src/main/java/org/eclipse/scout/migration/ecma6/task/T40100_JsApps.java
similarity index 72%
rename from org.eclipse.scout.migration.ecma6/src/main/java/org/eclipse/scout/migration/ecma6/task/T40100_JsApp.java
rename to org.eclipse.scout.migration.ecma6/src/main/java/org/eclipse/scout/migration/ecma6/task/T40100_JsApps.java
index 9d72c07..52fc2b7 100644
--- a/org.eclipse.scout.migration.ecma6/src/main/java/org/eclipse/scout/migration/ecma6/task/T40100_JsApp.java
+++ b/org.eclipse.scout.migration.ecma6/src/main/java/org/eclipse/scout/migration/ecma6/task/T40100_JsApps.java
@@ -15,6 +15,9 @@
import java.nio.file.Files;
import java.nio.file.PathMatcher;
import java.nio.file.Paths;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Map.Entry;
import org.eclipse.scout.migration.ecma6.MigrationUtility;
import org.eclipse.scout.migration.ecma6.PathInfo;
@@ -29,10 +32,17 @@
import org.slf4j.LoggerFactory;
@Order(40100)
-public class T40100_JsApp extends AbstractTask {
- private static final Logger LOG = LoggerFactory.getLogger(T40100_JsApp.class);
+public class T40100_JsApps extends AbstractTask {
+ private static final Logger LOG = LoggerFactory.getLogger(T40100_JsApps.class);
- private static PathMatcher MACRO_MATCHER = FileSystems.getDefault().getPathMatcher("glob:src/main/resources/WebContent/res/index.js");
+ private static PathMatcher MACRO_MATCHER = FileSystems.getDefault().getPathMatcher("glob:src/main/resources/WebContent/res/{index,login,logout}.js");
+ private static final Map<String /*fqn*/, String /*simpleName*/> APP_NAMES = new HashMap<>();
+ static {
+ APP_NAMES.put("scout.App", "App");
+ APP_NAMES.put("scout.RemoteApp", "RemoteApp");
+ APP_NAMES.put("scout.LoginApp", "LoginApp");
+ APP_NAMES.put("scout.LogoutApp", "LogoutApp");
+ }
@Override
public boolean accept(PathInfo pathInfo, Context context) {
@@ -41,7 +51,11 @@
@Override
public void process(PathInfo pathInfo, Context context) {
- final WorkingCopy appJsWc = context.ensureWorkingCopy(Configuration.get().getTargetModuleDirectory().resolve(Paths.get("src/main/js", Configuration.get().getNamespace() + ".js")), true);
+ String targetFileName = pathInfo.getPath().getFileName().toString().replaceAll("\\.js\\Z", "");
+ if ("index".equalsIgnoreCase(targetFileName)) {
+ targetFileName = Configuration.get().getNamespace();
+ }
+ final WorkingCopy appJsWc = context.ensureWorkingCopy(Configuration.get().getTargetModuleDirectory().resolve(Paths.get("src/main/js", targetFileName + ".js")), true);
final JsFile appJsFile = context.ensureJsFile(appJsWc, false);
final WorkingCopy indexWc = context.ensureWorkingCopy(pathInfo.getPath());
@@ -52,18 +66,27 @@
// create import for app
StringBuilder appSourceBuilder = new StringBuilder(appJsWc.getSource());
appSourceBuilder.append(appJsWc.getLineDelimiter()).append(appJsWc.getLineDelimiter());
- if (indexSource.contains("scout.RemoteApp")) {
- indexSource = indexSource.replace("scout.RemoteApp", "RemoteApp");
+
+ Entry<String, String> appMapping = null;
+ for (Entry<String, String> e : APP_NAMES.entrySet()) {
+ if (indexSource.contains(e.getKey())) {
+ appMapping = e;
+ break;
+ }
+ }
+
+ if (appMapping != null) {
+ indexSource = indexSource.replace(appMapping.getKey(), appMapping.getValue());
JsImport imp = appJsFile.getImport("@eclipse-scout/core");
if (imp == null) {
imp = new JsImport("@eclipse-scout/core");
- imp.addMember(new AliasedMember("RemoteApp"));
+ imp.addMember(new AliasedMember(appMapping.getValue()));
appJsFile.addImport(imp);
}
else {
appSourceBuilder = new StringBuilder(appSourceBuilder.toString().replace("ref1, ", ""));
imp.setDefaultMember(null);
- imp.addMember(new AliasedMember("RemoteApp"));
+ imp.addMember(new AliasedMember(appMapping.getValue()));
}
}
else {
diff --git a/org.eclipse.scout.migration.ecma6/src/main/java/org/eclipse/scout/migration/ecma6/task/pre/T100_CopySourceTargetTask.java b/org.eclipse.scout.migration.ecma6/src/main/java/org/eclipse/scout/migration/ecma6/task/pre/T100_CopySourceTargetTask.java
index 5e0ecc5..4ad04f0 100644
--- a/org.eclipse.scout.migration.ecma6/src/main/java/org/eclipse/scout/migration/ecma6/task/pre/T100_CopySourceTargetTask.java
+++ b/org.eclipse.scout.migration.ecma6/src/main/java/org/eclipse/scout/migration/ecma6/task/pre/T100_CopySourceTargetTask.java
@@ -19,7 +19,7 @@
import org.eclipse.scout.migration.ecma6.configuration.Configuration;
import org.eclipse.scout.migration.ecma6.context.Context;
-import org.eclipse.scout.migration.ecma6.task.T200_IndexHtmlScriptTags;
+import org.eclipse.scout.migration.ecma6.task.T200_HtmlScriptTags;
import org.eclipse.scout.rt.platform.Order;
import org.eclipse.scout.rt.platform.exception.ProcessingException;
import org.eclipse.scout.rt.platform.util.ObjectUtility;
@@ -28,7 +28,7 @@
@Order(100)
public class T100_CopySourceTargetTask implements IPreMigrationTask {
- private static final Logger LOG = LoggerFactory.getLogger(T200_IndexHtmlScriptTags.class);
+ private static final Logger LOG = LoggerFactory.getLogger(T200_HtmlScriptTags.class);
@Override
public void execute(Context context) {