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 2012/03/21 21:22:02 UTC
svn commit: r1303556 - in
/myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src:
main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/
test/java/org/apache/myfaces/extensions/cdi/jsf/test/impl/config/view/
Author: gpetracek
Date: Wed Mar 21 20:22:02 2012
New Revision: 1303556
URL: http://svn.apache.org/viewvc?rev=1303556&view=rev
Log:
EXTCDI-277 custom path with nested view-config
Modified:
myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/DefaultViewConfigExtractor.java
myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/ExtractedViewConfigDefinitionEntry.java
myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/test/java/org/apache/myfaces/extensions/cdi/jsf/test/impl/config/view/SimpleNestedViewConfig.java
myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/test/java/org/apache/myfaces/extensions/cdi/jsf/test/impl/config/view/ViewConfigTest.java
Modified: myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/DefaultViewConfigExtractor.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/DefaultViewConfigExtractor.java?rev=1303556&r1=1303555&r2=1303556&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/DefaultViewConfigExtractor.java (original)
+++ myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/DefaultViewConfigExtractor.java Wed Mar 21 20:22:02 2012
@@ -194,8 +194,7 @@ class DefaultViewConfigExtractor impleme
scannedViewConfig
.setSimpleClassNameToPathMapping(currentClass.getSimpleName(), currentBasePath);
}
-
- if (rootPath.equals(scannedViewConfig.getBasePath()))
+ else if (rootPath.equals(scannedViewConfig.getBasePath()))
{
scannedViewConfig.setBasePath(currentBasePath);
}
Modified: myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/ExtractedViewConfigDefinitionEntry.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/ExtractedViewConfigDefinitionEntry.java?rev=1303556&r1=1303555&r2=1303556&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/ExtractedViewConfigDefinitionEntry.java (original)
+++ myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/ExtractedViewConfigDefinitionEntry.java Wed Mar 21 20:22:02 2012
@@ -238,38 +238,35 @@ class ExtractedViewConfigDefinitionEntry
StringBuilder viewId = new StringBuilder(this.basePath);
if(this.pageName.equals(""))
{
+ String className = getNestedConfigAsPath();
+ className = createPageName(className);
+ viewId.append(className);
+ }
+ //nested classes with manually defined page name and shared basePath
+ else if(!this.simpleClassNameToPathMapping.isEmpty())
+ {
String className = this.viewDefinitionClass.getName();
- //MyClass$MyInnerClass will be converted to /MyClass/MyInnerClass
- if(className.contains("$") && ".".equals(this.basePath))
- {
- this.basePath = "";
- className = className.substring(className.lastIndexOf('.') + 1);
- className = convertToPathSyntax(className, this.simpleClassNameToPathMapping);
- }
- else if(className.contains("$"))
+ //custom base-name for a config (overrides inherited base-path)
+ if ("/".endsWith(this.basePath) && this.simpleClassNameToPathMapping.size() == 1)
{
- className = className.substring(className.lastIndexOf('$') + 1);
+ className = "/" + this.simpleClassNameToPathMapping.get(this.viewDefinitionClass.getSimpleName()) + "/";
}
else
{
className = className.substring(className.lastIndexOf('.') + 1);
+ className = convertToPathSyntax(className, this.simpleClassNameToPathMapping);
+ className = createPageName(className);
+ className = className.substring(0, className.lastIndexOf('/') + 1);
}
- className = createPageName(className);
+ className += this.pageName;
viewId.append(className);
}
- //nested classes with manually defined page name and shared basePath
- else if(!this.simpleClassNameToPathMapping.isEmpty())
+ //only a custom name for a nested config
+ else if(!this.pageName.equals("") && this.viewDefinitionClass.getName().contains("$"))
{
- String className = this.viewDefinitionClass.getName();
-
- this.basePath = "";
- className = className.substring(className.lastIndexOf('.') + 1);
- className = convertToPathSyntax(className, this.simpleClassNameToPathMapping);
- className = createPageName(className);
- className = className.substring(0, className.lastIndexOf('/') + 1);
- className += this.pageName;
- viewId.append(className);
+ String className = getNestedConfigAsPath();
+ viewId.append(className.substring(0, className.lastIndexOf("/") + 1)).append(this.pageName);
}
else
{
@@ -295,6 +292,27 @@ class ExtractedViewConfigDefinitionEntry
return result;
}
+ private String getNestedConfigAsPath()
+ {
+ String className = this.viewDefinitionClass.getName();
+
+ //MyClass$MyInnerClass will be converted to /MyClass/MyInnerClass
+ if(className.contains("$") && ".".equals(this.basePath))
+ {
+ className = className.substring(className.lastIndexOf('.') + 1);
+ className = convertToPathSyntax(className, this.simpleClassNameToPathMapping);
+ }
+ else if(className.contains("$"))
+ {
+ className = className.substring(className.lastIndexOf('$') + 1);
+ }
+ else
+ {
+ className = className.substring(className.lastIndexOf('.') + 1);
+ }
+ return className;
+ }
+
protected String createPageName(String className)
{
className = className.substring(0, 1).toLowerCase() + className.substring(1);
Modified: myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/test/java/org/apache/myfaces/extensions/cdi/jsf/test/impl/config/view/SimpleNestedViewConfig.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/test/java/org/apache/myfaces/extensions/cdi/jsf/test/impl/config/view/SimpleNestedViewConfig.java?rev=1303556&r1=1303555&r2=1303556&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/test/java/org/apache/myfaces/extensions/cdi/jsf/test/impl/config/view/SimpleNestedViewConfig.java (original)
+++ myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/test/java/org/apache/myfaces/extensions/cdi/jsf/test/impl/config/view/SimpleNestedViewConfig.java Wed Mar 21 20:22:02 2012
@@ -35,4 +35,31 @@ abstract class SimpleNestedViewConfig im
public class Page2 extends SimpleNestedViewConfig
{
}
+
+ public class SubFolder extends SimpleNestedViewConfig
+ {
+ @Page(name = "customPage3")
+ public class Page3 extends SimpleNestedViewConfig
+ {
+ }
+
+ @Page(basePath = "my", name = "customPage4")
+ public class Page4 extends SimpleNestedViewConfig
+ {
+ }
+ }
+
+ @Page(basePath = "subFolder") //overridden
+ public class SubFolder2 extends SimpleNestedViewConfig
+ {
+ @Page(basePath = "/", name = "customPage5")
+ public class Page5 extends SimpleNestedViewConfig
+ {
+ }
+
+ @Page(basePath = "my", name = "customPage6")
+ public class Page6 extends SimpleNestedViewConfig
+ {
+ }
+ }
}
\ No newline at end of file
Modified: myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/test/java/org/apache/myfaces/extensions/cdi/jsf/test/impl/config/view/ViewConfigTest.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/test/java/org/apache/myfaces/extensions/cdi/jsf/test/impl/config/view/ViewConfigTest.java?rev=1303556&r1=1303555&r2=1303556&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/test/java/org/apache/myfaces/extensions/cdi/jsf/test/impl/config/view/ViewConfigTest.java (original)
+++ myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/test/java/org/apache/myfaces/extensions/cdi/jsf/test/impl/config/view/ViewConfigTest.java Wed Mar 21 20:22:02 2012
@@ -77,10 +77,26 @@ public class ViewConfigTest
viewConfigExtension.addPageDefinition(SimpleNestedViewConfig.Page1.class);
viewConfigExtension.addPageDefinition(SimpleNestedViewConfig.Page2.class);
+ viewConfigExtension.addPageDefinition(SimpleNestedViewConfig.SubFolder.Page3.class);
+ viewConfigExtension.addPageDefinition(SimpleNestedViewConfig.SubFolder.Page4.class);
+
+ viewConfigExtension.addPageDefinition(SimpleNestedViewConfig.SubFolder2.Page5.class);
+ viewConfigExtension.addPageDefinition(SimpleNestedViewConfig.SubFolder2.Page6.class);
+
assertEquals(ViewConfigCache.getViewConfigDescriptor(SimpleNestedViewConfig.Page1.class).getViewId(),
"/simpleNestedViewConfig/page1.xhtml");
assertEquals(ViewConfigCache.getViewConfigDescriptor(SimpleNestedViewConfig.Page2.class).getViewId(),
"/simpleNestedViewConfig/page2.xhtml");
+
+ assertEquals(ViewConfigCache.getViewConfigDescriptor(SimpleNestedViewConfig.SubFolder.Page3.class).getViewId(),
+ "/simpleNestedViewConfig/subFolder/customPage3.xhtml");
+ assertEquals(ViewConfigCache.getViewConfigDescriptor(SimpleNestedViewConfig.SubFolder.Page4.class).getViewId(),
+ "/my/customPage4.xhtml");
+
+ assertEquals(ViewConfigCache.getViewConfigDescriptor(SimpleNestedViewConfig.SubFolder2.Page5.class).getViewId(),
+ "/customPage5.xhtml");
+ assertEquals(ViewConfigCache.getViewConfigDescriptor(SimpleNestedViewConfig.SubFolder2.Page6.class).getViewId(),
+ "/my/customPage6.xhtml");
}
@Test