You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by hl...@apache.org on 2012/12/15 03:12:56 UTC

[3/6] git commit: Create a constant for the data-validation attribute

Create a constant for the data-validation attribute


Project: http://git-wip-us.apache.org/repos/asf/tapestry-5/repo
Commit: http://git-wip-us.apache.org/repos/asf/tapestry-5/commit/395d034f
Tree: http://git-wip-us.apache.org/repos/asf/tapestry-5/tree/395d034f
Diff: http://git-wip-us.apache.org/repos/asf/tapestry-5/diff/395d034f

Branch: refs/heads/5.4-js-rewrite
Commit: 395d034f910c47590b2d8b45ebf3604158d35388
Parents: 4a043f3
Author: Howard M. Lewis Ship <hl...@apache.org>
Authored: Fri Dec 14 17:54:44 2012 -0800
Committer: Howard M. Lewis Ship <hl...@apache.org>
Committed: Fri Dec 14 17:54:44 2012 -0800

----------------------------------------------------------------------
 .../services/javascript/ModuleManagerImpl.java     |   45 +--------------
 .../services/javascript/DataConstants.java         |   30 ++++++++++
 .../java/org/apache/tapestry5/validator/Email.java |    4 +-
 .../java/org/apache/tapestry5/validator/Max.java   |    4 +-
 .../org/apache/tapestry5/validator/MaxLength.java  |    3 +-
 .../java/org/apache/tapestry5/validator/Min.java   |    3 +-
 .../org/apache/tapestry5/validator/MinLength.java  |    3 +-
 .../org/apache/tapestry5/validator/Regexp.java     |    3 +-
 .../org/apache/tapestry5/validator/Required.java   |    5 +-
 9 files changed, 49 insertions(+), 51 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/395d034f/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/javascript/ModuleManagerImpl.java
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/javascript/ModuleManagerImpl.java b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/javascript/ModuleManagerImpl.java
index 01a475e..5895d65 100644
--- a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/javascript/ModuleManagerImpl.java
+++ b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/javascript/ModuleManagerImpl.java
@@ -18,7 +18,6 @@ import org.apache.tapestry5.Asset;
 import org.apache.tapestry5.SymbolConstants;
 import org.apache.tapestry5.annotations.Path;
 import org.apache.tapestry5.dom.Element;
-import org.apache.tapestry5.func.F;
 import org.apache.tapestry5.internal.services.assets.ResourceChangeTracker;
 import org.apache.tapestry5.ioc.Messages;
 import org.apache.tapestry5.ioc.Resource;
@@ -35,7 +34,6 @@ import org.apache.tapestry5.services.assets.StreamableResourceSource;
 import org.apache.tapestry5.services.javascript.JavaScriptModuleConfiguration;
 import org.apache.tapestry5.services.javascript.ModuleManager;
 
-import java.util.Comparator;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -50,9 +48,6 @@ public class ModuleManagerImpl implements ModuleManager
 
     private final boolean compactJSON;
 
-    // Library names, sorted by order of descending length.
-    private final List<String> libraryNames;
-
     private final Map<String, Resource> shimModuleNameToResource = CollectionFactory.newMap();
 
     private final Resource classpathRoot;
@@ -81,17 +76,6 @@ public class ModuleManagerImpl implements ModuleManager
 
         classpathRoot = assetSource.resourceForPath("");
 
-        libraryNames = F.flow(resolver.getLibraryNames())
-                .append("app")
-                .sort(new Comparator<String>()
-                {
-                    @Override
-                    public int compare(String o1, String o2)
-                    {
-                        return o2.length() - o1.length();
-                    }
-                }).toList();
-
         extensions = CollectionFactory.newSet("js");
 
         extensions.addAll(streamableResourceSource.fileExtensionsForContentType("text/javascript"));
@@ -216,41 +200,16 @@ public class ModuleManagerImpl implements ModuleManager
             return resource;
         }
 
-        // Look for the longest match.
-
-        for (String library : libraryNames)
-        {
-            int len = library.length();
-
-            if (moduleName.length() <= len)
-            {
-                continue;
-            }
-
-            if (moduleName.startsWith(library) && moduleName.charAt(len) == '/')
-            {
-                return findResourceInsideLibrary(library, moduleName);
-            }
-        }
-
-        return classpathRoot;
-    }
-
-    private Resource findResourceInsideLibrary(String library, String moduleName)
-    {
-        String extra = moduleName.substring(library.length() + 1);
 
         // Tack on a fake extension; otherwise modules whose name includes a '.' get mangled
         // by Resource.withExtension().
-        String baseName = String.format("/META-INF/modules/%s/%s.EXT",
-                library,
-                extra);
+        String baseName = String.format("/META-INF/modules/%s.EXT", moduleName);
 
         Resource baseResource = classpathRoot.forFile(baseName);
 
         for (String extension : extensions)
         {
-            Resource resource = baseResource.withExtension(extension);
+            resource = baseResource.withExtension(extension);
 
             if (resource.exists())
             {

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/395d034f/tapestry-core/src/main/java/org/apache/tapestry5/services/javascript/DataConstants.java
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/services/javascript/DataConstants.java b/tapestry-core/src/main/java/org/apache/tapestry5/services/javascript/DataConstants.java
new file mode 100644
index 0000000..ebd742e
--- /dev/null
+++ b/tapestry-core/src/main/java/org/apache/tapestry5/services/javascript/DataConstants.java
@@ -0,0 +1,30 @@
+// Copyright 2012 The Apache Software Foundation
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package org.apache.tapestry5.services.javascript;
+
+/**
+ * Constants related to client-side behaviors; generally, these are attributes added to elements on the server
+ * side to trigger behaviors on the client-side.
+ *
+ * @since 5.4
+ */
+public class DataConstants
+{
+    /**
+     * Attribute, set to "true" (or any non-null value) to indicate that the element should be notified about
+     * form submission and validations events.
+     */
+    public static String VALIDATION_ATTRIBUTE = "data-validation";
+}

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/395d034f/tapestry-core/src/main/java/org/apache/tapestry5/validator/Email.java
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/validator/Email.java b/tapestry-core/src/main/java/org/apache/tapestry5/validator/Email.java
index ef5cc01..23a4eb1 100644
--- a/tapestry-core/src/main/java/org/apache/tapestry5/validator/Email.java
+++ b/tapestry-core/src/main/java/org/apache/tapestry5/validator/Email.java
@@ -19,6 +19,7 @@ import org.apache.tapestry5.MarkupWriter;
 import org.apache.tapestry5.ValidationException;
 import org.apache.tapestry5.ioc.MessageFormatter;
 import org.apache.tapestry5.services.FormSupport;
+import org.apache.tapestry5.services.javascript.DataConstants;
 import org.apache.tapestry5.services.javascript.JavaScriptSupport;
 
 import java.util.regex.Pattern;
@@ -45,7 +46,8 @@ public class Email extends AbstractValidator<Void, String>
         {
             javaScriptSupport.require("core/validation");
 
-            writer.getElement().attributes("data-validation", "true",
+            writer.attributes(
+                    DataConstants.VALIDATION_ATTRIBUTE, true,
                     "data-validate-regexp", PATTERN.pattern(),
                     "data-regexp-message", formatter.toString());
         }

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/395d034f/tapestry-core/src/main/java/org/apache/tapestry5/validator/Max.java
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/validator/Max.java b/tapestry-core/src/main/java/org/apache/tapestry5/validator/Max.java
index 646d443..c998a69 100644
--- a/tapestry-core/src/main/java/org/apache/tapestry5/validator/Max.java
+++ b/tapestry-core/src/main/java/org/apache/tapestry5/validator/Max.java
@@ -19,6 +19,7 @@ import org.apache.tapestry5.MarkupWriter;
 import org.apache.tapestry5.ValidationException;
 import org.apache.tapestry5.ioc.MessageFormatter;
 import org.apache.tapestry5.services.FormSupport;
+import org.apache.tapestry5.services.javascript.DataConstants;
 import org.apache.tapestry5.services.javascript.JavaScriptSupport;
 
 /**
@@ -49,7 +50,8 @@ public class Max extends AbstractValidator<Long, Number>
         if (formSupport.isClientValidationEnabled())
         {
             javaScriptSupport.require("core/validation");
-            writer.getElement().attributes("data-validation", "true",
+
+            writer.attributes(DataConstants.VALIDATION_ATTRIBUTE, true,
                     "data-validate-max", constraintValue.toString(),
                     "data-max-message", buildMessage(formatter, field, constraintValue));
         }

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/395d034f/tapestry-core/src/main/java/org/apache/tapestry5/validator/MaxLength.java
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/validator/MaxLength.java b/tapestry-core/src/main/java/org/apache/tapestry5/validator/MaxLength.java
index db0faf1..e51e335 100644
--- a/tapestry-core/src/main/java/org/apache/tapestry5/validator/MaxLength.java
+++ b/tapestry-core/src/main/java/org/apache/tapestry5/validator/MaxLength.java
@@ -19,6 +19,7 @@ import org.apache.tapestry5.MarkupWriter;
 import org.apache.tapestry5.ValidationException;
 import org.apache.tapestry5.ioc.MessageFormatter;
 import org.apache.tapestry5.services.FormSupport;
+import org.apache.tapestry5.services.javascript.DataConstants;
 import org.apache.tapestry5.services.javascript.JavaScriptSupport;
 
 /**
@@ -48,7 +49,7 @@ public final class MaxLength extends AbstractValidator<Integer, String>
     {
         if (formSupport.isClientValidationEnabled())
         {
-            writer.getElement().attributes("data-validate", "true",
+            writer.attributes(DataConstants.VALIDATION_ATTRIBUTE, true,
                     "data-validate-max-length", constraintValue.toString(),
                     "data-max-length-message", buildMessage(formatter, field, constraintValue));
         }

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/395d034f/tapestry-core/src/main/java/org/apache/tapestry5/validator/Min.java
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/validator/Min.java b/tapestry-core/src/main/java/org/apache/tapestry5/validator/Min.java
index e1d7472..18d577a 100644
--- a/tapestry-core/src/main/java/org/apache/tapestry5/validator/Min.java
+++ b/tapestry-core/src/main/java/org/apache/tapestry5/validator/Min.java
@@ -19,6 +19,7 @@ import org.apache.tapestry5.MarkupWriter;
 import org.apache.tapestry5.ValidationException;
 import org.apache.tapestry5.ioc.MessageFormatter;
 import org.apache.tapestry5.services.FormSupport;
+import org.apache.tapestry5.services.javascript.DataConstants;
 import org.apache.tapestry5.services.javascript.JavaScriptSupport;
 
 /* A vaidator that enforces that a number is greater than some minimum integer value. */
@@ -47,7 +48,7 @@ public class Min extends AbstractValidator<Long, Number>
         if (formSupport.isClientValidationEnabled())
         {
             javaScriptSupport.require("core/validation");
-            writer.getElement().attributes("data-validation", "true",
+            writer.attributes(DataConstants.VALIDATION_ATTRIBUTE, true,
                     "data-validate-min", constraintValue.toString(),
                     "data-min-message", buildMessage(formatter, field, constraintValue));
         }

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/395d034f/tapestry-core/src/main/java/org/apache/tapestry5/validator/MinLength.java
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/validator/MinLength.java b/tapestry-core/src/main/java/org/apache/tapestry5/validator/MinLength.java
index e3af221..82338d1 100644
--- a/tapestry-core/src/main/java/org/apache/tapestry5/validator/MinLength.java
+++ b/tapestry-core/src/main/java/org/apache/tapestry5/validator/MinLength.java
@@ -19,6 +19,7 @@ import org.apache.tapestry5.MarkupWriter;
 import org.apache.tapestry5.ValidationException;
 import org.apache.tapestry5.ioc.MessageFormatter;
 import org.apache.tapestry5.services.FormSupport;
+import org.apache.tapestry5.services.javascript.DataConstants;
 import org.apache.tapestry5.services.javascript.JavaScriptSupport;
 
 /**
@@ -48,7 +49,7 @@ public final class MinLength extends AbstractValidator<Integer, String>
     {
         if (formSupport.isClientValidationEnabled())
         {
-            writer.getElement().attributes("data-validate", "true",
+            writer.attributes(DataConstants.VALIDATION_ATTRIBUTE, true,
                     "data-validate-min-length", constraintValue.toString(),
                     "data-min-length-message", buildMessage(formatter, field, constraintValue));
         }

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/395d034f/tapestry-core/src/main/java/org/apache/tapestry5/validator/Regexp.java
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/validator/Regexp.java b/tapestry-core/src/main/java/org/apache/tapestry5/validator/Regexp.java
index 92f781a..7a399d6 100644
--- a/tapestry-core/src/main/java/org/apache/tapestry5/validator/Regexp.java
+++ b/tapestry-core/src/main/java/org/apache/tapestry5/validator/Regexp.java
@@ -19,6 +19,7 @@ import org.apache.tapestry5.MarkupWriter;
 import org.apache.tapestry5.ValidationException;
 import org.apache.tapestry5.ioc.MessageFormatter;
 import org.apache.tapestry5.services.FormSupport;
+import org.apache.tapestry5.services.javascript.DataConstants;
 import org.apache.tapestry5.services.javascript.JavaScriptSupport;
 
 import java.util.regex.Matcher;
@@ -46,7 +47,7 @@ public class Regexp extends AbstractValidator<Pattern, String>
         {
             javaScriptSupport.require("core/validation");
 
-            writer.getElement().attributes("data-validation", "true",
+            writer.attributes(DataConstants.VALIDATION_ATTRIBUTE, true,
                     "data-validate-regexp", constraintValue.pattern(),
                     "data-regexp-message", buildMessage(formatter, field, constraintValue));
         }

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/395d034f/tapestry-core/src/main/java/org/apache/tapestry5/validator/Required.java
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/validator/Required.java b/tapestry-core/src/main/java/org/apache/tapestry5/validator/Required.java
index bf1cd34..7f59b72 100644
--- a/tapestry-core/src/main/java/org/apache/tapestry5/validator/Required.java
+++ b/tapestry-core/src/main/java/org/apache/tapestry5/validator/Required.java
@@ -20,6 +20,7 @@ import org.apache.tapestry5.ValidationException;
 import org.apache.tapestry5.ioc.MessageFormatter;
 import org.apache.tapestry5.ioc.internal.util.InternalUtils;
 import org.apache.tapestry5.services.FormSupport;
+import org.apache.tapestry5.services.javascript.DataConstants;
 import org.apache.tapestry5.services.javascript.JavaScriptSupport;
 
 /**
@@ -60,8 +61,8 @@ public final class Required extends AbstractValidator<Void, Object>
         {
             javaScriptSupport.require("core/validation");
 
-            writer.getElement().attributes(
-                    "data-validation", "true",
+            writer.attributes(
+                    DataConstants.VALIDATION_ATTRIBUTE, true,
                     "data-optionality", "required",
                     "data-required-message", buildMessage(formatter, field));
         }