You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by de...@apache.org on 2017/09/17 12:29:56 UTC
[myfaces-trinidad] 15/30: Checkpoint: more skin pregen code cleanup
This is an automated email from the ASF dual-hosted git repository.
deki pushed a commit to branch andys-skin-pregen
in repository https://gitbox.apache.org/repos/asf/myfaces-trinidad.git
commit fafbaabb893461db3784a4b3e9ae1ddf4b68fef0
Author: Andy Schwartz <an...@apache.org>
AuthorDate: Tue Mar 13 20:42:23 2012 +0000
Checkpoint: more skin pregen code cleanup
Only interesting change: updated NameUtils.getPlatformName() to give TrinidadAgent.OS_UNKNOWN a name that we can use for a) sorting b) logging and c) file names. Previously NameUtils.getPlatformName(OS_UNKNOWN) returned null.
---
.../skin/pregen/config/PregenConfig.java | 12 ++++++++++
.../pregen/variant/PlatformVariantExtractor.java | 26 ++++++++++++++++++++--
.../trinidadinternal/style/util/NameUtils.java | 4 +++-
3 files changed, 39 insertions(+), 3 deletions(-)
diff --git a/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/pregen/config/PregenConfig.java b/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/pregen/config/PregenConfig.java
index 4db7692..67c2b6a 100644
--- a/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/pregen/config/PregenConfig.java
+++ b/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/pregen/config/PregenConfig.java
@@ -41,6 +41,18 @@ import org.apache.myfaces.trinidadinternal.util.nls.LocaleUtils;
/**
* Specifies configuration constraints for skin pregeneration.
+ *
+ * For the moment, only two types of configurations are supported:
+ *
+ * - all: All possible variants are pregenerated
+ * - common: Only the most common variants are pregenerated
+ *
+ * The "variants" request parameter specifies which of these two
+ * configurations to use.
+ *
+ * In the future, we can consider supporting finer-grained configuration
+ * specification - eg. we could allow specific platforms/agents/locales
+ * to be specified via an XML configuration file.
*/
abstract public class PregenConfig
{
diff --git a/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/pregen/variant/PlatformVariantExtractor.java b/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/pregen/variant/PlatformVariantExtractor.java
index ef18f3f..7d0a04f 100644
--- a/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/pregen/variant/PlatformVariantExtractor.java
+++ b/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/pregen/variant/PlatformVariantExtractor.java
@@ -22,10 +22,12 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
+import java.util.Comparator;
+import java.util.HashSet;
import java.util.List;
-import java.util.TreeSet;
import org.apache.myfaces.trinidadinternal.agent.TrinidadAgent;
+import org.apache.myfaces.trinidadinternal.style.util.NameUtils;
import org.apache.myfaces.trinidadinternal.style.xml.parse.StyleSheetNode;
/**
@@ -35,7 +37,7 @@ final class PlatformVariantExtractor implements SkinVariantExtractor<Integer>
{
public PlatformVariantExtractor()
{
- _platforms = new TreeSet<Integer>();
+ _platforms = new HashSet<Integer>();
}
@Override
@@ -66,8 +68,28 @@ final class PlatformVariantExtractor implements SkinVariantExtractor<Integer>
platforms.addAll(_platforms);
+ // Sort by name to make logger output/progress easier to monitor
+ _sortByPlatformName(platforms);
+
return Collections.unmodifiableList(platforms);
}
+
+ private static void _sortByPlatformName(List<Integer> platforms)
+ {
+ Collections.sort(platforms,
+ new Comparator<Integer>() {
+ @Override
+ public int compare(Integer platform1, Integer platform2)
+ {
+ String name1 = NameUtils.getPlatformName(platform1);
+ String name2 = NameUtils.getPlatformName(platform2);
+ assert(name1 != null);
+ assert(name2 != null);
+
+ return name1.compareTo(name2);
+ }
+ });
+ }
private final Collection<Integer> _platforms;
}
diff --git a/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/style/util/NameUtils.java b/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/style/util/NameUtils.java
index d2dc1ae..c3fe5ab 100644
--- a/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/style/util/NameUtils.java
+++ b/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/style/util/NameUtils.java
@@ -206,7 +206,7 @@ public class NameUtils
name = _PLATFORM_ANDROID;
break;
case TrinidadAgent.OS_UNKNOWN:
- // This case is only here to avoid the default assertion
+ name = _PLATFORM_UNKNOWN;
break;
default:
// New or invalid os id
@@ -705,6 +705,8 @@ public class NameUtils
private static final String _PLATFORM_ANDROID = "android";
+ private static final String _PLATFORM_UNKNOWN = "unknown";
+
// Accessibility constants
private static final String _ACC_HIGH_CONTRAST = "hc";
--
To stop receiving notification emails like this one, please contact
"commits@myfaces.apache.org" <co...@myfaces.apache.org>.