Details
Description
Comp Suite will not run on MyFaces for the following reasons:
The work for http://jira.icefaces.org/browse/ICE-6118 is not complete. The ace directory still needs to be compiled against MyFaces due to the generated use of implementation specific MethodRule. This is done in ComponentHandlerArtifact.java:
//The MethodRule class is specific to the JSF implementation in use so we check to see
//which version, Mojarra or MyFaces is available, to determine which we should be importing.
try {
Class.forName("com.sun.faces.facelets.tag.MethodRule");
generatedComponentHandlerClass.append("import com.sun.faces.facelets.tag.MethodRule;\n\n");
System.out.println("Mojarra version of MethodRule found");
} catch (ClassNotFoundException e1) {
try {
Class.forName("org.apache.myfaces.view.facelets.tag.MethodRule");
generatedComponentHandlerClass.append("import org.apache.myfaces.view.facelets.tag.MethodRule;\n\n");
System.out.println("MyFaces version of MethodRule found");
} catch (ClassNotFoundException e2) {
System.out.println("cannot find a valid (Mojarra or MyFaces) MethodRule class " + e2);
}
}
Once you have compiled the ACE components against MyFaces, Comp Suite fails to load these resources:
2-Nov-2011 4:34:40 PM org.apache.myfaces.renderkit.html.HtmlScriptRenderer encodeEnd
WARNING: Resource referenced by resourceName icepush.js?rand=1900167016 not found in call to ResourceHandler.createResource. It will be silenty ignored.
2-Nov-2011 4:34:40 PM org.apache.myfaces.renderkit.html.HtmlScriptRenderer encodeEnd
WARNING: Resource referenced by resourceName bridge.js?rand=1900167016 not found in call to ResourceHandler.createResource. It will be silenty ignored.
unless you specify:
<context-param>
<param-name>org.icefaces.uniqueResourceURLs</param-name>
<param-value>false</param-value>
</context-param>
Looks like MyFaces doesn't like the ?rand= part of the resource. For some reason, this only seems to be a problem when running the ACE comp-suite. Running something like Auction with MyFaces, there are no warnings.
The work for http://jira.icefaces.org/browse/ICE-6118 is not complete. The ace directory still needs to be compiled against MyFaces due to the generated use of implementation specific MethodRule. This is done in ComponentHandlerArtifact.java:
//The MethodRule class is specific to the JSF implementation in use so we check to see
//which version, Mojarra or MyFaces is available, to determine which we should be importing.
try {
Class.forName("com.sun.faces.facelets.tag.MethodRule");
generatedComponentHandlerClass.append("import com.sun.faces.facelets.tag.MethodRule;\n\n");
System.out.println("Mojarra version of MethodRule found");
} catch (ClassNotFoundException e1) {
try {
Class.forName("org.apache.myfaces.view.facelets.tag.MethodRule");
generatedComponentHandlerClass.append("import org.apache.myfaces.view.facelets.tag.MethodRule;\n\n");
System.out.println("MyFaces version of MethodRule found");
} catch (ClassNotFoundException e2) {
System.out.println("cannot find a valid (Mojarra or MyFaces) MethodRule class " + e2);
}
}
Once you have compiled the ACE components against MyFaces, Comp Suite fails to load these resources:
2-Nov-2011 4:34:40 PM org.apache.myfaces.renderkit.html.HtmlScriptRenderer encodeEnd
WARNING: Resource referenced by resourceName icepush.js?rand=1900167016 not found in call to ResourceHandler.createResource. It will be silenty ignored.
2-Nov-2011 4:34:40 PM org.apache.myfaces.renderkit.html.HtmlScriptRenderer encodeEnd
WARNING: Resource referenced by resourceName bridge.js?rand=1900167016 not found in call to ResourceHandler.createResource. It will be silenty ignored.
unless you specify:
<context-param>
<param-name>org.icefaces.uniqueResourceURLs</param-name>
<param-value>false</param-value>
</context-param>
Looks like MyFaces doesn't like the ?rand= part of the resource. For some reason, this only seems to be a problem when running the ACE comp-suite. Running something like Auction with MyFaces, there are no warnings.
Linking to case that refers to fixing the ACE generation code so that it doesn't rely on com.sun implementation classes.