You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by gp...@apache.org on 2009/07/14 01:18:41 UTC

svn commit: r793744 - in /myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator: ./ crossval/ crossval/recorder/ crossval/storage/ crossval/storage/mapper/ ...

Author: gpetracek
Date: Mon Jul 13 23:18:41 2009
New Revision: 793744

URL: http://svn.apache.org/viewvc?rev=793744&view=rev
Log:
EXTVAL-51 refactored version with full backward compatibility

Added:
    myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/storage/DefaultProcessedInformationStorage.java
    myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/storage/DefaultProcessedInformationStorageManager.java
    myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/storage/ProcessedInformationStorage.java
    myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/storage/mapper/ProcessedInformationStorageNameMapper.java
Modified:
    myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/PropertyValidationModuleStartupListener.java
    myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/ProcessedInformationEntry.java
    myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/recorder/CrossValidationUserInputRecorder.java
    myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/ELCompareStrategy.java
    myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/LocalCompareStrategy.java
    myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/LocalPropertyChainCompareStrategy.java
    myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/util/CrossValidationUtils.java

Modified: myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/PropertyValidationModuleStartupListener.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/PropertyValidationModuleStartupListener.java?rev=793744&r1=793743&r2=793744&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/PropertyValidationModuleStartupListener.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/PropertyValidationModuleStartupListener.java Mon Jul 13 23:18:41 2009
@@ -40,7 +40,10 @@
 import org.apache.myfaces.extensions.validator.crossval.recorder.CrossValidationUserInputRecorder;
 import org.apache.myfaces.extensions.validator.crossval.CrossValidationStorage;
 import org.apache.myfaces.extensions.validator.crossval.storage.DefaultCrossValidationStorageManager;
+import org.apache.myfaces.extensions.validator.crossval.storage.DefaultProcessedInformationStorageManager;
+import org.apache.myfaces.extensions.validator.crossval.storage.ProcessedInformationStorage;
 import org.apache.myfaces.extensions.validator.crossval.storage.mapper.CrossValidationStorageNameMapper;
+import org.apache.myfaces.extensions.validator.crossval.storage.mapper.ProcessedInformationStorageNameMapper;
 
 /**
  * @author Gerhard Petracek
@@ -118,8 +121,15 @@
                 .getFactoryFinder()
                 .getFactory(FactoryNames.STORAGE_MANAGER_FACTORY, StorageManagerHolder.class));
 
+        //processed-information
+        DefaultProcessedInformationStorageManager processedInfoStorageManager =
+                new DefaultProcessedInformationStorageManager();
+        processedInfoStorageManager.register(new ProcessedInformationStorageNameMapper());
+        storageManagerHolder.setStorageManager(ProcessedInformationStorage.class, processedInfoStorageManager, false);
+
         //cross-validation
-        DefaultCrossValidationStorageManager crossValidationStorageManager = new DefaultCrossValidationStorageManager();
+        DefaultCrossValidationStorageManager crossValidationStorageManager =
+                new DefaultCrossValidationStorageManager();
         crossValidationStorageManager.register(new CrossValidationStorageNameMapper());
         storageManagerHolder.setStorageManager(CrossValidationStorage.class, crossValidationStorageManager, false);
 

Modified: myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/ProcessedInformationEntry.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/ProcessedInformationEntry.java?rev=793744&r1=793743&r2=793744&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/ProcessedInformationEntry.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/ProcessedInformationEntry.java Mon Jul 13 23:18:41 2009
@@ -25,6 +25,9 @@
 import java.util.List;
 
 /**
+ * normally it should be in the storage package and the name should be ProcessedInformationStorageEntry
+ * due to backward compatibility it isn't the case
+ * <p/>
  * In order to build up a mapping which is used for cross-validation.
  *
  * @author Gerhard Petracek

Modified: myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/recorder/CrossValidationUserInputRecorder.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/recorder/CrossValidationUserInputRecorder.java?rev=793744&r1=793743&r2=793744&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/recorder/CrossValidationUserInputRecorder.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/recorder/CrossValidationUserInputRecorder.java Mon Jul 13 23:18:41 2009
@@ -21,6 +21,7 @@
 import org.apache.myfaces.extensions.validator.core.recorder.ProcessedInformationRecorder;
 import org.apache.myfaces.extensions.validator.core.property.PropertyDetails;
 import org.apache.myfaces.extensions.validator.crossval.ProcessedInformationEntry;
+import org.apache.myfaces.extensions.validator.crossval.storage.ProcessedInformationStorage;
 import org.apache.myfaces.extensions.validator.util.CrossValidationUtils;
 import org.apache.myfaces.extensions.validator.util.ExtValUtils;
 import org.apache.myfaces.extensions.validator.internal.UsageInformation;
@@ -29,7 +30,6 @@
 import javax.faces.component.UIComponent;
 import javax.faces.component.EditableValueHolder;
 import javax.faces.context.FacesContext;
-import java.util.Map;
 import java.util.List;
 import java.util.ArrayList;
 
@@ -48,8 +48,8 @@
         }
 
         //to support local cross-validation (within the same entity)
-        Map<String, ProcessedInformationEntry> keyToConvertedValueMapping = CrossValidationUtils
-            .getOrInitKeyToConvertedValueMapping();
+        ProcessedInformationStorage processedInformationStorage = CrossValidationUtils
+            .getOrInitProcessedInformationStorage();
 
         ProcessedInformationEntry entry;
 
@@ -70,21 +70,21 @@
         String key = propertyDetails.getKey();
 
         //for local cross-validation
-        if (keyToConvertedValueMapping.containsKey(key) &&
-            keyToConvertedValueMapping.get(key).getBean() != null &&
-            !keyToConvertedValueMapping.get(key).getBean().equals(entry.getBean()))
+        if (processedInformationStorage.containsEntry(key) &&
+            processedInformationStorage.getEntry(key).getBean() != null &&
+            !processedInformationStorage.getEntry(key).getBean().equals(entry.getBean()))
         {
             //for the validation within a complex component e.g. a table
             //don't override existing expression (style: #{entry.property}) - make a special mapping
 
             List<ProcessedInformationEntry> furtherEntries =
-                keyToConvertedValueMapping.get(key).getFurtherEntries();
+                processedInformationStorage.getEntry(key).getFurtherEntries();
 
             if (furtherEntries == null)
             {
                 furtherEntries = new ArrayList<ProcessedInformationEntry>();
 
-                keyToConvertedValueMapping.get(key).setFurtherEntries(furtherEntries);
+                processedInformationStorage.getEntry(key).setFurtherEntries(furtherEntries);
             }
 
             furtherEntries.add(entry);
@@ -92,7 +92,7 @@
         else
         {
             //for normal validation
-            keyToConvertedValueMapping.put(key, entry);
+            processedInformationStorage.setEntry(key, entry);
         }
     }
 }

Added: myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/storage/DefaultProcessedInformationStorage.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/storage/DefaultProcessedInformationStorage.java?rev=793744&view=auto
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/storage/DefaultProcessedInformationStorage.java (added)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/storage/DefaultProcessedInformationStorage.java Mon Jul 13 23:18:41 2009
@@ -0,0 +1,52 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.myfaces.extensions.validator.crossval.storage;
+
+import org.apache.myfaces.extensions.validator.internal.UsageInformation;
+import org.apache.myfaces.extensions.validator.internal.UsageCategory;
+import org.apache.myfaces.extensions.validator.crossval.ProcessedInformationEntry;
+
+import java.util.Map;
+import java.util.HashMap;
+
+/**
+ * @author Gerhard Petracek
+ * @since x.x.3
+ */
+@UsageInformation(UsageCategory.INTERNAL)
+public class DefaultProcessedInformationStorage implements ProcessedInformationStorage
+{
+    private Map<String, ProcessedInformationEntry> processedInformationMap =
+        new HashMap<String, ProcessedInformationEntry>();
+
+    public void setEntry(String key, ProcessedInformationEntry entry)
+    {
+        this.processedInformationMap.put(key, entry);
+    }
+
+    public boolean containsEntry(String key)
+    {
+        return processedInformationMap.containsKey(key);
+    }
+
+    public ProcessedInformationEntry getEntry(String key)
+    {
+        return processedInformationMap.get(key);
+    }
+}

Added: myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/storage/DefaultProcessedInformationStorageManager.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/storage/DefaultProcessedInformationStorageManager.java?rev=793744&view=auto
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/storage/DefaultProcessedInformationStorageManager.java (added)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/storage/DefaultProcessedInformationStorageManager.java Mon Jul 13 23:18:41 2009
@@ -0,0 +1,42 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.myfaces.extensions.validator.crossval.storage;
+
+import org.apache.myfaces.extensions.validator.internal.UsageInformation;
+import static org.apache.myfaces.extensions.validator.internal.UsageCategory.INTERNAL;
+import org.apache.myfaces.extensions.validator.core.storage.AbstractRequestScopeAwareStorageManager;
+import org.apache.myfaces.extensions.validator.crossval.CrossValidationStorage;
+import org.apache.myfaces.extensions.validator.util.CrossValidationUtils;
+
+/**
+ * default storage-manager for processed information entries
+ *
+ * @author Gerhard Petracek
+ * @since x.x.3
+ */
+@UsageInformation(INTERNAL)
+public class DefaultProcessedInformationStorageManager
+    extends AbstractRequestScopeAwareStorageManager<CrossValidationStorage>
+{
+    public String getStorageManagerKey()
+    {
+        //for better backward compatibility
+        return CrossValidationUtils.class.getName();
+    }
+}

Added: myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/storage/ProcessedInformationStorage.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/storage/ProcessedInformationStorage.java?rev=793744&view=auto
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/storage/ProcessedInformationStorage.java (added)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/storage/ProcessedInformationStorage.java Mon Jul 13 23:18:41 2009
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.myfaces.extensions.validator.crossval.storage;
+
+import org.apache.myfaces.extensions.validator.internal.UsageInformation;
+import static org.apache.myfaces.extensions.validator.internal.UsageCategory.API;
+import org.apache.myfaces.extensions.validator.crossval.ProcessedInformationEntry;
+
+/**
+ * @author Gerhard Petracek
+ * @since x.x.3
+ */
+@UsageInformation(API)
+public interface ProcessedInformationStorage
+{
+    void setEntry(String key, ProcessedInformationEntry entry);
+
+    boolean containsEntry(String key);
+
+    ProcessedInformationEntry getEntry(String key);
+}

Added: myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/storage/mapper/ProcessedInformationStorageNameMapper.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/storage/mapper/ProcessedInformationStorageNameMapper.java?rev=793744&view=auto
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/storage/mapper/ProcessedInformationStorageNameMapper.java (added)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/storage/mapper/ProcessedInformationStorageNameMapper.java Mon Jul 13 23:18:41 2009
@@ -0,0 +1,39 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.myfaces.extensions.validator.crossval.storage.mapper;
+
+import org.apache.myfaces.extensions.validator.internal.UsageInformation;
+import static org.apache.myfaces.extensions.validator.internal.UsageCategory.INTERNAL;
+import org.apache.myfaces.extensions.validator.core.mapper.NameMapper;
+import org.apache.myfaces.extensions.validator.crossval.storage.ProcessedInformationStorage;
+import org.apache.myfaces.extensions.validator.crossval.storage.DefaultProcessedInformationStorage;
+
+/**
+ * @author Gerhard Petracek
+ * @since x.x.3
+ */
+@UsageInformation(INTERNAL)
+public class ProcessedInformationStorageNameMapper implements NameMapper<String>
+{
+    public String createName(String key)
+    {
+        return (ProcessedInformationStorage.class.getName().equals(key)) ?
+                DefaultProcessedInformationStorage.class.getName() : null;
+    }
+}

Modified: myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/ELCompareStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/ELCompareStrategy.java?rev=793744&r1=793743&r2=793744&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/ELCompareStrategy.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/ELCompareStrategy.java Mon Jul 13 23:18:41 2009
@@ -21,6 +21,7 @@
 import org.apache.myfaces.extensions.validator.crossval.ProcessedInformationEntry;
 import org.apache.myfaces.extensions.validator.crossval.CrossValidationStorage;
 import org.apache.myfaces.extensions.validator.crossval.CrossValidationStorageEntry;
+import org.apache.myfaces.extensions.validator.crossval.storage.ProcessedInformationStorage;
 import org.apache.myfaces.extensions.validator.util.ExtValUtils;
 import org.apache.myfaces.extensions.validator.util.CrossValidationUtils;
 import org.apache.myfaces.extensions.validator.internal.ToDo;
@@ -32,7 +33,6 @@
 import org.apache.commons.logging.LogFactory;
 
 import javax.faces.context.FacesContext;
-import java.util.Map;
 
 /**
  * referencing validation targets - possible formats:
@@ -89,11 +89,11 @@
             CrossValidationStorageEntry crossValidationStorageEntry,
             ValueBindingExpression validationTarget)
     {
-        Map<String, ProcessedInformationEntry> keyConvertedValueMapping =
-                CrossValidationUtils.getOrInitKeyToConvertedValueMapping();
+        ProcessedInformationStorage processedInformationStorage =
+                CrossValidationUtils.getOrInitProcessedInformationStorage();
 
         return CrossValidationUtils.resolveValidationTargetEntry(
-                keyConvertedValueMapping,
+                processedInformationStorage,
                 CrossValidationUtils.convertValueBindingExpressionToProcessedInformationKey(validationTarget),
                 crossValidationStorageEntry);
     }

Modified: myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/LocalCompareStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/LocalCompareStrategy.java?rev=793744&r1=793743&r2=793744&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/LocalCompareStrategy.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/LocalCompareStrategy.java Mon Jul 13 23:18:41 2009
@@ -21,6 +21,7 @@
 import org.apache.myfaces.extensions.validator.crossval.ProcessedInformationEntry;
 import org.apache.myfaces.extensions.validator.crossval.CrossValidationStorage;
 import org.apache.myfaces.extensions.validator.crossval.CrossValidationStorageEntry;
+import org.apache.myfaces.extensions.validator.crossval.storage.ProcessedInformationStorage;
 import org.apache.myfaces.extensions.validator.internal.UsageInformation;
 import org.apache.myfaces.extensions.validator.internal.UsageCategory;
 import org.apache.myfaces.extensions.validator.core.property.PropertyDetails;
@@ -31,7 +32,6 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
-import java.util.Map;
 import java.lang.reflect.Method;
 
 /**
@@ -69,11 +69,11 @@
             String targetKey,
             AbstractCompareStrategy compareStrategy)
     {
-        Map<String, ProcessedInformationEntry> keyConvertedValueMapping =
-                CrossValidationUtils.getOrInitKeyToConvertedValueMapping();
+        ProcessedInformationStorage processedInformationStorage =
+                CrossValidationUtils.getOrInitProcessedInformationStorage();
 
         boolean isModelAwareValidation =
-                isModelAwareCrossValidation(crossValidationStorageEntry, keyConvertedValueMapping, targetKey);
+                isModelAwareCrossValidation(crossValidationStorageEntry, processedInformationStorage, targetKey);
 
         String targetProperty = targetKey;
 
@@ -81,7 +81,7 @@
         targetKey = sourceKey.substring(0, sourceKey.lastIndexOf(".") + 1) + targetKey;
 
         ProcessedInformationEntry validationTargetEntry = CrossValidationUtils.resolveValidationTargetEntry(
-                keyConvertedValueMapping, targetKey, crossValidationStorageEntry);
+                processedInformationStorage, targetKey, crossValidationStorageEntry);
 
         if (validationTargetEntry != null && validationTargetEntry.getComponent() != null && !isModelAwareValidation)
         {
@@ -135,12 +135,12 @@
 
     private boolean isModelAwareCrossValidation(
             CrossValidationStorageEntry crossValidationStorageEntry,
-            Map<String, ProcessedInformationEntry> keyConvertedValueMapping,
+            ProcessedInformationStorage keyConvertedValueMapping,
             String targetKey)
     {
         String newKey = createTargetKey(crossValidationStorageEntry, targetKey);
 
-        return !keyConvertedValueMapping.containsKey(newKey);
+        return !keyConvertedValueMapping.containsEntry(newKey);
 
     }
 

Modified: myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/LocalPropertyChainCompareStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/LocalPropertyChainCompareStrategy.java?rev=793744&r1=793743&r2=793744&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/LocalPropertyChainCompareStrategy.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/LocalPropertyChainCompareStrategy.java Mon Jul 13 23:18:41 2009
@@ -21,6 +21,7 @@
 import org.apache.myfaces.extensions.validator.crossval.CrossValidationStorage;
 import org.apache.myfaces.extensions.validator.crossval.CrossValidationStorageEntry;
 import org.apache.myfaces.extensions.validator.crossval.ProcessedInformationEntry;
+import org.apache.myfaces.extensions.validator.crossval.storage.ProcessedInformationStorage;
 import org.apache.myfaces.extensions.validator.internal.UsageInformation;
 import org.apache.myfaces.extensions.validator.internal.UsageCategory;
 import org.apache.myfaces.extensions.validator.util.CrossValidationUtils;
@@ -29,7 +30,6 @@
 import org.apache.myfaces.extensions.validator.core.property.PropertyInformationKeys;
 
 import java.lang.annotation.Annotation;
-import java.util.Map;
 
 /**
  * "[local_property.property1.property2]"
@@ -65,14 +65,14 @@
                                            String targetKey,
                                            AbstractCompareStrategy compareStrategy)
     {
-        Map<String, ProcessedInformationEntry> keyConvertedValueMapping =
-                CrossValidationUtils.getOrInitKeyToConvertedValueMapping();
+        ProcessedInformationStorage processedInformationStorage =
+                CrossValidationUtils.getOrInitProcessedInformationStorage();
 
         String newKey = createTargetKey(crossValidationStorageEntry, targetKey);
 
-        if (keyConvertedValueMapping.containsKey(newKey))
+        if (processedInformationStorage.containsEntry(newKey))
         {
-            ProcessedInformationEntry validationTargetEntry = keyConvertedValueMapping.get(newKey);
+            ProcessedInformationEntry validationTargetEntry = processedInformationStorage.getEntry(newKey);
 
             processCrossComponentValidation(compareStrategy, crossValidationStorageEntry, validationTargetEntry);
         }

Modified: myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/util/CrossValidationUtils.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/util/CrossValidationUtils.java?rev=793744&r1=793743&r2=793744&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/util/CrossValidationUtils.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/util/CrossValidationUtils.java Mon Jul 13 23:18:41 2009
@@ -21,6 +21,7 @@
 import org.apache.myfaces.extensions.validator.crossval.CrossValidationStorage;
 import org.apache.myfaces.extensions.validator.crossval.ProcessedInformationEntry;
 import org.apache.myfaces.extensions.validator.crossval.CrossValidationStorageEntry;
+import org.apache.myfaces.extensions.validator.crossval.storage.ProcessedInformationStorage;
 import org.apache.myfaces.extensions.validator.internal.UsageInformation;
 import org.apache.myfaces.extensions.validator.internal.UsageCategory;
 import org.apache.myfaces.extensions.validator.internal.ToDo;
@@ -29,10 +30,6 @@
 import org.apache.myfaces.extensions.validator.core.property.PropertyInformationKeys;
 import org.apache.myfaces.extensions.validator.core.el.ValueBindingExpression;
 
-import javax.faces.context.FacesContext;
-import java.util.Map;
-import java.util.HashMap;
-
 /**
  * @author Gerhard Petracek
  * @since 1.x.1
@@ -50,32 +47,23 @@
         ExtValUtils.resetStorage(CrossValidationStorage.class, CrossValidationStorage.class.getName());
     }
 
-    public static final String KEY_TO_CONVERTED_VALUE_MAPPING_KEY = CrossValidationUtils.class.getName();
-
-    public static Map<String, ProcessedInformationEntry> getOrInitKeyToConvertedValueMapping()
+    public static ProcessedInformationStorage getOrInitProcessedInformationStorage()
     {
-        Map requestMap = FacesContext.getCurrentInstance().getExternalContext().getRequestMap();
-
-        if (!requestMap.containsKey(KEY_TO_CONVERTED_VALUE_MAPPING_KEY))
-        {
-            resetKeyToConvertedValueMapping();
-        }
-
-        return (Map<String, ProcessedInformationEntry>) requestMap.get(KEY_TO_CONVERTED_VALUE_MAPPING_KEY);
+        return ExtValUtils.getOrInitStorage(
+                ProcessedInformationStorage.class, ProcessedInformationStorage.class.getName());
     }
 
     public static void resetKeyToConvertedValueMapping()
     {
-        FacesContext.getCurrentInstance().getExternalContext().getRequestMap()
-            .put(KEY_TO_CONVERTED_VALUE_MAPPING_KEY, new HashMap<String, ProcessedInformationEntry>());
+        ExtValUtils.resetStorage(ProcessedInformationStorage.class, ProcessedInformationStorage.class.getName());
     }
 
     public static ProcessedInformationEntry resolveValidationTargetEntry(
-            Map<String, ProcessedInformationEntry> keyToConvertedValueMapping,
+            ProcessedInformationStorage processedInformationStorage,
             String targetKey, CrossValidationStorageEntry crossValidationStorageEntry)
     {
         ProcessedInformationEntry processedInformationEntry =
-            keyToConvertedValueMapping.get(targetKey);
+            processedInformationStorage.getEntry(targetKey);
 
         //value not submitted at this request - use model value (validation against the model)
         if(processedInformationEntry == null)