Author: ningjiang
Date: Thu Jul 5 08:59:41 2012
New Revision: 1357502
URL: http://svn.apache.org/viewvc?rev=1357502&view=rev
Log:
Fixed the test failures in cxf jaxrs
Modified:
cxf/branches/2.5.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/InjectionUtils.java
cxf/branches/2.5.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/ext/codegen/CodeGeneratorProviderTest.java
Modified:
cxf/branches/2.5.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/InjectionUtils.java
URL:
http://svn.apache.org/viewvc/cxf/branches/2.5.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/InjectionUtils.java?rev=1357502&r1=1357501&r2=1357502&view=diff
==============================================================================
---
cxf/branches/2.5.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/InjectionUtils.java
(original)
+++
cxf/branches/2.5.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/InjectionUtils.java
Thu Jul 5 08:59:41 2012
@@ -320,26 +320,27 @@ public final class InjectionUtils {
}
boolean adapterHasToBeUsed = false;
+ Class<?> cls = pClass;
Class<?> valueType = JAXBUtils.getValueTypeFromAdapter(pClass, pClass,
paramAnns);
- if (valueType != pClass) {
- pClass = valueType;
+ if (valueType != cls) {
+ cls = valueType;
adapterHasToBeUsed = true;
}
- Object result = instantiateFromParameterHandler(value, pClass,
message);
+ Object result = instantiateFromParameterHandler(value, cls, message);
if (result != null) {
return result;
}
// check constructors accepting a single String value
try {
- Constructor<?> c = pClass.getConstructor(new
Class<?>[]{String.class});
+ Constructor<?> c = cls.getConstructor(new
Class<?>[]{String.class});
result = c.newInstance(new Object[]{value});
} catch (NoSuchMethodException ex) {
// try valueOf
} catch (WebApplicationException ex) {
throw ex;
} catch (Exception ex) {
- result = createFromParameterHandler(value, pClass, message);
+ result = createFromParameterHandler(value, cls, message);
if (result == null) {
LOG.severe(new
org.apache.cxf.common.i18n.Message("CLASS_CONSTRUCTOR_FAILURE",
BUNDLE,
@@ -349,11 +350,11 @@ public final class InjectionUtils {
}
if (result == null) {
// check for valueOf(String) static methods
- String[] methodNames = pClass.isEnum()
+ String[] methodNames = cls.isEnum()
? new String[] {"fromString", "fromValue", "valueOf"}
: new String[] {"valueOf", "fromString"};
for (String mName : methodNames) {
- result = evaluateFactoryMethod(value, pClass, pType, mName);
+ result = evaluateFactoryMethod(value, cls, pType, mName);
if (result != null) {
break;
}
@@ -361,7 +362,7 @@ public final class InjectionUtils {
}
if (result == null) {
- result = createFromParameterHandler(value, pClass, message);
+ result = createFromParameterHandler(value, cls, message);
}
if (adapterHasToBeUsed) {
@@ -378,7 +379,7 @@ public final class InjectionUtils {
reportServerError("WRONG_PARAMETER_TYPE", pClass.getName());
}
- return result;
+ return pClass.cast(result);
}
private static Object instantiateFromParameterHandler(String value,
Modified:
cxf/branches/2.5.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/ext/codegen/CodeGeneratorProviderTest.java
URL:
http://svn.apache.org/viewvc/cxf/branches/2.5.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/ext/codegen/CodeGeneratorProviderTest.java?rev=1357502&r1=1357501&r2=1357502&view=diff
==============================================================================
---
cxf/branches/2.5.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/ext/codegen/CodeGeneratorProviderTest.java
(original)
+++
cxf/branches/2.5.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/ext/codegen/CodeGeneratorProviderTest.java
Thu Jul 5 08:59:41 2012
@@ -123,8 +123,9 @@ public class CodeGeneratorProviderTest e
private void verifyClasses(File classesDir, boolean typesOnly) {
List<File> clsFiles = FileUtils.getFilesRecurse(classesDir,
".+\\.class$");
- assertEquals(typesOnly ? 5 : 7, clsFiles.size());
+ assertEquals(typesOnly ? 6 : 8, clsFiles.size());
assertTrue(checkContains(clsFiles, "superbooks.Book.class"));
+ assertTrue(checkContains(clsFiles, "superbooks.Books.class"));
assertTrue(checkContains(clsFiles, "superbooks.Book2.class"));
assertTrue(checkContains(clsFiles, "superbooks.Chapter.class"));
assertTrue(checkContains(clsFiles, "superbooks.ObjectFactory.class"));