Authored by jack.lee

升级到spring4

... ... @@ -37,9 +37,15 @@
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-tools</artifactId>
</dependency>
<!--
<dependency>
<groupId>org.spring.modules</groupId>
<groupId>org.springmodules</groupId>
<artifactId>spring-modules-validation</artifactId>
</dependency>-->
<dependency>
<groupId>org.springbyexample</groupId>
<artifactId>sbe-validation</artifactId>
<version>0.97</version>
</dependency>
<dependency>
<groupId>dom4j</groupId>
... ...
... ... @@ -221,7 +221,7 @@ public class FormResolverImpl extends SimpleValangBased implements FormResolver,
} else {
if (StringUtils.hasText(customClass)) {
try {
ValidatorRule validatorRule = (ValidatorRule) BeanUtils.instantiateClass(ClassUtils.forName(customClass));
ValidatorRule validatorRule = (ValidatorRule) BeanUtils.instantiateClass(ClassUtils.forName(customClass, null));
rules.add(new GlobalValidationRuleAdaptor(groupName, errorKey, validatorRule));
} catch (Exception e) {
throw new FormParserException(e);
... ... @@ -346,7 +346,7 @@ public class FormResolverImpl extends SimpleValangBased implements FormResolver,
constructorArgs = constructorArgsValue.split(split);
}
try {
Class<?> clazz = ClassUtils.forName(customClass);
Class<?> clazz = ClassUtils.forName(customClass, null);
if (constructorArgs == null || constructorArgs.length == 0) {
formatter = (Formatter) BeanUtils.instantiateClass(clazz);
} else {
... ... @@ -425,7 +425,7 @@ public class FormResolverImpl extends SimpleValangBased implements FormResolver,
} else {
if (StringUtils.hasText(customClass)) {
try {
ValidatorRule validatorRule = (ValidatorRule) BeanUtils.instantiateClass(ClassUtils.forName(customClass));
ValidatorRule validatorRule = (ValidatorRule) BeanUtils.instantiateClass(ClassUtils.forName(customClass, null));
rules.add(new ValidationRuleAdapter(fieldName, errorKey, validatorRule));
} catch (Exception e) {
throw new FormParserException(e);
... ...
... ... @@ -37,7 +37,7 @@ public class GlobalErrorBasicValidationRule extends BasicValidationRule {
public GlobalErrorBasicValidationRule(String field, Predicate predicate, String errorKey,
String errorMessage, Collection errorArgs) {
super(field, predicate, errorKey, errorMessage, errorArgs);
super(field, predicate, null, errorKey, errorMessage, errorArgs);
}
@Override
... ...
... ... @@ -8,7 +8,13 @@ import java.util.Iterator;
import org.apache.commons.collections.Predicate;
import org.apache.commons.collections.functors.AndPredicate;
import org.apache.commons.collections.functors.NotNullPredicate;
import org.apache.commons.collections.functors.NotPredicate;
import org.apache.commons.collections.functors.NullIsExceptionPredicate;
import org.apache.commons.collections.functors.NullIsFalsePredicate;
import org.apache.commons.collections.functors.NullIsTruePredicate;
import org.apache.commons.collections.functors.NullPredicate;
import org.apache.commons.collections.functors.OnePredicate;
import org.apache.commons.collections.functors.OrPredicate;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
... ... @@ -35,9 +41,20 @@ import org.springmodules.validation.valang.functions.SubtractFunction;
import org.springmodules.validation.valang.functions.TargetBeanFunction;
import org.springmodules.validation.valang.functions.UpperCaseFunction;
import org.springmodules.validation.valang.predicates.BasicValidationRule;
import org.springmodules.validation.valang.predicates.BetweenTestPredicate;
import org.springmodules.validation.valang.predicates.EqualsTestPredicate;
import org.springmodules.validation.valang.predicates.GenericTestPredicate;
import org.springmodules.validation.valang.predicates.GreaterThanOrEqualTestPredicate;
import org.springmodules.validation.valang.predicates.GreaterThanTestPredicate;
import org.springmodules.validation.valang.predicates.InTestPredicate;
import org.springmodules.validation.valang.predicates.LessThanOrEqualTestPredicate;
import org.springmodules.validation.valang.predicates.LessThanTestPredicate;
import org.springmodules.validation.valang.predicates.NotBetweenTestPredicate;
import org.springmodules.validation.valang.predicates.NotEqualsTestPredicate;
import org.springmodules.validation.valang.predicates.NotInTestPredicate;
import org.springmodules.validation.valang.predicates.Operator;
import org.springmodules.validation.valang.predicates.ValidationRule;
/**
import org.springmodules.validation.valang.predicates.Operator.BetweenOperator;
import org.springmodules.validation.valang.predicates.Operator.EqualsOperator;
import org.springmodules.validation.valang.predicates.Operator.HasLengthOperator;
... ... @@ -61,7 +78,7 @@ import org.springmodules.validation.valang.predicates.Operator.NotBetweenOperato
import org.springmodules.validation.valang.predicates.Operator.NotEqualsOperator;
import org.springmodules.validation.valang.predicates.Operator.NotInOperator;
import org.springmodules.validation.valang.predicates.Operator.NotNullOperator;
import org.springmodules.validation.valang.predicates.Operator.NullOperator;
import org.springmodules.validation.valang.predicates.Operator.NullOperator;**/
@SuppressWarnings("rawtypes")
public class ValangJavaScriptTranslator {
... ... @@ -222,7 +239,41 @@ public class ValangJavaScriptTranslator {
visit((AndPredicate) value);
} else if (value instanceof OrPredicate) {
visit((OrPredicate) value);
} else {
} else if (value instanceof BetweenTestPredicate) {
visit((BetweenTestPredicate) value);
} else if (value instanceof LessThanOrEqualTestPredicate) {
visit((LessThanOrEqualTestPredicate) value);
} else if (value instanceof LessThanTestPredicate) {
visit((LessThanTestPredicate) value);
} else if (value instanceof NotBetweenTestPredicate) {
visit((NotBetweenTestPredicate) value);
} else if (value instanceof NotEqualsTestPredicate) {
visit((NotEqualsTestPredicate) value);
} else if (value instanceof NotInTestPredicate) {
visit((NotInTestPredicate) value);
} else if (value instanceof InTestPredicate) {
visit((InTestPredicate) value);
} else if (value instanceof EqualsTestPredicate) {
visit((EqualsTestPredicate) value);
} else if (value instanceof GreaterThanOrEqualTestPredicate) {
visit((GreaterThanOrEqualTestPredicate) value);
} else if (value instanceof GreaterThanTestPredicate) {
visit((GreaterThanTestPredicate) value);
} else if (value instanceof NotNullPredicate) {
visit((NotNullPredicate) value);
} else if (value instanceof NullIsExceptionPredicate) {
visit((NullIsExceptionPredicate) value);
} else if (value instanceof NullIsFalsePredicate) {
visit((NullIsFalsePredicate) value);
} else if (value instanceof NullIsTruePredicate) {
visit((NullIsTruePredicate) value);
} else if (value instanceof NullPredicate) {
visit((NullPredicate) value);
} else if (value instanceof OnePredicate) {
visit((OnePredicate) value);
}
else {
throw new UnsupportedOperationException("Unexpected Predicate type '" + value.getClass() + "'.");
}
... ... @@ -292,6 +343,65 @@ public class ValangJavaScriptTranslator {
}
}
}
void visit(BetweenTestPredicate p) throws IOException {
}
void visit(LessThanOrEqualTestPredicate p) throws IOException {
}
void visit(LessThanTestPredicate p) throws IOException {
}
void visit(NotBetweenTestPredicate p) throws IOException {
}
void visit(NotEqualsTestPredicate p) throws IOException {
}
void visit(NotInTestPredicate p) throws IOException {
}
void visit(InTestPredicate p) throws IOException {
}
void visit(GreaterThanOrEqualTestPredicate p) throws IOException {
}
void visit(EqualsTestPredicate p) throws IOException {
}
void visit(GreaterThanTestPredicate p) throws IOException {
}
void visit(NotNullPredicate p) throws IOException {
}
void visit(NullIsExceptionPredicate p) throws IOException {
}
void visit(NullIsFalsePredicate p) throws IOException {
}
void visit(NullIsTruePredicate p) throws IOException {
}
void visit(NullPredicate p) throws IOException {
}
void visit(OnePredicate p) throws IOException {
}
void visit(GenericTestPredicate p) throws IOException {
append(operatorToFunctionName(p.getOperator()));
... ... @@ -303,57 +413,58 @@ public class ValangJavaScriptTranslator {
}
protected String operatorToFunctionName(Operator operator) {
if (operator instanceof EqualsOperator) {
return "this.equals";
} else if (operator instanceof NotEqualsOperator) {
return "! this.equals";
} else if (operator instanceof LessThanOperator) {
return "this.lessThan";
} else if (operator instanceof LessThanOrEqualOperator) {
return "this.lessThanOrEquals";
} else if (operator instanceof MoreThanOperator) {
return "this.moreThan";
} else if (operator instanceof MoreThanOrEqualOperator) {
return "this.moreThanOrEquals";
} else if (operator instanceof InOperator) {
return "this.inFunc";
} else if (operator instanceof NotInOperator) {
return "! this.inFunc";
} else if (operator instanceof BetweenOperator) {
return "this.between";
} else if (operator instanceof NotBetweenOperator) {
return "! this.between";
} else if (operator instanceof NullOperator) {
return "this.nullFunc";
} else if (operator instanceof NotNullOperator) {
return "! this.nullFunc";
} else if (operator instanceof HasTextOperator) {
return "this.hasText";
} else if (operator instanceof HasNoTextOperator) {
return "! this.hasText";
} else if (operator instanceof HasLengthOperator) {
return "this.hasLength";
} else if (operator instanceof HasNoLengthOperator) {
return "! this.hasLength";
} else if (operator instanceof IsBlankOperator) {
return "this.isBlank";
} else if (operator instanceof IsNotBlankOperator) {
return "! this.isBlank";
} else if (operator instanceof IsWordOperator) {
return "this.isWord";
} else if (operator instanceof IsNotWordOperator) {
return "! this.isWord";
} else if (operator instanceof IsUpperCaseOperator) {
return "this.isUpper";
} else if (operator instanceof IsNotUpperCaseOperator) {
return "! this.isUpper";
} else if (operator instanceof IsLowerCaseOperator) {
return "this.isLower";
} else if (operator instanceof IsNotLowerCaseOperator) {
return "! this.isLower";
} else {
throw new UnsupportedOperationException("Unexpected operator type '" + operator.getClass().getName() + "'");
switch (operator) {
case EQUAL:
return "this.equals";
case NOT_EQUAL:
return "! this.equals";
case LESS_THAN:
return "this.lessThan";
case LESS_THAN_OR_EQUAL:
return "this.lessThanOrEquals";
case GREATER_THAN:
return "this.moreThan";
case GREATER_THAN_OR_EQUAL:
return "this.moreThanOrEquals";
case IN:
return "this.inFunc";
case NOT_IN:
return "! this.inFunc";
case BETWEEN:
return "this.between";
case NOT_BETWEEN:
return "! this.between";
case NULL:
return "this.nullFunc";
case NOT_NULL:
return "! this.nullFunc";
case HAS_TEXT:
return "this.hasText";
case HAS_NO_TEXT:
return "! this.hasText";
case HAS_LENGTH:
return "this.hasLength";
case HAS_NO_LENGTH:
return "! this.hasLength";
case IS_BLANK:
return "this.isBlank";
case IS_NOT_BLANK:
return "! this.isBlank";
case IS_WORD:
return "this.isWord";
case IS_NOT_WORD:
return "! this.isWord";
case IS_UPPERCASE:
return "this.isUpper";
case IS_NOT_UPPERCASE:
return "! this.isUpper";
case IS_LOWERCASE:
return "this.isLower";
case IS_NOT_LOWERCASE:
return "! this.isLower";
}
throw new UnsupportedOperationException("Unexpected operator type '" + operator.getClass().getName() + "'");
}
void visit(TargetBeanFunction f) throws IOException {
... ...
... ... @@ -73,7 +73,7 @@ public class ComponentRegistry {
public void registComponent(String namespace, String basePackage, String className) {
try {
Class<?> clazz = ClassUtils.forName(className);
Class<?> clazz = ClassUtils.forName(className, null);
if (!Modifier.isPublic(clazz.getModifiers())) {
if (logger.isInfoEnabled()) {
logger.info("component \"" + className + "\" is not a public class,so it will be ignored");
... ...
... ... @@ -35,7 +35,7 @@ public class OverrideableBeanDefinitionDocumentReader extends DefaultBeanDefinit
*/
@Override
protected BeanDefinitionParserDelegate createHelper(XmlReaderContext readerContext, Element root, BeanDefinitionParserDelegate parentDelegate) {
protected BeanDefinitionParserDelegate createDelegate(XmlReaderContext readerContext, Element root, BeanDefinitionParserDelegate parentDelegate) {
OverrideableBeanDefinitionParserDelegate delegate = new OverrideableBeanDefinitionParserDelegate(
readerContext);
delegate.initDefaults(root, parentDelegate);
... ...
... ... @@ -42,8 +42,8 @@ public class BeanProviderRegistry {
Class<?> clazz;
for (String key : providers.keySet()) {
key = key.trim();
clazz = ClassUtils.forName(key);
BeanProviderRegistry.regist(clazz, (BeanProvider<?>) ClassUtils.forName(providers.get(key).trim()).newInstance());
clazz = ClassUtils.forName(key, null);
BeanProviderRegistry.regist(clazz, (BeanProvider<?>) ClassUtils.forName(providers.get(key).trim(), null).newInstance());
}
}
}
... ...
... ... @@ -17,7 +17,7 @@
<properties>
<servlet.version>2.5</servlet.version>
<springframework.version>3.1.2.RELEASE</springframework.version>
<springframework.version>4.0.2.RELEASE</springframework.version>
<springsecurity.version>2.0.4</springsecurity.version>
<velocity.version>1.6.1</velocity.version>
<junit.version>4.8</junit.version>
... ... @@ -201,7 +201,7 @@
</exclusions>
</dependency>
<dependency>
<groupId>org.spring.modules</groupId>
<groupId>org.springmodules</groupId>
<artifactId>spring-modules-validation</artifactId>
<version>0.8a</version>
<exclusions>
... ... @@ -616,6 +616,20 @@
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
<encoding>${java.encoding}</encoding>
<compilerArguments>
<!--<verbose />-->
<bootclasspath>${java.home}/lib/rt.jar;${java.home}/lib/jce.jar</bootclasspath>
</compilerArguments>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.0-beta-9</version>
<configuration>
... ...
... ... @@ -46,12 +46,13 @@ public abstract class AbstractTextProcessor implements TextProcessor {
return doTextProcess(text, config);
}
/**
public String doProcess(final Object obj) throws SecurityProcessException {
return doProcess((String) (obj == null ? null : obj.toString()), null);
}
public String doProcess(final Object obj, final Object config) throws SecurityProcessException {
return doProcess((String) (obj == null ? null : obj.toString()), config);
}
}**/
}
... ...
... ... @@ -30,7 +30,7 @@ public interface TextProcessor extends SecurityProcessor<String> {
* @return
* @throws SecurityProcessException
*/
String doProcess(final Object obj) throws SecurityProcessException;
String doProcess(final String obj) throws SecurityProcessException;
/**
* 执行处理过程
... ... @@ -40,6 +40,6 @@ public interface TextProcessor extends SecurityProcessor<String> {
* @return
* @throws SecurityProcessException
*/
String doProcess(final Object obj, final Object config) throws SecurityProcessException;
String doProcess(final String obj, final Object config) throws SecurityProcessException;
}
... ...
... ... @@ -54,12 +54,12 @@ public class SecurityAnnotationInsertionEventHandler implements ReferenceInserti
final Class<? extends Annotation> annotationClass = entry.getKey();
final Annotation annotation = valueClass.getAnnotation(annotationClass);
if(annotation != null){
return entry.getValue().doProcess(value, annotation);
return entry.getValue().doProcess(String.valueOf(value), annotation);
}
}
}
if(defaultProcessor != null){
return defaultProcessor.doProcess(value);
return defaultProcessor.doProcess(String.valueOf(value));
}
}
}catch (final SecurityProcessException e) {
... ...
... ... @@ -59,7 +59,7 @@ public class SecurityReferenceInsertionEventHandler implements ReferenceInsertio
}
}else { // value instanceof Object
if(defaultObjProcessor != null){
return defaultObjProcessor.doProcess(value);
return defaultObjProcessor.doProcess(String.valueOf(value));
}
}
}catch (final SecurityProcessException e) {
... ...
... ... @@ -71,14 +71,14 @@ public class SecurityServletRequestDataBinder extends ServletRequestDataBinder {
}
if (nativeRequest instanceof MultipartHttpServletRequest) {
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) nativeRequest;
bindMultipartFiles(multipartRequest.getFileMap(), mpvs);
bindMultipart(multipartRequest.getFileMap(), mpvs);
}
doBind(mpvs);
}
@SuppressWarnings("unchecked")
@Override
protected void bindMultipartFiles(Map multipartFiles, MutablePropertyValues mpvs) {
protected void bindMultipart(Map multipartFiles, MutablePropertyValues mpvs) {
for (Iterator it = multipartFiles.entrySet().iterator(); it.hasNext();) {
Map.Entry entry = (Map.Entry) it.next();
String key = (String) entry.getKey();
... ...
... ... @@ -64,7 +64,7 @@ public class FilterBeanAdapter implements FilterBean {
this.target = (Filter) filter;
} else {
try {
this.target = (Filter) ClassUtils.forName(filter.toString()).newInstance();
this.target = (Filter) ClassUtils.forName(filter.toString(), null).newInstance();
} catch (Exception e) {
throw new RuntimeException(e);
}
... ...
... ... @@ -250,7 +250,7 @@ public class ComponentHandlerMapping extends AbstractUrlHandlerMapping {
if (!StringUtils.equals(componentType.name(), ComponentType.CONTROLLER.name())) {
this.doRegisterHander(key, className, componentType);
} else {
clazz = ClassUtils.forName(className);
clazz = ClassUtils.forName(className, null);
Method[] methods = clazz.getDeclaredMethods();
for (Method method : methods) {
name = method.getName();
... ...
... ... @@ -231,7 +231,7 @@ public class ZeusDispatcherServlet extends DispatcherServlet {
// 获取Handler
// =======================================================================
mappedHandler = getHandler(processedRequest, false);
mappedHandler = getHandler(processedRequest);
if (mappedHandler == null || mappedHandler.getHandler() == null) {
noHandlerFound(processedRequest, response);
return;
... ...