JBossWeb SVN: r712 - trunk/bin.
by jbossweb-commits@lists.jboss.org
Author: jfrederic.clere(a)jboss.com
Date: 2008-07-14 04:02:38 -0400 (Mon, 14 Jul 2008)
New Revision: 712
Modified:
trunk/bin/catalina.bat
Log:
typo (We don't deliver this file anyway!)
Modified: trunk/bin/catalina.bat
===================================================================
--- trunk/bin/catalina.bat 2008-07-11 14:21:10 UTC (rev 711)
+++ trunk/bin/catalina.bat 2008-07-14 08:02:38 UTC (rev 712)
@@ -216,14 +216,14 @@
%_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION%
goto end
:doSecurity
-%_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Djava.security.manager -Djava.security.policy=="%SECURITY_POLICY_FILE%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION%
+%_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Djava.security.manager -Djava.security.policy="%SECURITY_POLICY_FILE%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION%
goto end
:doJpda
if not "%SECURITY_POLICY_FILE%" == "" goto doSecurityJpda
%_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %JPDA_OPTS% %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION%
goto end
:doSecurityJpda
-%_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %JPDA_OPTS% %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Djava.security.manager -Djava.security.policy=="%SECURITY_POLICY_FILE%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION%
+%_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %JPDA_OPTS% %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Djava.security.manager -Djava.security.policy="%SECURITY_POLICY_FILE%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION%
goto end
:end
16 years, 5 months
JBossWeb SVN: r711 - in trunk: res and 2 other directories.
by jbossweb-commits@lists.jboss.org
Author: remy.maucherat(a)jboss.com
Date: 2008-07-11 10:21:10 -0400 (Fri, 11 Jul 2008)
New Revision: 711
Modified:
trunk/java/org/apache/catalina/startup/HostConfig.java
trunk/res/confinstall/tomcat-users_1.xml
trunk/res/jboss-web.nsi
trunk/webapps/docs/changelog.xml
Log:
- Two minor fixes (nested docBase and i18n in installer).
Modified: trunk/java/org/apache/catalina/startup/HostConfig.java
===================================================================
--- trunk/java/org/apache/catalina/startup/HostConfig.java 2008-07-11 14:20:12 UTC (rev 710)
+++ trunk/java/org/apache/catalina/startup/HostConfig.java 2008-07-11 14:21:10 UTC (rev 711)
@@ -607,7 +607,7 @@
docBase = new File(appBase(), context.getDocBase());
}
// If external docBase, register .xml as redeploy first
- if (!docBase.getCanonicalPath().startsWith(appBase().getAbsolutePath())) {
+ if (!docBase.getCanonicalPath().startsWith(appBase().getAbsolutePath() + File.separator)) {
isExternal = true;
deployedApp.redeployResources.put
(contextXml.getAbsolutePath(), new Long(contextXml.lastModified()));
Modified: trunk/res/confinstall/tomcat-users_1.xml
===================================================================
--- trunk/res/confinstall/tomcat-users_1.xml 2008-07-11 14:20:12 UTC (rev 710)
+++ trunk/res/confinstall/tomcat-users_1.xml 2008-07-11 14:21:10 UTC (rev 711)
@@ -1,2 +1 @@
-<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
Modified: trunk/res/jboss-web.nsi
===================================================================
--- trunk/res/jboss-web.nsi 2008-07-11 14:20:12 UTC (rev 710)
+++ trunk/res/jboss-web.nsi 2008-07-11 14:21:10 UTC (rev 711)
@@ -517,6 +517,10 @@
Delete "$INSTDIR\conf\tomcat-users.xml"
FileOpen $R9 "$INSTDIR\conf\tomcat-users.xml" w
+ ; File will be written using current windows codepage
+ System::Call 'Kernel32::GetACP() i .r18'
+ FileWrite $R9 "<?xml version='1.0' encoding='cp$R8'?>$\r$\n"
+
Push "$TEMP\confinstall\tomcat-users_1.xml"
Call copyFile
FileWrite $R9 $R5
Modified: trunk/webapps/docs/changelog.xml
===================================================================
--- trunk/webapps/docs/changelog.xml 2008-07-11 14:20:12 UTC (rev 710)
+++ trunk/webapps/docs/changelog.xml 2008-07-11 14:21:10 UTC (rev 711)
@@ -17,13 +17,38 @@
<body>
<section name="JBoss Web 2.1.1.CR5 (remm)">
+ <subsection name="General">
+ <changelog>
+ <fix>
+ <bug>45332</bug>: Don't assume UTF-8 and use the correct encoding when generating
+ tomcat-users.xml from the Windows installer. (markt)
+ </fix>
+ </changelog>
+ </subsection>
<subsection name="Catalina">
<changelog>
<fix>
<jboss-jira>JBAS-4965</jboss-jira>: Ignore exploded JARs in extension validator to avoid classcast. (remm)
</fix>
+ <fix>
+ <bug>45285</bug>: Look for annotations up the class hierarchy. (markt)
+ </fix>
+ <fix>
+ Concurrency issues on ClusterListener.status with multiple engines. (jfclere)
+ </fix>
+ <fix>
+ <bug>42678</bug>: Only ignore docBase it it really is a subdir of appBase. (markt)
+ </fix>
</changelog>
</subsection>
+ <subsection name="Jasper">
+ <changelog>
+ <fix>
+ <bug>42565</bug>: EL ternary expression without space before colon now works.
+ Patch provided by Lucas Galfaso. (markt)
+ </fix>
+ </changelog>
+ </subsection>
</section>
<section name="JBoss Web 2.1.1.CR4 (remm)">
16 years, 5 months
JBossWeb SVN: r710 - trunk/java/org/apache/el/parser.
by jbossweb-commits@lists.jboss.org
Author: remy.maucherat(a)jboss.com
Date: 2008-07-11 10:20:12 -0400 (Fri, 11 Jul 2008)
New Revision: 710
Modified:
trunk/java/org/apache/el/parser/ELParser.java
trunk/java/org/apache/el/parser/ELParser.jjt
trunk/java/org/apache/el/parser/ELParserConstants.java
trunk/java/org/apache/el/parser/ELParserTokenManager.java
Log:
- EL parsing update for some funky expressions.
Modified: trunk/java/org/apache/el/parser/ELParser.java
===================================================================
--- trunk/java/org/apache/el/parser/ELParser.java 2008-07-11 14:19:48 UTC (rev 709)
+++ trunk/java/org/apache/el/parser/ELParser.java 2008-07-11 14:20:12 UTC (rev 710)
@@ -963,7 +963,7 @@
case NULL:
case LPAREN:
case IDENTIFIER:
- case NAMESPACE:
+ case FUNCTION_CALL:
Value();
break;
default:
@@ -1033,7 +1033,7 @@
break;
case LPAREN:
case IDENTIFIER:
- case NAMESPACE:
+ case FUNCTION_CALL:
NonLiteral();
break;
default:
@@ -1176,26 +1176,10 @@
/*@bgen(jjtree) Function */
AstFunction jjtn000 = new AstFunction(JJTFUNCTION);
boolean jjtc000 = true;
- jjtree.openNodeScope(jjtn000);Token t0 = null;
- Token t1 = null;
+ jjtree.openNodeScope(jjtn000);Token tx = null;
try {
+ tx = jj_consume_token(FUNCTION_CALL);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
- case NAMESPACE:
- t0 = jj_consume_token(NAMESPACE);
- break;
- default:
- jj_la1[30] = jj_gen;
- ;
- }
- t1 = jj_consume_token(IDENTIFIER);
- if (t0 != null) {
- jjtn000.setPrefix(t0.image.substring(0, t0.image.length() - 1));
- jjtn000.setLocalName(t1.image);
- } else {
- jjtn000.setLocalName(t1.image);
- }
- jj_consume_token(LPAREN);
- switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case INTEGER_LITERAL:
case FLOATING_POINT_LITERAL:
case STRING_LITERAL:
@@ -1208,7 +1192,7 @@
case EMPTY:
case MINUS:
case IDENTIFIER:
- case NAMESPACE:
+ case FUNCTION_CALL:
Expression();
label_10:
while (true) {
@@ -1217,7 +1201,7 @@
;
break;
default:
- jj_la1[31] = jj_gen;
+ jj_la1[30] = jj_gen;
break label_10;
}
jj_consume_token(COMMA);
@@ -1225,10 +1209,19 @@
}
break;
default:
- jj_la1[32] = jj_gen;
+ jj_la1[31] = jj_gen;
;
}
jj_consume_token(RPAREN);
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtc000 = false;
+ int split = tx.image.indexOf(":");
+ if (split!=-1) {
+ jjtn000.setPrefix(tx.image.substring(0, split));
+ jjtn000.setLocalName(tx.image.substring(split + 1, tx.image.length() - 1));
+ } else {
+ jjtn000.setLocalName(tx.image.substring(0, tx.image.length() - 1));
+ }
} catch (Throwable jjte000) {
if (jjtc000) {
jjtree.clearNodeScope(jjtn000);
@@ -1273,7 +1266,7 @@
Null();
break;
default:
- jj_la1[33] = jj_gen;
+ jj_la1[32] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -1310,7 +1303,7 @@
}
break;
default:
- jj_la1[34] = jj_gen;
+ jj_la1[33] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -1405,34 +1398,61 @@
}
final private boolean jj_3R_11() {
+ if (jj_scan_token(FUNCTION_CALL)) return true;
Token xsp;
xsp = jj_scanpos;
- if (jj_scan_token(54)) jj_scanpos = xsp;
- if (jj_scan_token(IDENTIFIER)) return true;
- if (jj_scan_token(LPAREN)) return true;
- xsp = jj_scanpos;
if (jj_3R_12()) jj_scanpos = xsp;
if (jj_scan_token(RPAREN)) return true;
return false;
}
- final private boolean jj_3R_20() {
- if (jj_3R_21()) return true;
+ final private boolean jj_3R_28() {
+ if (jj_3R_34()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_35()) { jj_scanpos = xsp; break; }
+ }
return false;
}
- final private boolean jj_3R_44() {
+ final private boolean jj_3R_37() {
+ if (jj_scan_token(MINUS)) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_29() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_36()) {
+ jj_scanpos = xsp;
+ if (jj_3R_37()) return true;
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_36() {
+ if (jj_scan_token(PLUS)) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_69() {
if (jj_scan_token(IDENTIFIER)) return true;
return false;
}
- final private boolean jj_3R_19() {
- if (jj_3R_20()) return true;
+ final private boolean jj_3R_61() {
+ if (jj_3R_69()) return true;
return false;
}
- final private boolean jj_3R_38() {
- if (jj_3R_44()) return true;
+ final private boolean jj_3R_24() {
+ if (jj_3R_28()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_29()) { jj_scanpos = xsp; break; }
+ }
return false;
}
@@ -1441,187 +1461,377 @@
return false;
}
- final private boolean jj_3R_31() {
+ final private boolean jj_3R_33() {
Token xsp;
xsp = jj_scanpos;
- if (jj_3R_37()) {
+ if (jj_scan_token(29)) {
jj_scanpos = xsp;
+ if (jj_scan_token(30)) return true;
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_60() {
+ if (jj_scan_token(LPAREN)) return true;
+ if (jj_3R_13()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_52() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_60()) {
+ jj_scanpos = xsp;
if (jj_3_1()) {
jj_scanpos = xsp;
- if (jj_3R_38()) return true;
+ if (jj_3R_61()) return true;
}
}
return false;
}
- final private boolean jj_3R_37() {
- if (jj_scan_token(LPAREN)) return true;
+ final private boolean jj_3R_32() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_scan_token(31)) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(32)) return true;
+ }
return false;
}
- final private boolean jj_3R_43() {
+ final private boolean jj_3R_31() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_scan_token(25)) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(26)) return true;
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_68() {
if (jj_scan_token(NULL)) return true;
return false;
}
- final private boolean jj_3R_42() {
+ final private boolean jj_3R_25() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_30()) {
+ jj_scanpos = xsp;
+ if (jj_3R_31()) {
+ jj_scanpos = xsp;
+ if (jj_3R_32()) {
+ jj_scanpos = xsp;
+ if (jj_3R_33()) return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_30() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_scan_token(27)) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(28)) return true;
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_63() {
+ if (jj_scan_token(LBRACK)) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_67() {
if (jj_scan_token(STRING_LITERAL)) return true;
return false;
}
- final private boolean jj_3R_18() {
- if (jj_3R_19()) return true;
+ final private boolean jj_3R_54() {
+ if (jj_3R_63()) return true;
return false;
}
- final private boolean jj_3R_41() {
+ final private boolean jj_3R_22() {
+ if (jj_3R_24()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_25()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_27() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_scan_token(35)) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(36)) return true;
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_62() {
+ if (jj_scan_token(DOT)) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_26() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_scan_token(33)) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(34)) return true;
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_23() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_26()) {
+ jj_scanpos = xsp;
+ if (jj_3R_27()) return true;
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_66() {
if (jj_scan_token(INTEGER_LITERAL)) return true;
return false;
}
- final private boolean jj_3R_17() {
- if (jj_3R_18()) return true;
+ final private boolean jj_3R_21() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_scan_token(39)) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(40)) return true;
+ }
return false;
}
- final private boolean jj_3R_40() {
+ final private boolean jj_3R_53() {
+ if (jj_3R_62()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_50() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_53()) {
+ jj_scanpos = xsp;
+ if (jj_3R_54()) return true;
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_20() {
+ if (jj_3R_22()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_23()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_47() {
+ if (jj_3R_50()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_65() {
if (jj_scan_token(FLOATING_POINT_LITERAL)) return true;
return false;
}
- final private boolean jj_3R_29() {
- if (jj_3R_31()) return true;
+ final private boolean jj_3R_49() {
+ if (jj_3R_52()) return true;
return false;
}
- final private boolean jj_3R_46() {
+ final private boolean jj_3R_14() {
+ if (jj_scan_token(COMMA)) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_71() {
if (jj_scan_token(FALSE)) return true;
return false;
}
- final private boolean jj_3R_16() {
- if (jj_3R_17()) return true;
+ final private boolean jj_3R_48() {
+ if (jj_3R_51()) return true;
return false;
}
- final private boolean jj_3R_27() {
+ final private boolean jj_3R_46() {
Token xsp;
xsp = jj_scanpos;
- if (jj_3R_28()) {
+ if (jj_3R_48()) {
jj_scanpos = xsp;
- if (jj_3R_29()) return true;
+ if (jj_3R_49()) return true;
}
return false;
}
- final private boolean jj_3R_28() {
- if (jj_3R_30()) return true;
+ final private boolean jj_3R_18() {
+ if (jj_3R_20()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_21()) { jj_scanpos = xsp; break; }
+ }
return false;
}
- final private boolean jj_3R_45() {
+ final private boolean jj_3R_19() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_scan_token(41)) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(42)) return true;
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_70() {
if (jj_scan_token(TRUE)) return true;
return false;
}
- final private boolean jj_3R_39() {
+ final private boolean jj_3R_64() {
Token xsp;
xsp = jj_scanpos;
- if (jj_3R_45()) {
+ if (jj_3R_70()) {
jj_scanpos = xsp;
+ if (jj_3R_71()) return true;
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_45() {
if (jj_3R_46()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_47()) { jj_scanpos = xsp; break; }
}
return false;
}
- final private boolean jj_3R_15() {
- if (jj_3R_16()) return true;
+ final private boolean jj_3R_16() {
+ if (jj_3R_18()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_19()) { jj_scanpos = xsp; break; }
+ }
return false;
}
- final private boolean jj_3R_26() {
- if (jj_3R_27()) return true;
+ final private boolean jj_3R_41() {
+ if (jj_3R_45()) return true;
return false;
}
- final private boolean jj_3R_25() {
- if (jj_3R_26()) return true;
+ final private boolean jj_3R_59() {
+ if (jj_3R_68()) return true;
return false;
}
- final private boolean jj_3R_36() {
- if (jj_3R_43()) return true;
+ final private boolean jj_3R_58() {
+ if (jj_3R_67()) return true;
return false;
}
- final private boolean jj_3R_35() {
- if (jj_3R_42()) return true;
+ final private boolean jj_3R_17() {
+ if (jj_scan_token(QUESTIONMARK)) return true;
return false;
}
- final private boolean jj_3R_24() {
+ final private boolean jj_3R_40() {
if (jj_scan_token(EMPTY)) return true;
+ if (jj_3R_34()) return true;
return false;
}
- final private boolean jj_3R_34() {
- if (jj_3R_41()) return true;
+ final private boolean jj_3R_57() {
+ if (jj_3R_66()) return true;
return false;
}
- final private boolean jj_3R_33() {
- if (jj_3R_40()) return true;
+ final private boolean jj_3R_12() {
+ if (jj_3R_13()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_14()) { jj_scanpos = xsp; break; }
+ }
return false;
}
- final private boolean jj_3R_23() {
+ final private boolean jj_3R_56() {
+ if (jj_3R_65()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_39() {
Token xsp;
xsp = jj_scanpos;
if (jj_scan_token(37)) {
jj_scanpos = xsp;
if (jj_scan_token(38)) return true;
}
+ if (jj_3R_34()) return true;
return false;
}
- final private boolean jj_3R_12() {
- if (jj_3R_13()) return true;
- return false;
- }
-
- final private boolean jj_3R_22() {
- if (jj_scan_token(MINUS)) return true;
- return false;
- }
-
- final private boolean jj_3R_21() {
+ final private boolean jj_3R_34() {
Token xsp;
xsp = jj_scanpos;
- if (jj_3R_22()) {
+ if (jj_3R_38()) {
jj_scanpos = xsp;
- if (jj_3R_23()) {
+ if (jj_3R_39()) {
jj_scanpos = xsp;
- if (jj_3R_24()) {
+ if (jj_3R_40()) {
jj_scanpos = xsp;
- if (jj_3R_25()) return true;
+ if (jj_3R_41()) return true;
}
}
}
return false;
}
- final private boolean jj_3R_30() {
+ final private boolean jj_3R_38() {
+ if (jj_scan_token(MINUS)) return true;
+ if (jj_3R_34()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_55() {
+ if (jj_3R_64()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_51() {
Token xsp;
xsp = jj_scanpos;
- if (jj_3R_32()) {
+ if (jj_3R_55()) {
jj_scanpos = xsp;
- if (jj_3R_33()) {
+ if (jj_3R_56()) {
jj_scanpos = xsp;
- if (jj_3R_34()) {
+ if (jj_3R_57()) {
jj_scanpos = xsp;
- if (jj_3R_35()) {
+ if (jj_3R_58()) {
jj_scanpos = xsp;
- if (jj_3R_36()) return true;
+ if (jj_3R_59()) return true;
}
}
}
@@ -1629,21 +1839,59 @@
return false;
}
- final private boolean jj_3R_32() {
- if (jj_3R_39()) return true;
+ final private boolean jj_3R_15() {
+ if (jj_3R_16()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_17()) { jj_scanpos = xsp; break; }
+ }
return false;
}
- final private boolean jj_3R_14() {
- if (jj_3R_15()) return true;
+ final private boolean jj_3R_44() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_scan_token(51)) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(52)) return true;
+ }
return false;
}
final private boolean jj_3R_13() {
- if (jj_3R_14()) return true;
+ if (jj_3R_15()) return true;
return false;
}
+ final private boolean jj_3R_43() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_scan_token(49)) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(50)) return true;
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_35() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_42()) {
+ jj_scanpos = xsp;
+ if (jj_3R_43()) {
+ jj_scanpos = xsp;
+ if (jj_3R_44()) return true;
+ }
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_42() {
+ if (jj_scan_token(MULT)) return true;
+ return false;
+ }
+
public ELParserTokenManager token_source;
SimpleCharStream jj_input_stream;
public Token token, jj_nt;
@@ -1653,7 +1901,7 @@
public boolean lookingAhead = false;
private boolean jj_semLA;
private int jj_gen;
- final private int[] jj_la1 = new int[35];
+ final private int[] jj_la1 = new int[34];
static private int[] jj_la1_0;
static private int[] jj_la1_1;
static {
@@ -1661,10 +1909,10 @@
jj_la1_1();
}
private static void jj_la1_0() {
- jj_la1_0 = new int[] {0xe,0xe,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xfe000000,0x18000000,0x6000000,0x80000000,0x60000000,0xfe000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x9d600,0x240000,0x9d600,0x240000,0x80000,0x0,0x0,0x1000000,0x9d600,0x1d600,0xc000,};
+ jj_la1_0 = new int[] {0xe,0xe,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xfe000000,0x18000000,0x6000000,0x80000000,0x60000000,0xfe000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x9d600,0x240000,0x9d600,0x240000,0x80000,0x0,0x1000000,0x9d600,0x1d600,0xc000,};
}
private static void jj_la1_1() {
- jj_la1_1 = new int[] {0x0,0x0,0x10000,0x600,0x600,0x180,0x180,0x1e,0x6,0x18,0x1e,0x1,0x0,0x0,0x1,0x0,0x1,0xc000,0xc000,0x1e2000,0x60000,0x180000,0x1e2000,0x60,0x608860,0x0,0x600000,0x0,0x0,0x200000,0x400000,0x0,0x608860,0x0,0x0,};
+ jj_la1_1 = new int[] {0x0,0x0,0x10000,0x600,0x600,0x180,0x180,0x1e,0x6,0x18,0x1e,0x1,0x0,0x0,0x1,0x0,0x1,0xc000,0xc000,0x1e2000,0x60000,0x180000,0x1e2000,0x60,0x1208860,0x0,0x1200000,0x0,0x0,0x200000,0x0,0x1208860,0x0,0x0,};
}
final private JJCalls[] jj_2_rtns = new JJCalls[1];
private boolean jj_rescan = false;
@@ -1679,7 +1927,7 @@
token = new Token();
jj_ntk = -1;
jj_gen = 0;
- for (int i = 0; i < 35; i++) jj_la1[i] = -1;
+ for (int i = 0; i < 34; i++) jj_la1[i] = -1;
for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
}
@@ -1693,7 +1941,7 @@
jj_ntk = -1;
jjtree.reset();
jj_gen = 0;
- for (int i = 0; i < 35; i++) jj_la1[i] = -1;
+ for (int i = 0; i < 34; i++) jj_la1[i] = -1;
for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
}
@@ -1703,7 +1951,7 @@
token = new Token();
jj_ntk = -1;
jj_gen = 0;
- for (int i = 0; i < 35; i++) jj_la1[i] = -1;
+ for (int i = 0; i < 34; i++) jj_la1[i] = -1;
for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
}
@@ -1714,7 +1962,7 @@
jj_ntk = -1;
jjtree.reset();
jj_gen = 0;
- for (int i = 0; i < 35; i++) jj_la1[i] = -1;
+ for (int i = 0; i < 34; i++) jj_la1[i] = -1;
for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
}
@@ -1723,7 +1971,7 @@
token = new Token();
jj_ntk = -1;
jj_gen = 0;
- for (int i = 0; i < 35; i++) jj_la1[i] = -1;
+ for (int i = 0; i < 34; i++) jj_la1[i] = -1;
for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
}
@@ -1733,7 +1981,7 @@
jj_ntk = -1;
jjtree.reset();
jj_gen = 0;
- for (int i = 0; i < 35; i++) jj_la1[i] = -1;
+ for (int i = 0; i < 34; i++) jj_la1[i] = -1;
for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
}
@@ -1844,15 +2092,15 @@
public ParseException generateParseException() {
jj_expentries.removeAllElements();
- boolean[] la1tokens = new boolean[60];
- for (int i = 0; i < 60; i++) {
+ boolean[] la1tokens = new boolean[62];
+ for (int i = 0; i < 62; i++) {
la1tokens[i] = false;
}
if (jj_kind >= 0) {
la1tokens[jj_kind] = true;
jj_kind = -1;
}
- for (int i = 0; i < 35; i++) {
+ for (int i = 0; i < 34; i++) {
if (jj_la1[i] == jj_gen) {
for (int j = 0; j < 32; j++) {
if ((jj_la1_0[i] & (1<<j)) != 0) {
@@ -1864,7 +2112,7 @@
}
}
}
- for (int i = 0; i < 60; i++) {
+ for (int i = 0; i < 62; i++) {
if (la1tokens[i]) {
jj_expentry = new int[1];
jj_expentry[0] = i;
Modified: trunk/java/org/apache/el/parser/ELParser.jjt
===================================================================
--- trunk/java/org/apache/el/parser/ELParser.jjt 2008-07-11 14:19:48 UTC (rev 709)
+++ trunk/java/org/apache/el/parser/ELParser.jjt 2008-07-11 14:20:12 UTC (rev 710)
@@ -16,22 +16,22 @@
*/
/*
- Author: Jacob Hookom
- Email: jacob at hookom.net
+ Author: Jacob Hookom
+ Email: jacob at hookom.net
*/
/* == Option Declaration == */
options
{
- STATIC=false;
- NODE_PREFIX="Ast";
- VISITOR_EXCEPTION="javax.el.ELException";
- VISITOR=false;
- MULTI=true;
- NODE_DEFAULT_VOID=true;
- JAVA_UNICODE_ESCAPE=false;
- UNICODE_INPUT=true;
- BUILD_NODE_FILES=true;
+ STATIC=false;
+ NODE_PREFIX="Ast";
+ VISITOR_EXCEPTION="javax.el.ELException";
+ VISITOR=false;
+ MULTI=true;
+ NODE_DEFAULT_VOID=true;
+ JAVA_UNICODE_ESCAPE=false;
+ UNICODE_INPUT=true;
+ BUILD_NODE_FILES=false;
}
/* == Parser Declaration == */
@@ -44,9 +44,9 @@
public static Node parse(String ref) throws ELException
{
try {
- return (new ELParser(new StringReader(ref))).CompositeExpression();
+ return (new ELParser(new StringReader(ref))).CompositeExpression();
} catch (ParseException pe) {
- throw new ELException(pe.getMessage());
+ throw new ELException(pe.getMessage());
}
}
}
@@ -59,7 +59,7 @@
*/
AstCompositeExpression CompositeExpression() #CompositeExpression : {}
{
- (DeferredExpression() | DynamicExpression() | LiteralExpression())* <EOF> { return jjtThis; }
+ (DeferredExpression() | DynamicExpression() | LiteralExpression())* <EOF> { return jjtThis; }
}
/*
@@ -68,7 +68,7 @@
*/
void LiteralExpression() #LiteralExpression : { Token t = null; }
{
- t=<LITERAL_EXPRESSION> { jjtThis.setImage(t.image); }
+ t=<LITERAL_EXPRESSION> { jjtThis.setImage(t.image); }
}
/*
@@ -77,7 +77,7 @@
*/
void DeferredExpression() #DeferredExpression : {}
{
- <START_DEFERRED_EXPRESSION> Expression() <END_EXPRESSION>
+ <START_DEFERRED_EXPRESSION> Expression() <END_EXPRESSION>
}
/*
@@ -86,7 +86,7 @@
*/
void DynamicExpression() #DynamicExpression : {}
{
- <START_DYNAMIC_EXPRESSION> Expression() <END_EXPRESSION>
+ <START_DYNAMIC_EXPRESSION> Expression() <END_EXPRESSION>
}
/*
@@ -95,7 +95,7 @@
*/
void Expression() : {}
{
- Choice()
+ Choice()
}
/*
@@ -104,7 +104,7 @@
*/
void Choice() : {}
{
- Or() (<QUESTIONMARK> Choice() <COLON> Choice() #Choice(3))*
+ Or() (<QUESTIONMARK> Choice() <COLON> Choice() #Choice(3))*
}
/*
@@ -113,7 +113,7 @@
*/
void Or() : {}
{
- And() ((<OR0>|<OR1>) And() #Or(2))*
+ And() ((<OR0>|<OR1>) And() #Or(2))*
}
/*
@@ -122,7 +122,7 @@
*/
void And() : {}
{
- Equality() ((<AND0>|<AND1>) Equality() #And(2))*
+ Equality() ((<AND0>|<AND1>) Equality() #And(2))*
}
/*
@@ -131,12 +131,12 @@
*/
void Equality() : {}
{
- Compare()
- (
- ((<EQ0>|<EQ1>) Compare() #Equal(2))
- |
- ((<NE0>|<NE1>) Compare() #NotEqual(2))
- )*
+ Compare()
+ (
+ ((<EQ0>|<EQ1>) Compare() #Equal(2))
+ |
+ ((<NE0>|<NE1>) Compare() #NotEqual(2))
+ )*
}
/*
@@ -145,16 +145,16 @@
*/
void Compare() : {}
{
- Math()
- (
- ((<LT0>|<LT1>) Math() #LessThan(2))
- |
- ((<GT0>|<GT1>) Math() #GreaterThan(2))
- |
- ((<LE0>|<LE1>) Math() #LessThanEqual(2))
- |
- ((<GE0>|<GE1>) Math() #GreaterThanEqual(2))
- )*
+ Math()
+ (
+ ((<LT0>|<LT1>) Math() #LessThan(2))
+ |
+ ((<GT0>|<GT1>) Math() #GreaterThan(2))
+ |
+ ((<LE0>|<LE1>) Math() #LessThanEqual(2))
+ |
+ ((<GE0>|<GE1>) Math() #GreaterThanEqual(2))
+ )*
}
/*
@@ -163,12 +163,12 @@
*/
void Math() : {}
{
- Multiplication()
- (
- (<PLUS> Multiplication() #Plus(2))
- |
- (<MINUS> Multiplication() #Minus(2))
- )*
+ Multiplication()
+ (
+ (<PLUS> Multiplication() #Plus(2))
+ |
+ (<MINUS> Multiplication() #Minus(2))
+ )*
}
/*
@@ -177,14 +177,14 @@
*/
void Multiplication() : {}
{
- Unary()
- (
- (<MULT> Unary() #Mult(2))
- |
- ((<DIV0>|<DIV1>) Unary() #Div(2))
- |
- ((<MOD0>|<MOD1>) Unary() #Mod(2))
- )*
+ Unary()
+ (
+ (<MULT> Unary() #Mult(2))
+ |
+ ((<DIV0>|<DIV1>) Unary() #Div(2))
+ |
+ ((<MOD0>|<MOD1>) Unary() #Mod(2))
+ )*
}
/*
@@ -193,13 +193,13 @@
*/
void Unary() : {}
{
- <MINUS> Unary() #Negative
- |
- (<NOT0>|<NOT1>) Unary() #Not
- |
- <EMPTY> Unary() #Empty
- |
- Value()
+ <MINUS> Unary() #Negative
+ |
+ (<NOT0>|<NOT1>) Unary() #Not
+ |
+ <EMPTY> Unary() #Empty
+ |
+ Value()
}
/*
@@ -208,7 +208,7 @@
*/
void Value() : {}
{
- (ValuePrefix() (ValueSuffix())*) #Value(>1)
+ (ValuePrefix() (ValueSuffix())*) #Value(>1)
}
/*
@@ -217,8 +217,8 @@
*/
void ValuePrefix() : {}
{
- Literal()
- | NonLiteral()
+ Literal()
+ | NonLiteral()
}
/*
@@ -227,7 +227,7 @@
*/
void ValueSuffix() : {}
{
- DotSuffix() | BracketSuffix()
+ DotSuffix() | BracketSuffix()
}
/*
@@ -236,7 +236,7 @@
*/
void DotSuffix() #DotSuffix : { Token t = null; }
{
- <DOT> t=<IDENTIFIER> { jjtThis.setImage(t.image); }
+ <DOT> t=<IDENTIFIER> { jjtThis.setImage(t.image); }
}
/*
@@ -245,7 +245,7 @@
*/
void BracketSuffix() #BracketSuffix : {}
{
- <LBRACK> Expression() <RBRACK>
+ <LBRACK> Expression() <RBRACK>
}
/*
@@ -254,9 +254,9 @@
*/
void NonLiteral() : {}
{
- <LPAREN> Expression() <RPAREN>
- | LOOKAHEAD(3) Function()
- | Identifier()
+ <LPAREN> Expression() <RPAREN>
+ | LOOKAHEAD(3) Function()
+ | Identifier()
}
/*
@@ -265,7 +265,7 @@
*/
void Identifier() #Identifier : { Token t = null; }
{
- t=<IDENTIFIER> { jjtThis.setImage(t.image); }
+ t=<IDENTIFIER> { jjtThis.setImage(t.image); }
}
/*
@@ -274,20 +274,19 @@
*/
void Function() #Function :
{
- Token t0 = null;
- Token t1 = null;
+ Token tx = null;
}
{
- (t0=<NAMESPACE>)? t1=<IDENTIFIER>
- {
- if (t0 != null) {
- jjtThis.setPrefix(t0.image.substring(0, t0.image.length() - 1));
- jjtThis.setLocalName(t1.image);
- } else {
- jjtThis.setLocalName(t1.image);
- }
- }
- <LPAREN> (Expression() (<COMMA> Expression())*)? <RPAREN>
+ (tx=<FUNCTION_CALL>) (Expression() (<COMMA> Expression())*)? <RPAREN>
+ {
+ int split = tx.image.indexOf(":");
+ if (split!=-1) {
+ jjtThis.setPrefix(tx.image.substring(0, split));
+ jjtThis.setLocalName(tx.image.substring(split + 1, tx.image.length() - 1));
+ } else {
+ jjtThis.setLocalName(tx.image.substring(0, tx.image.length() - 1));
+ }
+ }
}
/*
@@ -296,11 +295,11 @@
*/
void Literal() : {}
{
- Boolean()
- | FloatingPoint()
- | Integer()
- | String()
- | Null()
+ Boolean()
+ | FloatingPoint()
+ | Integer()
+ | String()
+ | Null()
}
/*
@@ -309,8 +308,8 @@
*/
void Boolean() : {}
{
- <TRUE> #True
- | <FALSE> #False
+ <TRUE> #True
+ | <FALSE> #False
}
/*
@@ -319,7 +318,7 @@
*/
void FloatingPoint() #FloatingPoint : { Token t = null; }
{
- t=<FLOATING_POINT_LITERAL> { jjtThis.setImage(t.image); }
+ t=<FLOATING_POINT_LITERAL> { jjtThis.setImage(t.image); }
}
/*
@@ -328,7 +327,7 @@
*/
void Integer() #Integer : { Token t = null; }
{
- t=<INTEGER_LITERAL> { jjtThis.setImage(t.image); }
+ t=<INTEGER_LITERAL> { jjtThis.setImage(t.image); }
}
/*
@@ -337,7 +336,7 @@
*/
void String() #String : { Token t = null; }
{
- t=<STRING_LITERAL> { jjtThis.setImage(t.image); }
+ t=<STRING_LITERAL> { jjtThis.setImage(t.image); }
}
/*
@@ -346,7 +345,7 @@
*/
void Null() #Null : {}
{
- <NULL>
+ <NULL>
}
@@ -374,98 +373,100 @@
<IN_EXPRESSION> TOKEN :
{
- < INTEGER_LITERAL: ["0"-"9"] (["0"-"9"])* >
-| < FLOATING_POINT_LITERAL: (["0"-"9"])+ "." (["0"-"9"])* (<EXPONENT>)?
- | "." (["0"-"9"])+ (<EXPONENT>)?
- | (["0"-"9"])+ <EXPONENT>
- >
-| < #EXPONENT: ["e","E"] (["+","-"])? (["0"-"9"])+ >
-| < STRING_LITERAL: ("\"" ((~["\"","\\"])
- | ("\\" ( ["\\","\""] )))* "\"")
- | ("\'" ((~["\'","\\"])
- | ("\\" ( ["\\","\'"] )))* "\'")
- >
-| < BADLY_ESCAPED_STRING_LITERAL: ("\"" (~["\"","\\"])* ("\\" ( ~["\\","\""] )))
- | ("\'" (~["\'","\\"])* ("\\" ( ~["\\","\'"] )))
- >
-| < TRUE : "true" >
-| < FALSE : "false" >
-| < NULL : "null" >
-| < END_EXPRESSION : "}" > : DEFAULT
-| < DOT : "." >
-| < LPAREN : "(" >
-| < RPAREN : ")" >
-| < LBRACK : "[" >
-| < RBRACK : "]" >
-| < COLON : ":" >
-| < COMMA : "," >
-| < GT0 : ">" >
-| < GT1 : "gt" >
-| < LT0 : "<" >
-| < LT1 : "lt" >
-| < GE0 : ">=" >
-| < GE1 : "ge" >
-| < LE0 : "<=" >
-| < LE1 : "le" >
-| < EQ0 : "==" >
-| < EQ1 : "eq" >
-| < NE0 : "!=" >
-| < NE1 : "ne" >
-| < NOT0 : "!" >
-| < NOT1 : "not" >
-| < AND0 : "&&" >
-| < AND1 : "and" >
-| < OR0 : "||" >
-| < OR1 : "or" >
-| < EMPTY : "empty" >
-| < INSTANCEOF : "instanceof" >
-| < MULT : "*" >
-| < PLUS : "+" >
-| < MINUS : "-" >
-| < QUESTIONMARK : "?" >
-| < DIV0 : "/" >
-| < DIV1 : "div" >
-| < MOD0 : "%" >
-| < MOD1 : "mod" >
-| < IDENTIFIER : (<LETTER>|<IMPL_OBJ_START>) (<LETTER>|<DIGIT>)* >
-| < NAMESPACE : (<IDENTIFIER> (<IDENTIFIER>|<MINUS>|<DOT>)* <COLON>) >
-| < FUNCTIONSUFFIX : (<IDENTIFIER>) >
-| < #IMPL_OBJ_START: "#" >
-| < #LETTER:
- [
- "\u0024",
- "\u0041"-"\u005a",
- "\u005f",
- "\u0061"-"\u007a",
- "\u00c0"-"\u00d6",
- "\u00d8"-"\u00f6",
- "\u00f8"-"\u00ff",
- "\u0100"-"\u1fff",
- "\u3040"-"\u318f",
- "\u3300"-"\u337f",
- "\u3400"-"\u3d2d",
- "\u4e00"-"\u9fff",
- "\uf900"-"\ufaff"
- ]
- >
-| < #DIGIT:
- [
- "\u0030"-"\u0039",
- "\u0660"-"\u0669",
- "\u06f0"-"\u06f9",
- "\u0966"-"\u096f",
- "\u09e6"-"\u09ef",
- "\u0a66"-"\u0a6f",
- "\u0ae6"-"\u0aef",
- "\u0b66"-"\u0b6f",
- "\u0be7"-"\u0bef",
- "\u0c66"-"\u0c6f",
- "\u0ce6"-"\u0cef",
- "\u0d66"-"\u0d6f",
- "\u0e50"-"\u0e59",
- "\u0ed0"-"\u0ed9",
- "\u1040"-"\u1049"
- ]
- >
-| < ILLEGAL_CHARACTER: (~[]) >
+ < INTEGER_LITERAL: ["0"-"9"] (["0"-"9"])* >
+| < FLOATING_POINT_LITERAL: (["0"-"9"])+ "." (["0"-"9"])* (<EXPONENT>)?
+ | "." (["0"-"9"])+ (<EXPONENT>)?
+ | (["0"-"9"])+ <EXPONENT>
+ >
+| < #EXPONENT: ["e","E"] (["+","-"])? (["0"-"9"])+ >
+| < STRING_LITERAL: ("\"" ((~["\"","\\"])
+ | ("\\" ( ["\\","\""] )))* "\"")
+ | ("\'" ((~["\'","\\"])
+ | ("\\" ( ["\\","\'"] )))* "\'")
+ >
+| < BADLY_ESCAPED_STRING_LITERAL: ("\"" (~["\"","\\"])* ("\\" ( ~["\\","\""] )))
+ | ("\'" (~["\'","\\"])* ("\\" ( ~["\\","\'"] )))
+ >
+| < TRUE : "true" >
+| < FALSE : "false" >
+| < NULL : "null" >
+| < END_EXPRESSION : "}" > : DEFAULT
+| < DOT : "." >
+| < LPAREN : "(" >
+| < RPAREN : ")" >
+| < LBRACK : "[" >
+| < RBRACK : "]" >
+| < COLON : ":" >
+| < COMMA : "," >
+| < GT0 : ">" >
+| < GT1 : "gt" >
+| < LT0 : "<" >
+| < LT1 : "lt" >
+| < GE0 : ">=" >
+| < GE1 : "ge" >
+| < LE0 : "<=" >
+| < LE1 : "le" >
+| < EQ0 : "==" >
+| < EQ1 : "eq" >
+| < NE0 : "!=" >
+| < NE1 : "ne" >
+| < NOT0 : "!" >
+| < NOT1 : "not" >
+| < AND0 : "&&" >
+| < AND1 : "and" >
+| < OR0 : "||" >
+| < OR1 : "or" >
+| < EMPTY : "empty" >
+| < INSTANCEOF : "instanceof" >
+| < MULT : "*" >
+| < PLUS : "+" >
+| < MINUS : "-" >
+| < QUESTIONMARK : "?" >
+| < DIV0 : "/" >
+| < DIV1 : "div" >
+| < MOD0 : "%" >
+| < MOD1 : "mod" >
+| < IDENTIFIER : (<LETTER>|<IMPL_OBJ_START>) (<LETTER>|<DIGIT>)* >
+| < #NAMESPACE : ( <NAMESPACE_NAME> <COLON>) >
+| < #NAMESPACE_NAME: (<IDENTIFIER> (<LETTER>|<DIGIT>|<MINUS>|<DOT>)*) >
+| < FUNCTION_CALL: (<NAMESPACE>)? <IDENTIFIER> <LPAREN> >
+| < FUNCTIONSUFFIX : (<IDENTIFIER>) >
+| < #IMPL_OBJ_START: "#" >
+| < #LETTER:
+ [
+ "\u0024",
+ "\u0041"-"\u005a",
+ "\u005f",
+ "\u0061"-"\u007a",
+ "\u00c0"-"\u00d6",
+ "\u00d8"-"\u00f6",
+ "\u00f8"-"\u00ff",
+ "\u0100"-"\u1fff",
+ "\u3040"-"\u318f",
+ "\u3300"-"\u337f",
+ "\u3400"-"\u3d2d",
+ "\u4e00"-"\u9fff",
+ "\uf900"-"\ufaff"
+ ]
+ >
+| < #DIGIT:
+ [
+ "\u0030"-"\u0039",
+ "\u0660"-"\u0669",
+ "\u06f0"-"\u06f9",
+ "\u0966"-"\u096f",
+ "\u09e6"-"\u09ef",
+ "\u0a66"-"\u0a6f",
+ "\u0ae6"-"\u0aef",
+ "\u0b66"-"\u0b6f",
+ "\u0be7"-"\u0bef",
+ "\u0c66"-"\u0c6f",
+ "\u0ce6"-"\u0cef",
+ "\u0d66"-"\u0d6f",
+ "\u0e50"-"\u0e59",
+ "\u0ed0"-"\u0ed9",
+ "\u1040"-"\u1049"
+ ]
+ >
+| < ILLEGAL_CHARACTER: (~[]) >
}
Modified: trunk/java/org/apache/el/parser/ELParserConstants.java
===================================================================
--- trunk/java/org/apache/el/parser/ELParserConstants.java 2008-07-11 14:19:48 UTC (rev 709)
+++ trunk/java/org/apache/el/parser/ELParserConstants.java 2008-07-11 14:20:12 UTC (rev 710)
@@ -69,11 +69,13 @@
int MOD1 = 52;
int IDENTIFIER = 53;
int NAMESPACE = 54;
- int FUNCTIONSUFFIX = 55;
- int IMPL_OBJ_START = 56;
- int LETTER = 57;
- int DIGIT = 58;
- int ILLEGAL_CHARACTER = 59;
+ int NAMESPACE_NAME = 55;
+ int FUNCTION_CALL = 56;
+ int FUNCTIONSUFFIX = 57;
+ int IMPL_OBJ_START = 58;
+ int LETTER = 59;
+ int DIGIT = 60;
+ int ILLEGAL_CHARACTER = 61;
int DEFAULT = 0;
int IN_EXPRESSION = 1;
@@ -134,6 +136,8 @@
"\"mod\"",
"<IDENTIFIER>",
"<NAMESPACE>",
+ "<NAMESPACE_NAME>",
+ "<FUNCTION_CALL>",
"<FUNCTIONSUFFIX>",
"\"#\"",
"<LETTER>",
Modified: trunk/java/org/apache/el/parser/ELParserTokenManager.java
===================================================================
--- trunk/java/org/apache/el/parser/ELParserTokenManager.java 2008-07-11 14:19:48 UTC (rev 709)
+++ trunk/java/org/apache/el/parser/ELParserTokenManager.java 2008-07-11 14:20:12 UTC (rev 710)
@@ -302,7 +302,7 @@
if ((active0 & 0x141d555401c000L) != 0L)
{
jjmatchedKind = 53;
- return 41;
+ return 42;
}
if ((active0 & 0x40000L) != 0L)
return 1;
@@ -318,24 +318,24 @@
}
return -1;
case 2:
- if ((active0 & 0x14014000000000L) != 0L)
- return 42;
if ((active0 & 0x18000001c000L) != 0L)
{
jjmatchedKind = 53;
jjmatchedPos = 2;
return 42;
}
+ if ((active0 & 0x14014000000000L) != 0L)
+ return 42;
return -1;
case 3:
- if ((active0 & 0x14000L) != 0L)
- return 42;
if ((active0 & 0x180000008000L) != 0L)
{
jjmatchedKind = 53;
jjmatchedPos = 3;
return 42;
}
+ if ((active0 & 0x14000L) != 0L)
+ return 42;
return -1;
case 4:
if ((active0 & 0x80000008000L) != 0L)
@@ -740,7 +740,7 @@
{
int[] nextStates;
int startsAt = 0;
- jjnewStateCnt = 41;
+ jjnewStateCnt = 42;
int i = 1;
jjstateSet[0] = startState;
int j, kind = 0x7fffffff;
@@ -755,77 +755,52 @@
{
switch(jjstateSet[--i])
{
- case 41:
- if ((0x3ff001000000000L & l) != 0L)
- {
- if (kind > 55)
- kind = 55;
- jjCheckNAdd(40);
- }
- else if ((0x600000000000L & l) != 0L)
- jjCheckNAddStates(4, 6);
- else if (curChar == 58)
- {
- if (kind > 54)
- kind = 54;
- }
- if ((0x3ff001000000000L & l) != 0L)
- jjCheckNAddStates(7, 10);
- if ((0x3ff001000000000L & l) != 0L)
- {
- if (kind > 53)
- kind = 53;
- jjCheckNAdd(34);
- }
- if ((0x1800000000L & l) != 0L)
- jjCheckNAddStates(11, 14);
- break;
case 0:
if ((0x3ff000000000000L & l) != 0L)
{
if (kind > 9)
kind = 9;
- jjCheckNAddStates(15, 19);
+ jjCheckNAddStates(4, 8);
}
else if ((0x1800000000L & l) != 0L)
{
if (kind > 53)
kind = 53;
- jjCheckNAddStates(20, 25);
+ jjCheckNAddStates(9, 15);
}
else if (curChar == 39)
- jjCheckNAddStates(26, 30);
+ jjCheckNAddStates(16, 20);
else if (curChar == 34)
- jjCheckNAddStates(31, 35);
+ jjCheckNAddStates(21, 25);
else if (curChar == 46)
jjCheckNAdd(1);
break;
case 42:
- if ((0x3ff001000000000L & l) != 0L)
+ if ((0x3ff601000000000L & l) != 0L)
+ jjCheckNAddTwoStates(36, 37);
+ else if (curChar == 40)
{
- if (kind > 55)
- kind = 55;
- jjCheckNAdd(40);
+ if (kind > 56)
+ kind = 56;
}
- else if ((0x600000000000L & l) != 0L)
- jjCheckNAddStates(4, 6);
else if (curChar == 58)
+ jjstateSet[jjnewStateCnt++] = 38;
+ if ((0x3ff001000000000L & l) != 0L)
{
- if (kind > 54)
- kind = 54;
+ if (kind > 57)
+ kind = 57;
+ jjCheckNAdd(41);
}
if ((0x3ff001000000000L & l) != 0L)
- jjCheckNAddStates(11, 14);
+ jjCheckNAddTwoStates(39, 40);
if ((0x3ff001000000000L & l) != 0L)
- jjCheckNAddStates(7, 10);
+ jjCheckNAddStates(26, 28);
if ((0x3ff001000000000L & l) != 0L)
{
if (kind > 53)
kind = 53;
jjCheckNAdd(34);
}
- if ((0x1800000000L & l) != 0L)
- jjCheckNAddStates(11, 14);
break;
case 1:
if ((0x3ff000000000000L & l) == 0L)
@@ -850,7 +825,7 @@
break;
if (kind > 9)
kind = 9;
- jjCheckNAddStates(15, 19);
+ jjCheckNAddStates(4, 8);
break;
case 6:
if ((0x3ff000000000000L & l) == 0L)
@@ -905,15 +880,15 @@
break;
case 17:
if (curChar == 34)
- jjCheckNAddStates(31, 35);
+ jjCheckNAddStates(21, 25);
break;
case 18:
if ((0xfffffffbffffffffL & l) != 0L)
- jjCheckNAddStates(36, 38);
+ jjCheckNAddStates(29, 31);
break;
case 20:
if (curChar == 34)
- jjCheckNAddStates(36, 38);
+ jjCheckNAddStates(29, 31);
break;
case 21:
if (curChar == 34 && kind > 12)
@@ -929,15 +904,15 @@
break;
case 25:
if (curChar == 39)
- jjCheckNAddStates(26, 30);
+ jjCheckNAddStates(16, 20);
break;
case 26:
if ((0xffffff7fffffffffL & l) != 0L)
- jjCheckNAddStates(39, 41);
+ jjCheckNAddStates(32, 34);
break;
case 28:
if (curChar == 39)
- jjCheckNAddStates(39, 41);
+ jjCheckNAddStates(32, 34);
break;
case 29:
if (curChar == 39 && kind > 12)
@@ -956,7 +931,7 @@
break;
if (kind > 53)
kind = 53;
- jjCheckNAddStates(20, 25);
+ jjCheckNAddStates(9, 15);
break;
case 34:
if ((0x3ff001000000000L & l) == 0L)
@@ -967,30 +942,34 @@
break;
case 35:
if ((0x3ff001000000000L & l) != 0L)
- jjCheckNAddStates(7, 10);
+ jjCheckNAddStates(26, 28);
break;
case 36:
- if ((0x1800000000L & l) != 0L)
- jjCheckNAddStates(11, 14);
+ if ((0x3ff601000000000L & l) != 0L)
+ jjCheckNAddTwoStates(36, 37);
break;
case 37:
- if ((0x3ff001000000000L & l) != 0L)
- jjCheckNAddStates(11, 14);
+ if (curChar == 58)
+ jjstateSet[jjnewStateCnt++] = 38;
break;
case 38:
- if ((0x600000000000L & l) != 0L)
- jjCheckNAddStates(4, 6);
+ if ((0x1800000000L & l) != 0L)
+ jjCheckNAddTwoStates(39, 40);
break;
case 39:
- if (curChar == 58 && kind > 54)
- kind = 54;
+ if ((0x3ff001000000000L & l) != 0L)
+ jjCheckNAddTwoStates(39, 40);
break;
case 40:
+ if (curChar == 40 && kind > 56)
+ kind = 56;
+ break;
+ case 41:
if ((0x3ff001000000000L & l) == 0L)
break;
- if (kind > 55)
- kind = 55;
- jjCheckNAdd(40);
+ if (kind > 57)
+ kind = 57;
+ jjCheckNAdd(41);
break;
default : break;
}
@@ -1003,44 +982,26 @@
{
switch(jjstateSet[--i])
{
- case 41:
- if ((0x7fffffe87fffffeL & l) != 0L)
- {
- if (kind > 55)
- kind = 55;
- jjCheckNAdd(40);
- }
- if ((0x7fffffe87fffffeL & l) != 0L)
- jjCheckNAddStates(11, 14);
- if ((0x7fffffe87fffffeL & l) != 0L)
- jjCheckNAddStates(7, 10);
- if ((0x7fffffe87fffffeL & l) != 0L)
- {
- if (kind > 53)
- kind = 53;
- jjCheckNAdd(34);
- }
- break;
case 0:
if ((0x7fffffe87fffffeL & l) == 0L)
break;
if (kind > 53)
kind = 53;
- jjCheckNAddStates(20, 25);
+ jjCheckNAddStates(9, 15);
break;
case 42:
if ((0x7fffffe87fffffeL & l) != 0L)
{
- if (kind > 55)
- kind = 55;
- jjCheckNAdd(40);
+ if (kind > 57)
+ kind = 57;
+ jjCheckNAdd(41);
}
if ((0x7fffffe87fffffeL & l) != 0L)
- jjCheckNAddStates(11, 14);
+ jjCheckNAddTwoStates(39, 40);
if ((0x7fffffe87fffffeL & l) != 0L)
- jjCheckNAddStates(11, 14);
+ jjCheckNAddTwoStates(36, 37);
if ((0x7fffffe87fffffeL & l) != 0L)
- jjCheckNAddStates(7, 10);
+ jjCheckNAddStates(26, 28);
if ((0x7fffffe87fffffeL & l) != 0L)
{
if (kind > 53)
@@ -1050,19 +1011,19 @@
break;
case 2:
if ((0x2000000020L & l) != 0L)
- jjAddStates(42, 43);
+ jjAddStates(35, 36);
break;
case 10:
if ((0x2000000020L & l) != 0L)
- jjAddStates(44, 45);
+ jjAddStates(37, 38);
break;
case 14:
if ((0x2000000020L & l) != 0L)
- jjAddStates(46, 47);
+ jjAddStates(39, 40);
break;
case 18:
if ((0xffffffffefffffffL & l) != 0L)
- jjCheckNAddStates(36, 38);
+ jjCheckNAddStates(29, 31);
break;
case 19:
if (curChar == 92)
@@ -1070,11 +1031,11 @@
break;
case 20:
if (curChar == 92)
- jjCheckNAddStates(36, 38);
+ jjCheckNAddStates(29, 31);
break;
case 22:
if ((0xffffffffefffffffL & l) != 0L)
- jjAddStates(48, 49);
+ jjAddStates(41, 42);
break;
case 23:
if (curChar == 92)
@@ -1087,7 +1048,7 @@
break;
case 26:
if ((0xffffffffefffffffL & l) != 0L)
- jjCheckNAddStates(39, 41);
+ jjCheckNAddStates(32, 34);
break;
case 27:
if (curChar == 92)
@@ -1095,11 +1056,11 @@
break;
case 28:
if (curChar == 92)
- jjCheckNAddStates(39, 41);
+ jjCheckNAddStates(32, 34);
break;
case 30:
if ((0xffffffffefffffffL & l) != 0L)
- jjAddStates(50, 51);
+ jjAddStates(43, 44);
break;
case 31:
if (curChar == 92)
@@ -1114,22 +1075,26 @@
break;
case 35:
if ((0x7fffffe87fffffeL & l) != 0L)
- jjCheckNAddStates(7, 10);
+ jjCheckNAddStates(26, 28);
break;
case 36:
if ((0x7fffffe87fffffeL & l) != 0L)
- jjCheckNAddStates(11, 14);
+ jjCheckNAddTwoStates(36, 37);
break;
- case 37:
+ case 38:
if ((0x7fffffe87fffffeL & l) != 0L)
- jjCheckNAddStates(11, 14);
+ jjCheckNAddTwoStates(39, 40);
break;
- case 40:
+ case 39:
+ if ((0x7fffffe87fffffeL & l) != 0L)
+ jjCheckNAddTwoStates(39, 40);
+ break;
+ case 41:
if ((0x7fffffe87fffffeL & l) == 0L)
break;
- if (kind > 55)
- kind = 55;
- jjCheckNAdd(40);
+ if (kind > 57)
+ kind = 57;
+ jjCheckNAdd(41);
break;
default : break;
}
@@ -1146,30 +1111,12 @@
{
switch(jjstateSet[--i])
{
- case 41:
- if (jjCanMove_1(hiByte, i1, i2, l1, l2))
- {
- if (kind > 53)
- kind = 53;
- jjCheckNAdd(34);
- }
- if (jjCanMove_1(hiByte, i1, i2, l1, l2))
- jjCheckNAddStates(7, 10);
- if (jjCanMove_1(hiByte, i1, i2, l1, l2))
- jjCheckNAddStates(11, 14);
- if (jjCanMove_1(hiByte, i1, i2, l1, l2))
- {
- if (kind > 55)
- kind = 55;
- jjCheckNAdd(40);
- }
- break;
case 0:
if (!jjCanMove_1(hiByte, i1, i2, l1, l2))
break;
if (kind > 53)
kind = 53;
- jjCheckNAddStates(20, 25);
+ jjCheckNAddStates(9, 15);
break;
case 42:
if (jjCanMove_1(hiByte, i1, i2, l1, l2))
@@ -1179,25 +1126,25 @@
jjCheckNAdd(34);
}
if (jjCanMove_1(hiByte, i1, i2, l1, l2))
- jjCheckNAddStates(7, 10);
+ jjCheckNAddStates(26, 28);
if (jjCanMove_1(hiByte, i1, i2, l1, l2))
- jjCheckNAddStates(11, 14);
+ jjCheckNAddTwoStates(36, 37);
if (jjCanMove_1(hiByte, i1, i2, l1, l2))
- jjCheckNAddStates(11, 14);
+ jjCheckNAddTwoStates(39, 40);
if (jjCanMove_1(hiByte, i1, i2, l1, l2))
{
- if (kind > 55)
- kind = 55;
- jjCheckNAdd(40);
+ if (kind > 57)
+ kind = 57;
+ jjCheckNAdd(41);
}
break;
case 18:
if (jjCanMove_0(hiByte, i1, i2, l1, l2))
- jjAddStates(36, 38);
+ jjAddStates(29, 31);
break;
case 22:
if (jjCanMove_0(hiByte, i1, i2, l1, l2))
- jjAddStates(48, 49);
+ jjAddStates(41, 42);
break;
case 24:
case 32:
@@ -1206,11 +1153,11 @@
break;
case 26:
if (jjCanMove_0(hiByte, i1, i2, l1, l2))
- jjAddStates(39, 41);
+ jjAddStates(32, 34);
break;
case 30:
if (jjCanMove_0(hiByte, i1, i2, l1, l2))
- jjAddStates(50, 51);
+ jjAddStates(43, 44);
break;
case 34:
if (!jjCanMove_1(hiByte, i1, i2, l1, l2))
@@ -1221,22 +1168,26 @@
break;
case 35:
if (jjCanMove_1(hiByte, i1, i2, l1, l2))
- jjCheckNAddStates(7, 10);
+ jjCheckNAddStates(26, 28);
break;
case 36:
if (jjCanMove_1(hiByte, i1, i2, l1, l2))
- jjCheckNAddStates(11, 14);
+ jjCheckNAddTwoStates(36, 37);
break;
- case 37:
+ case 38:
if (jjCanMove_1(hiByte, i1, i2, l1, l2))
- jjCheckNAddStates(11, 14);
+ jjCheckNAddTwoStates(39, 40);
break;
- case 40:
+ case 39:
+ if (jjCanMove_1(hiByte, i1, i2, l1, l2))
+ jjCheckNAddTwoStates(39, 40);
+ break;
+ case 41:
if (!jjCanMove_1(hiByte, i1, i2, l1, l2))
break;
- if (kind > 55)
- kind = 55;
- jjCheckNAdd(40);
+ if (kind > 57)
+ kind = 57;
+ jjCheckNAdd(41);
break;
default : break;
}
@@ -1249,17 +1200,16 @@
kind = 0x7fffffff;
}
++curPos;
- if ((i = jjnewStateCnt) == (startsAt = 41 - (jjnewStateCnt = startsAt)))
+ if ((i = jjnewStateCnt) == (startsAt = 42 - (jjnewStateCnt = startsAt)))
return curPos;
try { curChar = input_stream.readChar(); }
catch(java.io.IOException e) { return curPos; }
}
}
static final int[] jjnextStates = {
- 0, 1, 3, 5, 36, 38, 39, 35, 36, 38, 39, 36, 37, 38, 39, 6,
- 7, 8, 13, 14, 34, 35, 36, 38, 39, 40, 26, 27, 29, 30, 31, 18,
- 19, 21, 22, 23, 18, 19, 21, 26, 27, 29, 3, 4, 11, 12, 15, 16,
- 22, 23, 30, 31,
+ 0, 1, 3, 5, 6, 7, 8, 13, 14, 34, 35, 36, 37, 39, 40, 41,
+ 26, 27, 29, 30, 31, 18, 19, 21, 22, 23, 35, 36, 37, 18, 19, 21,
+ 26, 27, 29, 3, 4, 11, 12, 15, 16, 22, 23, 30, 31,
};
private static final boolean jjCanMove_0(int hiByte, int i1, int i2, long l1, long l2)
{
@@ -1300,7 +1250,7 @@
"\154\164", "\76\75", "\147\145", "\74\75", "\154\145", "\75\75", "\145\161", "\41\75",
"\156\145", "\41", "\156\157\164", "\46\46", "\141\156\144", "\174\174", "\157\162",
"\145\155\160\164\171", "\151\156\163\164\141\156\143\145\157\146", "\52", "\53", "\55", "\77", "\57",
-"\144\151\166", "\45", "\155\157\144", null, null, null, null, null, null, null, };
+"\144\151\166", "\45", "\155\157\144", null, null, null, null, null, null, null, null, null, };
public static final String[] lexStateNames = {
"DEFAULT",
"IN_EXPRESSION",
@@ -1308,17 +1258,17 @@
public static final int[] jjnewLexState = {
-1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
};
static final long[] jjtoToken = {
- 0x8fffffffffff60fL,
+ 0x233ffffffffff60fL,
};
static final long[] jjtoSkip = {
0x1f0L,
};
protected SimpleCharStream input_stream;
-private final int[] jjrounds = new int[41];
-private final int[] jjstateSet = new int[82];
+private final int[] jjrounds = new int[42];
+private final int[] jjstateSet = new int[84];
protected char curChar;
public ELParserTokenManager(SimpleCharStream stream){
if (SimpleCharStream.staticFlag)
@@ -1340,7 +1290,7 @@
{
int i;
jjround = 0x80000001;
- for (i = 41; i-- > 0;)
+ for (i = 42; i-- > 0;)
jjrounds[i] = 0x80000000;
}
public void ReInit(SimpleCharStream stream, int lexState)
@@ -1413,9 +1363,9 @@
jjmatchedKind = 0x7fffffff;
jjmatchedPos = 0;
curPos = jjMoveStringLiteralDfa0_1();
- if (jjmatchedPos == 0 && jjmatchedKind > 59)
+ if (jjmatchedPos == 0 && jjmatchedKind > 61)
{
- jjmatchedKind = 59;
+ jjmatchedKind = 61;
}
break;
}
16 years, 5 months
JBossWeb SVN: r709 - trunk/java/org/apache/catalina/core.
by jbossweb-commits@lists.jboss.org
Author: remy.maucherat(a)jboss.com
Date: 2008-07-11 10:19:48 -0400 (Fri, 11 Jul 2008)
New Revision: 709
Modified:
trunk/java/org/apache/catalina/core/DefaultInstanceManager.java
Log:
- Annotation processing should look up in the class hierarchy.
Modified: trunk/java/org/apache/catalina/core/DefaultInstanceManager.java
===================================================================
--- trunk/java/org/apache/catalina/core/DefaultInstanceManager.java 2008-07-11 12:34:56 UTC (rev 708)
+++ trunk/java/org/apache/catalina/core/DefaultInstanceManager.java 2008-07-11 14:19:48 UTC (rev 709)
@@ -122,8 +122,8 @@
}
public void newInstance(Object o)
- throws IllegalAccessException, InvocationTargetException, NamingException {
- newInstance(o, o.getClass());
+ throws IllegalAccessException, InvocationTargetException, NamingException {
+ newInstance(o, o.getClass());
}
private Object newInstance(Object instance, Class clazz) throws IllegalAccessException, InvocationTargetException, NamingException {
@@ -245,62 +245,67 @@
return;
}
- // Initialize fields annotations
- Field[] fields = instance.getClass().getDeclaredFields();
- for (Field field : fields) {
- if (injections != null && injections.containsKey(field.getName())) {
- lookupFieldResource(context, instance, field, injections.get(field.getName()));
- } else if (field.isAnnotationPresent(Resource.class)) {
- Resource annotation = field.getAnnotation(Resource.class);
- lookupFieldResource(context, instance, field, annotation.name());
- } else if (field.isAnnotationPresent(EJB.class)) {
- EJB annotation = field.getAnnotation(EJB.class);
- lookupFieldResource(context, instance, field, annotation.name());
- } else if (field.isAnnotationPresent(WebServiceRef.class)) {
- WebServiceRef annotation =
- field.getAnnotation(WebServiceRef.class);
- lookupFieldResource(context, instance, field, annotation.name());
- } else if (field.isAnnotationPresent(PersistenceContext.class)) {
- PersistenceContext annotation =
- field.getAnnotation(PersistenceContext.class);
- lookupFieldResource(context, instance, field, annotation.name());
- } else if (field.isAnnotationPresent(PersistenceUnit.class)) {
- PersistenceUnit annotation =
- field.getAnnotation(PersistenceUnit.class);
- lookupFieldResource(context, instance, field, annotation.name());
+ Class<?> clazz = instance.getClass();
+
+ while (clazz != null) {
+ // Initialize fields annotations
+ Field[] fields = clazz.getDeclaredFields();
+ for (Field field : fields) {
+ if (injections != null && injections.containsKey(field.getName())) {
+ lookupFieldResource(context, instance, field, injections.get(field.getName()));
+ } else if (field.isAnnotationPresent(Resource.class)) {
+ Resource annotation = field.getAnnotation(Resource.class);
+ lookupFieldResource(context, instance, field, annotation.name());
+ } else if (field.isAnnotationPresent(EJB.class)) {
+ EJB annotation = field.getAnnotation(EJB.class);
+ lookupFieldResource(context, instance, field, annotation.name());
+ } else if (field.isAnnotationPresent(WebServiceRef.class)) {
+ WebServiceRef annotation =
+ field.getAnnotation(WebServiceRef.class);
+ lookupFieldResource(context, instance, field, annotation.name());
+ } else if (field.isAnnotationPresent(PersistenceContext.class)) {
+ PersistenceContext annotation =
+ field.getAnnotation(PersistenceContext.class);
+ lookupFieldResource(context, instance, field, annotation.name());
+ } else if (field.isAnnotationPresent(PersistenceUnit.class)) {
+ PersistenceUnit annotation =
+ field.getAnnotation(PersistenceUnit.class);
+ lookupFieldResource(context, instance, field, annotation.name());
+ }
}
- }
-
- // Initialize methods annotations
- Method[] methods = instance.getClass().getDeclaredMethods();
- for (Method method : methods) {
- String methodName = method.getName();
- if (injections != null && methodName.startsWith("set") && methodName.length() > 3) {
- String fieldName = Character.toLowerCase(methodName.charAt(3)) + methodName.substring(4);
- if (injections.containsKey(fieldName)) {
- lookupMethodResource(context, instance, method, injections.get(fieldName));
- break;
+
+ // Initialize methods annotations
+ Method[] methods = clazz.getDeclaredMethods();
+ for (Method method : methods) {
+ String methodName = method.getName();
+ if (injections != null && methodName.startsWith("set") && methodName.length() > 3) {
+ String fieldName = Character.toLowerCase(methodName.charAt(3)) + methodName.substring(4);
+ if (injections.containsKey(fieldName)) {
+ lookupMethodResource(context, instance, method, injections.get(fieldName));
+ break;
+ }
}
+ if (method.isAnnotationPresent(Resource.class)) {
+ Resource annotation = method.getAnnotation(Resource.class);
+ lookupMethodResource(context, instance, method, annotation.name());
+ } else if (method.isAnnotationPresent(EJB.class)) {
+ EJB annotation = method.getAnnotation(EJB.class);
+ lookupMethodResource(context, instance, method, annotation.name());
+ } else if (method.isAnnotationPresent(WebServiceRef.class)) {
+ WebServiceRef annotation =
+ method.getAnnotation(WebServiceRef.class);
+ lookupMethodResource(context, instance, method, annotation.name());
+ } else if (method.isAnnotationPresent(PersistenceContext.class)) {
+ PersistenceContext annotation =
+ method.getAnnotation(PersistenceContext.class);
+ lookupMethodResource(context, instance, method, annotation.name());
+ } else if (method.isAnnotationPresent(PersistenceUnit.class)) {
+ PersistenceUnit annotation =
+ method.getAnnotation(PersistenceUnit.class);
+ lookupMethodResource(context, instance, method, annotation.name());
+ }
}
- if (method.isAnnotationPresent(Resource.class)) {
- Resource annotation = method.getAnnotation(Resource.class);
- lookupMethodResource(context, instance, method, annotation.name());
- } else if (method.isAnnotationPresent(EJB.class)) {
- EJB annotation = method.getAnnotation(EJB.class);
- lookupMethodResource(context, instance, method, annotation.name());
- } else if (method.isAnnotationPresent(WebServiceRef.class)) {
- WebServiceRef annotation =
- method.getAnnotation(WebServiceRef.class);
- lookupMethodResource(context, instance, method, annotation.name());
- } else if (method.isAnnotationPresent(PersistenceContext.class)) {
- PersistenceContext annotation =
- method.getAnnotation(PersistenceContext.class);
- lookupMethodResource(context, instance, method, annotation.name());
- } else if (method.isAnnotationPresent(PersistenceUnit.class)) {
- PersistenceUnit annotation =
- method.getAnnotation(PersistenceUnit.class);
- lookupMethodResource(context, instance, method, annotation.name());
- }
+ clazz = clazz.getSuperclass();
}
}
16 years, 5 months
JBossWeb SVN: r708 - trunk/java/org/jboss/web/cluster.
by jbossweb-commits@lists.jboss.org
Author: jfrederic.clere(a)jboss.com
Date: 2008-07-11 08:34:56 -0400 (Fri, 11 Jul 2008)
New Revision: 708
Modified:
trunk/java/org/jboss/web/cluster/ClusterListener.java
Log:
Move the synchronized from reset() to status().
Modified: trunk/java/org/jboss/web/cluster/ClusterListener.java
===================================================================
--- trunk/java/org/jboss/web/cluster/ClusterListener.java 2008-07-11 09:25:48 UTC (rev 707)
+++ trunk/java/org/jboss/web/cluster/ClusterListener.java 2008-07-11 12:34:56 UTC (rev 708)
@@ -897,7 +897,7 @@
/**
* Reset configuration for a particular proxy following an error.
*/
- protected synchronized void reset(int pos) {
+ protected void reset(int pos) {
Service[] services = ServerFactory.getServer().findServices();
for (int i = 0; i < services.length; i++) {
@@ -1027,7 +1027,7 @@
*
* @param engine
*/
- protected void status(Engine engine) {
+ protected synchronized void status(Engine engine) {
// Check to add or remove proxies, and rebuild a new list if needed
synchronized (this) {
16 years, 5 months
JBossWeb SVN: r707 - trunk/java/org/jboss/web/cluster.
by jbossweb-commits@lists.jboss.org
Author: jfrederic.clere(a)jboss.com
Date: 2008-07-11 05:25:48 -0400 (Fri, 11 Jul 2008)
New Revision: 707
Modified:
trunk/java/org/jboss/web/cluster/ClusterListener.java
Log:
Add a synchronized for reset().
Add a space for easier parsing in getProxyConfiguration and getProxyInfo.
Modified: trunk/java/org/jboss/web/cluster/ClusterListener.java
===================================================================
--- trunk/java/org/jboss/web/cluster/ClusterListener.java 2008-07-10 16:50:49 UTC (rev 706)
+++ trunk/java/org/jboss/web/cluster/ClusterListener.java 2008-07-11 09:25:48 UTC (rev 707)
@@ -661,7 +661,7 @@
Proxy[] local = proxies;
StringBuffer result = new StringBuffer();
for (int i = 0; i < local.length; i++) {
- result.append("Proxy[").append(i).append("]:[").append(local[i].address)
+ result.append("Proxy[").append(i).append("]: [").append(local[i].address)
.append(':').append(local[i].port).append("]: \r\n");
result.append(sendRequest("DUMP", true, parameters, i));
result.append("\r\n");
@@ -680,7 +680,7 @@
Proxy[] local = proxies;
StringBuffer result = new StringBuffer();
for (int i = 0; i < local.length; i++) {
- result.append("Proxy[").append(i).append("]:[").append(local[i].address)
+ result.append("Proxy[").append(i).append("]: [").append(local[i].address)
.append(':').append(local[i].port).append("]: \r\n");
result.append(sendRequest("INFO", true, parameters, i));
result.append("\r\n");
@@ -897,8 +897,8 @@
/**
* Reset configuration for a particular proxy following an error.
*/
- protected void reset(int pos) {
-
+ protected synchronized void reset(int pos) {
+
Service[] services = ServerFactory.getServer().findServices();
for (int i = 0; i < services.length; i++) {
Engine engine = (Engine) services[i].getContainer();
16 years, 5 months
JBossWeb SVN: r706 - in trunk: webapps/docs and 1 other directory.
by jbossweb-commits@lists.jboss.org
Author: remy.maucherat(a)jboss.com
Date: 2008-07-10 12:50:49 -0400 (Thu, 10 Jul 2008)
New Revision: 706
Modified:
trunk/java/org/apache/catalina/util/ExtensionValidator.java
trunk/webapps/docs/changelog.xml
Log:
- JBAS-4965: Ignore exploded .jars instead of running into a classcast.
Modified: trunk/java/org/apache/catalina/util/ExtensionValidator.java
===================================================================
--- trunk/java/org/apache/catalina/util/ExtensionValidator.java 2008-07-09 15:56:30 UTC (rev 705)
+++ trunk/java/org/apache/catalina/util/ExtensionValidator.java 2008-07-10 16:50:49 UTC (rev 706)
@@ -179,15 +179,17 @@
if (!binding.getName().toLowerCase().endsWith(".jar")) {
continue;
}
- Resource resource = (Resource)dirContext.lookup
- ("/WEB-INF/lib/" + binding.getName());
- Manifest jmanifest = getManifest(resource.streamContent());
- if (jmanifest != null) {
- ManifestResource mre = new ManifestResource(
- binding.getName(),
- jmanifest,
- ManifestResource.APPLICATION);
- appManifestResources.add(mre);
+ Object resourceObject = dirContext.lookup("/WEB-INF/lib/" + binding.getName());
+ if (resourceObject instanceof Resource) {
+ Resource resource = (Resource) resourceObject;
+ Manifest jmanifest = getManifest(resource.streamContent());
+ if (jmanifest != null) {
+ ManifestResource mre = new ManifestResource(
+ binding.getName(),
+ jmanifest,
+ ManifestResource.APPLICATION);
+ appManifestResources.add(mre);
+ }
}
}
} catch (NamingException nex) {
Modified: trunk/webapps/docs/changelog.xml
===================================================================
--- trunk/webapps/docs/changelog.xml 2008-07-09 15:56:30 UTC (rev 705)
+++ trunk/webapps/docs/changelog.xml 2008-07-10 16:50:49 UTC (rev 706)
@@ -16,6 +16,16 @@
<body>
+<section name="JBoss Web 2.1.1.CR5 (remm)">
+ <subsection name="Catalina">
+ <changelog>
+ <fix>
+ <jboss-jira>JBAS-4965</jboss-jira>: Ignore exploded JARs in extension validator to avoid classcast. (remm)
+ </fix>
+ </changelog>
+ </subsection>
+</section>
+
<section name="JBoss Web 2.1.1.CR4 (remm)">
<subsection name="General">
<changelog>
16 years, 5 months
JBossWeb SVN: r705 - trunk/java/org/jboss/web/cluster.
by jbossweb-commits@lists.jboss.org
Author: jfrederic.clere(a)jboss.com
Date: 2008-07-09 11:56:30 -0400 (Wed, 09 Jul 2008)
New Revision: 705
Modified:
trunk/java/org/jboss/web/cluster/ClusterListener.java
Log:
Add INFO for the testsuite.
Modified: trunk/java/org/jboss/web/cluster/ClusterListener.java
===================================================================
--- trunk/java/org/jboss/web/cluster/ClusterListener.java 2008-07-07 09:11:13 UTC (rev 704)
+++ trunk/java/org/jboss/web/cluster/ClusterListener.java 2008-07-09 15:56:30 UTC (rev 705)
@@ -668,6 +668,25 @@
}
return result.toString();
}
+ /**
+ * Retrieves the full proxy info message.
+ *
+ *
+ * @return the proxy confguration
+ */
+ public String getProxyInfo() {
+ HashMap<String, String> parameters = new HashMap<String, String>();
+ // Send INFO * request
+ Proxy[] local = proxies;
+ StringBuffer result = new StringBuffer();
+ for (int i = 0; i < local.length; i++) {
+ result.append("Proxy[").append(i).append("]:[").append(local[i].address)
+ .append(':').append(local[i].port).append("]: \r\n");
+ result.append(sendRequest("INFO", true, parameters, i));
+ result.append("\r\n");
+ }
+ return result.toString();
+ }
/**
16 years, 5 months
JBossWeb SVN: r704 - tags.
by jbossweb-commits@lists.jboss.org
Author: remy.maucherat(a)jboss.com
Date: 2008-07-07 05:11:13 -0400 (Mon, 07 Jul 2008)
New Revision: 704
Added:
tags/JBOSSWEB_2_1_1_CR4/
Log:
- JBoss Web 2.1.1 CR 4.
Copied: tags/JBOSSWEB_2_1_1_CR4 (from rev 703, trunk)
16 years, 5 months
JBossWeb SVN: r703 - trunk.
by jbossweb-commits@lists.jboss.org
Author: remy.maucherat(a)jboss.com
Date: 2008-07-07 04:25:38 -0400 (Mon, 07 Jul 2008)
New Revision: 703
Modified:
trunk/KEYS
Log:
- New key.
Modified: trunk/KEYS
===================================================================
--- trunk/KEYS 2008-07-04 09:47:10 UTC (rev 702)
+++ trunk/KEYS 2008-07-07 08:25:38 UTC (rev 703)
@@ -1,340 +1,66 @@
-This file contains the PGP&GPG keys of various Apache developers.
+This file contains the PGP&GPG keys of various developers.
Please don't use them for email unless you have to. Their main
purpose is code signing.
-Apache users: pgp < KEYS
-Apache developers:
+Users: pgp < KEYS
+Developers:
(pgpk -ll <your name> && pgpk -xa <your name>) >> this file.
or
(gpg --fingerprint --list-sigs <your name>
&& gpg --armor --export <your name>) >> this file.
-Apache developers: please ensure that your key is also available via the
+Developers: please ensure that your key is also available via the
PGP keyservers (such as pgpkeys.mit.edu).
Type Bits/KeyID Date User ID
-pub 2048/F22C4FED 2001/07/02 Andy Armstrong <andy(a)tagish.com>
+pub 1024D/288584E7 2008-07-02
+ Key fingerprint = 541F BE7D 8F78 B25E 055D DEE1 3C37 0389 2885 84E7
+uid Rémy Maucherat <remm(a)apache.org>
+sig 3 288584E7 2008-07-02 Rémy Maucherat <remm(a)apache.org>
+sig 6210BFC0 2008-07-02 [User ID not found]
+sub 4096g/4B6FAEFB 2008-07-02
+sig 288584E7 2008-07-02 Rémy Maucherat <remm(a)apache.org>
-----BEGIN PGP PUBLIC KEY BLOCK-----
-Version: PGPfreeware 7.0.3 for non-commercial use <http://www.pgp.com>
+Version: GnuPG v1.4.9 (GNU/Linux)
-mQGiBDtAWuURBADZ0KUEyUkSUiTA09e7tvEbX25STsjxrR+DNTainCls+XlkVOij
-gBv216lqge9tIsS0L6hCP4OQbFf/64qVtJssX4QXdyiZGb5wpmcj0Mz602Ew8r+N
-I0S5NvmogoYWW7BlP4r61jNxO5zrr03KaijM5r4ipJdLUxyOmM6P2jRPUwCg/5gm
-bpqiYl7pXX5FgDeB36tmD+UD/06iLqOnoiKO0vMbOk7URclhCObMNrHqxTxozMTS
-B9soYURbIeArei+plYo2n+1qB12ayybjhVu3uksXRdT9bEkyxMfslvLbIpDAG8Cz
-gNftTbKx/MVS7cQU0II8BKo2Akr+1FZah+sD4ovK8SfkMXUQUbTeefTntsAQKyyU
-9M9tA/9on9tBiHFl0qVJht6N4GiJ2G689v7rS2giLgKjetjiCduxBXEgvUSuyQID
-nF9ATrpXjITwsRlGKFmpZiFm5oCeCXihIVH0u6q066xNW2AXkLVoJ1l1Rs2Z0lsb
-0cq3xEAcwAmYLKQvCtgDV8CYgWKVmPi+49rSuQn7Lo9l02OUbLQgQW5keSBBcm1z
-dHJvbmcgPGFuZHlAdGFnaXNoLmNvbT6JAFgEEBECABgFAjtAWuUICwMJCAcCAQoC
-GQEFGwMAAAAACgkQajrT9PIsT+1plgCfXAovWnVL3MjrTfcGlFSKw7GHCSYAoJkz
-x+r2ANe8/0e+u5ZcYtSaSry+uQINBDtAWuUQCAD2Qle3CH8IF3KiutapQvMF6PlT
-ETlPtvFuuUs4INoBp1ajFOmPQFXz0AfGy0OplK33TGSGSfgMg71l6RfUodNQ+PVZ
-X9x2Uk89PY3bzpnhV5JZzf24rnRPxfx2vIPFRzBhznzJZv8V+bv9kV7HAarTW56N
-oKVyOtQa8L9GAFgr5fSI/VhOSdvNILSd5JEHNmszbDgNRR0PfIizHHxbLY7288kj
-wEPwpVsYjY67VYy4XTjTNP18F1dDox0YbN4zISy1Kv884bEpQBgRjXyEpwpy1obE
-AxnIByl6ypUM2Zafq9AKUJsCRtMIPWakXUGfnHy9iUsiGSa6q6Jew1XpMgs7AAIC
-B/0eHkYQ0Rv6s21TgpOzRBon+rQAv9ka0PlC7bj2eYWsCOBib8K7qO8hND0sW59p
-0uFQ01X7kC7L/4Ls1HTk0chEZMV0UrGAOKXHY1QFlxrNtFi5U3pTPITXDDfy+g/G
-6FTX3PLnGGvwXbtaiAq5UjQ6iXm03lh0BW6Q+kPtm8swPPfqfjYv0rrT+I8Ic3p2
-HplWKR2bpi3wqCSKB/AaTQJwTbh2x2+2cPVONPodgjZSJ9eQkErejkNSvqbumlTx
-dB81eoGa0Lo2xE7N+DNlCnILGE0X4hPMdj+N5fmyEbyx0WOB8crvCuODGGEQnXs/
-zbVO7FP+rj7YWjRh5pVD3bGiiQBMBBgRAgAMBQI7QFrlBRsMAAAAAAoJEGo60/Ty
-LE/tj/QAoOFNFa7rbAy+eT6mRNb7XztfcAbWAKD6Gd6S/7lEJU0k2TS5tozt4jMl
-vw==
-=/91Q
+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
+SiHKkU7BarrCyjm1Kg==
+=1Oke
-----END PGP PUBLIC KEY BLOCK-----
-
-Type Bits/KeyID Date User ID
-pub 1024D/86867BA6 2001-11-22 Jean-Frederic Clere (jfclere) <JFrederic.Clere(a)fjitsu-siemens.com>
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: GnuPG v1.0.5 (GNU/Linux)
-Comment: For info see http://www.gnupg.org
-
-mQGiBDv9Gx8RBADclmKwDLcibNVipQnhYW+bFIpuQjQnRrqRwn3gXM+/luzzJYJ4
-bbWpw13zjX0EkrAJ8qH2A/d0EIU1eZ0zHrLgRvMUfLGFUX7FFFw18JKFLTVGhG4/
-8sSl3ydHSA2Kd1PF6xjBP7iM7sg5dJfEkyMzvK5H4F0ZpTqy3087wsg1wwCgitRy
-Zg4x3lWZSkOwBj472qaO9GkD/2q6kyWfAK6XFe3GuB5AAs3poMfN1eqW+duM4TA8
-zUiWK0Wxx4JXJbL7n0i4d+JdXJsrjSjF++KKfelcxsrSxoUIBegez25MUSvHe09D
-R3nqkY8CVO+viEtzRBqkSgCMbUjAtfkQ+vp2jDnWSmmkNfY0OYAzt+KRyJKcjUSJ
-gvOOA/45+DN9wuTELoFTvsXh1JgOL/QvW1fmQ2HrcQk94BkzIsfVGWClCiig5gNw
-LCxTbfgA5htpI8U7vPR9/5gH7U8Wy3HR6xQUZxcbttMeYit2VbDEJzF5r5S0pJvD
-vyk3n1kiKU7r49sjhxGgE8J/VvDpO6YcIsDs8LoULwuJTg0DTrRDSmVhbi1GcmVk
-ZXJpYyBDbGVyZSAoamZjbGVyZSkgPEpGcmVkZXJpYy5DbGVyZUBmdWppdHN1LXNp
-ZW1lbnMuY29tPohXBBMRAgAXBQI7/RsfBQsHCgMEAxUDAgMWAgECF4AACgkQ0+/m
-toaGe6amGQCeJU5VZ8QCi8+PY0QJHPA63e5uPyoAmgOWIwFm8A/xmW8qjEvVAWtb
-TjZxuQENBDv9GyMQBACCbFlSF+udW/Qz2oknDen8Hoql4Q1Q7CUQTbPjoQAcYgZg
-LrsR6hc9aCIf3Kt4qZBgQ1Oe9M/AemOFhU04UNp3dgHk91EYRvx80Rua992p/8V7
-QOhwIBVb2XE8as5nL2j8w6Jz7eSs/bivxm9yD0AH/I5H01RAJivRbOTsUgSkDwAD
-BQP5ARlW2Nqc0U17asQsmMYvT1UMiOiyBwUD/DIEG2Xy1hlEvdljg8WU26jcjpGq
-MrT69T4Z+eZ2oVyiRQTW4qMUBKc0Nbz89hL0qv9K41ExxxH+JgE1csRVvmwAT8Iy
-lnhof7TJLRBtvan3+p21Kxl1uQ7MbmLT875u+vc+J098fIiIRgQYEQIABgUCO/0b
-IwAKCRDT7+a2hoZ7pn9UAJ9f0TK0QQOtjQBvxAissopYhDKHGACePZg0k9sj69yw
-nVWrBS9fvFC9jcA=
-=BTiM
------END PGP PUBLIC KEY BLOCK-----
-
-Type Bits/KeyID Date User ID
-pub 1024D/E86E29AC 2002-02-13 kevin seguin <seguin(a)apache.org>
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: GnuPG v1.0.6 (MingW32)
-Comment: For info see http://www.gnupg.org
-
-mQGiBDxqtR8RBACbySxGrtf+flbowryS1Hj4z3zzEXD4CAEq6RjSGMtIraCDRJfp
-6Gexs+lQ6IhpdC4GfX70SUMjXXvT5suhXYeGOM4iJHqUsksgzEKjUqcfj1l3qmOs
-/doE8lcGGHcYbMplBcfuop+shZYiv9GEJ3gutwn/dNnhs/QA9bCdIj03lwCgvAcy
-QpT5JdTym2p2icd5e91mGIUEAJMw6JHTTcCiyoTRy7k8Cf65d8S7bTDLr6pqJVE2
-XU41CvW/pgL31akYAxpeZJJnsBaLaUiqh6K0qgfEMlDwDeC6gVogHBxWkEXdK1dr
-tGL4GIUcxQ1+ZvQhGg7dtjanmfMlylVgS+C48awJySkinRmaQDbQ0MKdFchLc/y1
-OR3IA/0VkIvlidehMPbZCalqhS9AEsDiFq5/u5AsQzDEp2nmTGlmBqjhc39kEnu4
-qKq08az1Gt6Q7sxXbjH/jYtDgd49FW5Yg4k5B3hpTgnbyRE6SGlKksu8qTmYkDve
-4rej6pvJRHwp6hDKxDG8qQoLWIgOfVC8960nurqx56QdV9YMsLQga2V2aW4gc2Vn
-dWluIDxzZWd1aW5AYXBhY2hlLm9yZz6IVwQTEQIAFwUCPGq1HwULBwoDBAMVAwID
-FgIBAheAAAoJEKy3f8Lobims3E0An0x3rrUMIijUMFoqnoT7muNGwmAzAJ990TWj
-dZO4ayh1M+cWhjaw9W+44bkBDQQ8arUkEAQApaMm5HUB1Yk2x5MavAs/O4zfWnOx
-YFOeXIPfGvhlhF2/Lrjs9icaa/tOM/CTCes19nDWP5Fc+pQxmgSPrgt3fsShwZJe
-p3iYodLbM76uXEgSvI4Wh6kwViHbN4V1GxJAd2ZPVb1v+lauGUCOgPFGw99UV9sO
-tTRXSbFS6AgqQzMAAwUD/jq6boxlnab/GUmKrILeLkv1X0G2/AEXEGRmG0nkhVdj
-OShoqtPr4y/UhMzJUOequs2CdvRlTIyAyZqN7A0Qp4mFfmsvp0dYYssTtE4bCzZe
-WxSKgjtBWBHXnH+Qzjb5R2Tz28kAxNY+dt7yxC+CkXWDZq/rsPgsXNbWXT49FnF8
-iEYEGBECAAYFAjxqtSQACgkQrLd/wuhuKazl7QCfQkz5t/3T6EtXZCcXz/hlswyI
-z30AoLr/7hwXgedEepBk/Gm9HUsbMnM8
-=S1mb
------END PGP PUBLIC KEY BLOCK-----
-
-
-Type bits keyID Date User ID
-pub 1024D/307A10A5 2002-07-18 Henri Gomez *** RPM SIGNING KEY ***
- <hgomez(a)users.sourceforge.net>
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: GnuPG v1.0.6 (GNU/Linux)
-Comment: For info see http://www.gnupg.org
-
-mQGiBD02vbERBAC1v8fR6gjERpaz4UMfdy0hRVWCPSbOdF+Swm/IenjVzErco6zb
-MTa13umUNrDPBy/tTWiCCZrOnqi7fgDzWqPEqrXJjKAFVLEWE6MmKylPPEPG1/bm
-idkNGERSAZduvhKv777PzvEJJ/8eGe3wy/O8NbgIjCPtr4UklwCZS8cFuwCg8oMO
-UdT8qZRtzdxdAyu1m5fUb+MD/3IKJYWXsdtb6iBphCU4f/BoyjVC9EZJ1ywLuiVM
-siKbuaDUaXU9nWcbNKv+fx8uZ1NaadpfLokqqhnWcpnSiqw8HNR7SwsF1D33rkXK
-O4FSuVss/tIoqGdWFcJyPkP4yP5shxqR335narVw2vDa0+BiWkALbA2qVsSIdZDB
-LeFZA/47AMBS0U2BRk2rQT8LmMuFl7mR+wNBM4n7FUGdxsGn3TcYd4pXTNrEQPrV
-YNdooKlikgGk4hgFnIFX09Spmimqgq0goFue81rttVdZZ4uep8dTghY6gwmvcOxX
-jATbhWStBhdu9B35kzfHc+1QihD5Z94u4uyWIVBIzikcdiY8LbQqSGVucmkgR29t
-ZXogPGhnb21lekB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+iFcEExECABcFAj02vbEF
-CwcKAwQDFQMCAxYCAQIXgAAKCRAZMdaEMHoQpYijAKCCP68ndU/kTXR9XAKLvibC
-3S8+1QCfUFQYte3Jo+MHKaWjsu9JGptRzo+5Ag0EPTa93RAIAKlsRJ5gOGTFsmaR
-W9k6MIh4c/MCy7J7HUxT5xTdHROa+3zUh+FAE/JaOx9ZtZtH863DFHA8cP4L+tpi
-PjBT6g2E94dwGcuH/OiSSCT4JSBukbGbOuLLdmFXqUl8+4gsL90Xal67FtNLwyLG
-1n7geLir0byD+OT7VLA5w+6G0NOpJEveV/FIa2qLgdRZ8vz73ybgMh18hBUrUmro
-jncp0rln2VU7VCH1C2aClKm7kK4mGAjIFIzKbguK+kM3b8NDHmXKpT6syyCtIM3h
-prkV1TUCAFqLI32aSdlTN79lpeA2zDga9k4/4X/RDHsFpRN2neRFGTNUtuUgYpQQ
-E5zWBmMAAwUH/RiGxyeBsad923IwE1+GAjxFl2tqF9xWk0J6yTnSK4nfhYAE9evV
-jwDEok9jRl4ILCcXx6YN/d/lWNuSbARKHz/3hLiTouPpwd3SSJ8is2x9PgpJz5JX
-cD0y1SkbPLvs3jH3ZmdcxZpuAmJeI/typqFKK5pWP44oXIH+XH/8nWDtmLEBkgKQ
-/ATQWenMTmZ6MIJ6aWKWGkO9QS6iYRz3PPPGQ1O8W02CeprM2wBtlb8J1Z3RxNhM
-rZcg/1Qi3V3D1HI4zw6tAFmDeBb8J4PaBQzqlhzx2EBTbfwNPhV8AlPvpxHEeGGn
-v+O1yhZr33SnyZdINNoNDn+owVMdmkobe9GIRgQYEQIABgUCPTa93QAKCRAZMdaE
-MHoQpRsTAJ4qst3MhLm48fBAEnzuzi/BIKr+AgCfYaCB/AvPoncQbHc8BcNGRimR
-P9A=
-=hQhz
------END PGP PUBLIC KEY BLOCK-----
-
-Type Bits/KeyID Date User ID
-pub 1024D/564C17A3 2003-01-11 Mladen Turk <mturk(a)apache.org>
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: GnuPG v1.0.6 (MingW32)
-
-mQGiBD4fwXIRBAC7WRS8PYxi2YH0T1mX4HCYsF8aHoqxBzMnyFR4J896m1s96vGM
-BTSAwH2NKbiVqtfLokTbQkUVxtrgrF2HMB5NfYBg/JzT7pZL/Q2ThWUS7SJQQA4f
-a7/DpiLiHalp6iX45om6JTdIWEyXv26csIVhmtlkGBEPRhNRX8X4//BM0wCg7wcA
-yQ7c5NmoOJLVs+uHsRrnHo0D/R/dMyuWt7/o0eGIEuRlDl2q+YL8xLuVyJMXQBnd
-jo7jKpQ+Q1zl93aVTzsJa7mP2zZ7jqaJ855sdz6rvwyhGF1/qYMtm6zrmgBy2XPm
-J+57sfwSZr0bhIeMpCWjIw98z9sObq0v2r2oA3+J9E3Na/BZsCVTZVb3ew7ILmEp
-F5D7A/4zvjY41dakCAJsD1Xo8TS6hSqJf4zq9vX3ayJVvUjeo8n4sHNOwcbEnnui
-9zZaUH3F0x+3cDo7mS1Y4pD8THuqCZoSbSkiHnlved6nLXsKbqvVrVo+esEhfZCn
-Iji3gp+2TVNwdHXGM+4BAzMJCLsdXjByO6SNzB9a+H8RsRlZKrQ8TWxhZGVuIFR1
-cmsgKCoqKiBERUZBVUxUIFNJR05JTkcgS0VZICoqKikgPG10dXJrQGFwYWNoZS5v
-cmc+iF0EExECAB0FAj4fwXIFCRLP94AFCwcKAwQDFQMCAxYCAQIXgAAKCRAcUGQH
-VkwXo0jxAKCgHzXPIB4IAgoD7GMAohPQfX7j2QCeL6pAsf4pPufmPvbrrpDp6rQH
-GOS5Ag0EPh/BhhAIAKWzq7+/+nNYGpc7sXGkDNo9xncxcx/KbbJVT0rBteuaonQ4
-vYar1ITjIhOPmF9yPmpUddNrqgQTSO+Or+ZrVOndn+qC1gdY3qpKIN3KTjXloW38
-0Y84ezwdRLznQNkhgXwNcB55l/Z9kLaW2MS8CJzOuYSQT1CYbXg7XP3684ZmV1KC
-cGgcUt9VkIGqwsa2RFDNGvMbySedSkJ/70Q+PJlkXN+W86f8hi3HTjw2MCkNa5NL
-+Byg8FEAm95YWrO6kCY3qaJYV7NRt9oVd+2V/NNzwYp3Or/QoYofvfNerupfwBmU
-GEXPyZCqqNH6nDv6chscsWvEA9KzhsWnsdKhmHsAAwUH/R6LwfWgtpaO42dQI4ZS
-VRBmCeWrXCuyVk0d13Yz0xLi5Z5m4g3MON3d+cRVUiyNX+hbDGpi2mkbsnL559Ef
-iqmzDmSz5GQHDutolhOPtLxLrC537ODn2q7hnYQwIQYYIUtYD5sYlzfGYC8olGCB
-IcKIdlGRWcxxiFCIJm5CX/jnSBsyDRpanlSrdkxhzAGsifqj4NQ19ayoeNoZg2ZP
-9SLIY7vbmOxJeHEYkx8AG25xOY1PLotb/0buSXPB8e71zb/DCV1rAhhUxAr/2JOQ
-RqlZBq6PfcHKLRitXRCeVvfldRxuWBIzhuTLUfRPYR6phjP50EzZPlbJzIvGwsOI
-RheITAQYEQIADAUCPh/BhgUJEs/3gAAKCRAcUGQHVkwXoy0JAJ9WTfqfYzW/F6qi
-5MxmqDnU9/G+6ACfQVmhZNnGTSfcwQCttwCaW3CRhDY=
-=MWUr
------END PGP PUBLIC KEY BLOCK-----
-
-Type bits keyID Date User ID
-DSS 3072/1024 0x7C037D42 2003/08/05 *** DEFAULT SIGNING KEY ***
- Yoav Shapira <yoavs(a)apache.org>
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: PGP 6.5.8
-
-mQGiBD8u/mgRBAD5WKD5xF3CLrnABeS1DvQQhYH+tJjvAmyZgFkYwaQT7eiiOzLa
-PC5knbcBC4nuw+8OOPDFw0Ghb2MFogQzRxD6gpPH2t9eEUsrkPFax2Kw2vNTHRrQ
-RGAastmi+EYJsQAoktX2dPseTdrkeJBk240Bfj08ZUFg4uPuho9C45ND6QCg/6SO
-FMuan62QE+DwlUiMDo4ZcU0EAMDS8k6Dhb5m/0njO6w9OLTEyzohlsM9AP+4mfgB
-NOJYhrzfkFoElOcWSA/V3nmYn2VS0oIYDDtBnjXVWZidzTAWKsbT9/AepS3/P2tG
-KMhlXhas+uAiAbMpOglz8fdQ76ivQqyRdS99t4iy/cP2ZC3ShAqZQCacfWY5ZQ8Q
-kTILBADvp/eayw8fvtfWQXJ9EjBRbhO4THmP6z8J+4ypG6l0V/RBjDWZybrqibO9
-ejnOjQYJNCnfrfpzQ5l6dHyy86zLyg+bkFxeId4jp/IfDfJX90sGbuQahNYYwqTp
-SFiDMI3KN5ZhzhGnx+pKQh59pcux3HyKmcpPa4oB0CT828lWuLQfWW9hdiBTaGFw
-aXJhIDx5b2F2c0BhcGFjaGUub3JnPokATgQQEQIADgUCPy7+aAQLAwECAhkBAAoJ
-ECZhkcN8A31CGLkAoPRDGtLRwjkzS2F/OBPkRHKF9/atAKCIh3Fmcr2Cdn05P4qF
-kBe3QeWVt7kDDQQ/Lv5qEAwAzB13VyQ4SuLE8OiOE2eXTpITYfbb6yUOF/32mPfI
-fHmwch04dfv2wXPEgxEmK0Ngw+Po1gr9oSgmC66prrNlD6IAUwGgfNaroxIe+g8q
-zh90hE/K8xfzpEDp19J3tkItAjbBJstoXp18mAkKjX4t7eRdefXUkk+bGI78KqdL
-fDL2Qle3CH8IF3KiutapQvMF6PlTETlPtvFuuUs4INoBp1ajFOmPQFXz0AfGy0Op
-lK33TGSGSfgMg71l6RfUodNQ+PVZX9x2Uk89PY3bzpnhV5JZzf24rnRPxfx2vIPF
-RzBhznzJZv8V+bv9kV7HAarTW56NoKVyOtQa8L9GAFgr5fSI/VhOSdvNILSd5JEH
-NmszbDgNRR0PfIizHHxbLY7288kjwEPwpVsYjY67VYy4XTjTNP18F1dDox0YbN4z
-ISy1Kv884bEpQBgRjXyEpwpy1obEAxnIByl6ypUM2Zafq9AKUJsCRtMIPWakXUGf
-nHy9iUsiGSa6q6Jew1XpTDJvAAICC/4iJF383WNktP9/SxeGVIV74r7C7q5Cxr4a
-Liy7pEYs52DEft3JzTCLI5O4+NjOw+hEd3QiIytUJRW66V6zd50h4x9lBfK+eMYz
-GKNN7kd3aBmH/vXEsG9m9bK1ExwyWq4uyf76nRx1Ya9YthNWmxPUHQnSrOYNPU0/
-beA87ouZG4RL9tYqdu3NKJ4g/DYiaw+twvhSoCUkBEFHFfKLDlv8zyQvPTaPUSAM
-Ha5/G2Dj1D5RluMSCEMG1V8+YcYAFh63WEP7Afye0mR1LMJvmlba67ogh0ZSfR+I
-ju3lhJ9XOp/2W372F9ZbRJofgofVwHQV6INB5uX7KHAdXtPTss+l1nTmydLhsiPC
-5oh99ITPdOm8gRzrP10aFwCnwsqXvr+b7fX/CywpuCOQMIr4sbhbYTTClwDo6E0U
-TQ+Nb7PWE+8KuJuobTvMUqDQSQaQBnkpLcvRt3cPppANtkaADAeNf0RqKxxLlym4
-AltN8G8IMLtSJoH9xlQHTQA4tEUeKOeJAEYEGBECAAYFAj8u/moACgkQJmGRw3wD
-fUJh7ACdE7QuMkzSbxEzTXnbkS61AUPy06QAoI5b613vrWeqg5Gz9C7TzG+FEEoh
-=O17Z
------END PGP PUBLIC KEY BLOCK-----
-
-pub 1024D/33C60243 2004-09-12 Mark E D Thomas <markt(a)apache.org>
- Key fingerprint = DCFD 35E0 BF8C A734 4752 DE8B 6FB2 1E89 33C6 0243
-sig 33C60243 2004-09-12 Mark E D Thomas <markt(a)apache.org>
-sub 2048g/0BECE548 2004-09-12
-sig 33C60243 2004-09-12 Mark E D Thomas <markt(a)apache.org>
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: GnuPG v1.2.1 (MingW32)
-
-mQGiBEFEjegRBADocGttfROvtLGrTOW3xRqZHmFWybmEaI6jmnRdN/1gGXmb3wQL
-rHsS3fLFIIOYLPph0Kov9q4qNq36LekShIvjMBDFoj2/wRxaUtFq81asaRZg8Mcw
-4kVeIoe8OIOuWmvYhU8SH2jJNUnVVrpTPAa6QWquTmseNi6UJMjLxuL7DwCg//9u
-k2yj0vk6e4WSO6Fe5+EkQDED/AjQsy0kj9TpNHkKSSUR2evRlWPYA0YtxBSbsgON
-tT0cYipAp5IcYt6Zq5QzHiZreyQXLAjItDS2oGCIXfNbTYJ3kxxJTCU/3wlefVdq
-LBh4ttm7gmWaiTDTgG4axLF5oMpAb3m4v6s1KvXVVj2pqkhBknfuoRh1wPqbtwks
-7HOIBADVezl1/vny5YzdoqsDx1ByXMLi7CuMexQPllhRbdN+an+ZiJ5YP8J9rPdl
-NCELsCCcDKLGLjlp43XfMxsgYAPEZNG2ObjKTarhk3uGYN3aJrx7s+G+c2bu8o2n
-SyAFQ1iDsjS87PgSPCONA2/36ZShmv1OjLWz5Vo7hGSPcW4ZdLQiTWFyayBFIEQg
-VGhvbWFzIDxtYXJrdEBhcGFjaGUub3JnPohdBBARAgAdBQJBRI3oBwsJCAcDAgoC
-GQEFGwMAAAAFHgEAAAAACgkQb7IeiTPGAkOkvgCg0AcTAfe8m2ZSWkbsoqplLDsM
-0+oAoNl4EjXT+T2j2z8jdUYPaA8LztJguQINBEFEjekQCAD2Qle3CH8IF3Kiutap
-QvMF6PlTETlPtvFuuUs4INoBp1ajFOmPQFXz0AfGy0OplK33TGSGSfgMg71l6RfU
-odNQ+PVZX9x2Uk89PY3bzpnhV5JZzf24rnRPxfx2vIPFRzBhznzJZv8V+bv9kV7H
-AarTW56NoKVyOtQa8L9GAFgr5fSI/VhOSdvNILSd5JEHNmszbDgNRR0PfIizHHxb
-LY7288kjwEPwpVsYjY67VYy4XTjTNP18F1dDox0YbN4zISy1Kv884bEpQBgRjXyE
-pwpy1obEAxnIByl6ypUM2Zafq9AKUJsCRtMIPWakXUGfnHy9iUsiGSa6q6Jew1Xp
-Mgs7AAICCACuLSE3vBSOeTMM04ezuPt4zZUp0PFQGQL3bzuZp24f18S8P3BemGAk
-2V3HZYJmzmNgd4L0vIC9xyFduICFgbiV9uyzKPwHvCgQwaupFvFLGn7Q9LJ0nlaw
-GN7Km13vJTG3rrT/UMKwLTk+IMEYQwUgBht6HTnBaM+UqVx/eB4PHobimt5Redz9
-CnT4DrlA0M6Oh3ePWBD69Nnhwo2AN42dX/W2KcnDe2iRNu/JEbOYsssj0e3VmHwE
-mwa064TpQpw1fClyW7sf4aWOcQvcT12R0hNvRhTR1TV0pzjIMkbRPkRezhIY55AT
-TIfcaZrw+Yubmmw/pp/1wIDRzHexOq9riEwEGBECAAwFAkFEjekFGwwAAAAACgkQ
-b7IeiTPGAkN8ogCg4tHmgylXw4Y3ujF+J4cf2ollGa0AnRkyX8X+u/NrMi2g2xhE
-vpsTbAGW
-=r1gT
------END PGP PUBLIC KEY BLOCK-----
-
-pub 1024D/41E49465 2006-11-08
- Key fingerprint = 80FF 76D8 8A96 9FE4 6108 558A 80B9 53A0 41E4 9465
-uid Remy Maucherat <remm(a)apache.org>
-sig 3 41E49465 2006-11-08 Remy Maucherat <remm(a)apache.org>
-sub 4096g/D07A28EB 2006-11-08
-sig 41E49465 2006-11-08 Remy Maucherat <remm(a)apache.org>
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: GnuPG v1.4.2.2 (FreeBSD)
-
-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
-=lDGt
------END PGP PUBLIC KEY BLOCK-----
-
-pub 1024D/0D811BBE 2006-11-14
- Key fingerprint = F3A0 4C59 5DB5 B6A5 F1EC A43E 3B7B BB10 0D81 1BBE
-uid Yoav Shapira <yoavs(a)computer.org>
-sig 3 0D811BBE 2006-11-14 Yoav Shapira <yoavs(a)computer.org>
-sub 2048g/286BACF1 2006-11-14
-sig 0D811BBE 2006-11-14 Yoav Shapira <yoavs(a)computer.org>
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: GnuPG v1.4.5 (MingW32)
-
-mQGiBEVZ4AwRBAC9WDbCjRX9Q81Con7cycGkkui6JZndLhX3Jbzlc/eHG0/fUetP
-0c5ZdIvTyjj+L/DRI6btrgl+jR64qkuapsYD/KDXQGkpK5zPpmxUPmXJ5tfVTbOj
-gacUm2cZjYjSK3dsIs4sDUqNYfBfdwesJ+Hycc7XqkTF1lO2MN9yp8g+4wCg0W8x
-/ZYCTb9D8JOPzfSNf8cIFCkD/j5GXA2xlSXuAFBgWpFak5OkeF8cwEkv0CQ0zCqP
-R/rTmDGO/73dpQEzgY+gLMSvtkK0pVEYaE15lg2mxma9d0pGE+fmsu5w7SQUip15
-HN5E3qP/VB4X1yp+YiHPGTDjRgJm+xbvTGSFFr0wNSSYCVpVGdYHNmetYsB5JqkH
-YmiWA/4vnkWnkzQeUNNPvep0lSrEG9jiON4k/d5opWwjxIP4aev8V7//V9ASzznF
-D6eEL23ePX5ZuKLyDeOSRAwaPpa/Rp4AkiUGzKK21wAwKip+lcbT5m2ButoQhgNI
-ZlmnfhN7E2t2S6iS9VzHEo1S8Jv9uQZJ89Tp5fiFe1pXL2qBHrQhWW9hdiBTaGFw
-aXJhIDx5b2F2c0Bjb21wdXRlci5vcmc+iGAEExECACAFAkVZ4AwCGwMGCwkIBwMC
-BBUCCAMEFgIDAQIeAQIXgAAKCRA7e7sQDYEbvgiLAKDHEgeJyxlrxNJ4m51jOnhG
-xlsLOQCbBWAdTjpMVcNqmd6Fa5fgyCbh8XS5Ag0ERVngFBAIAIEVU1iOoq4CyD3I
-f+AChfSFAgqjKmjqEyPv2RDLPkI3g2FvC6HvOlUucIe6IjqvTXztdxSRQu2EGq5i
-W8e5ajTZiI9ZNs26XLL4/q/gYRaDjUsI7J3PAOL9lNdws6ZoqlCh44R/cvekuixx
-HoHGskGxAHBRdjv9Oqy4x5hR5kebGq9Ayf8CQZ3l7aRekwlMUyCsmMkNxmqMls2g
-ViBFD0/9a/xodE2VMVMg5eQ8A0enlrGDghG9d2m586JtOje55rMVnVPkEuNkz9AC
-DkR0CiwQqX72Ub10t/qcNqbDeMHFacOBYRKfS7Qdm3/jb8Tc4jO/AXFcUGbH5niz
-pPGs+UMAAwUH/1M2unaFyfJddVPQRZCJEFxdlxkg40tewgjaNJLwnqOJXw1RENNM
-bSx4Gvz8M6WvZtkvITt29P+O4EmGq+LYTKmLM/E399KuqoZGbyCu3Gm+RIxKmRkf
-Y3izseOhrUX2ycUIOF1BFzIYs6HeO/sZeba1bapOFo/xS6NwnuJl6uXUmynGjVtY
-gvQ+dLYAcDXUQJd+QjyXdsbnp1jmdSrqqscPGOquRAw7/sp/ivom4DDHMTz4HErz
-NfHzn4z8kUE7T1EEpnFU4SBiJkpm/+yEhEq9hDG2GZmxfQd34iRXpC5B4ZbRiwW8
-p/bhzvcxZcrahQzu5yyq2+kGhK7IA9APFGSISQQYEQIACQUCRVngFAIbDAAKCRA7
-e7sQDYEbvppSAJ9+i7TzCNvZ4PK/odiIWeZ61+KKyACfSjQXnC5UbxndwtkOzFKf
-Io8ZP0E=
-=xT1M
------END PGP PUBLIC KEY BLOCK-----
16 years, 5 months