Author: ieb
Date: Thu Dec 4 22:14:43 2008
New Revision: 723602
URL: http://svn.apache.org/viewvc?rev=723602&view=rev
Log:
SHINDIG-728
Fix to remove getDefaultImplementation and rely on bean creation via the
guice injector.
Modified:
incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/xstream/GuiceBeanConverter.java
incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/xstream/InterfaceClassMapper.java
Modified:
incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/xstream/GuiceBeanConverter.java
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/xstream/GuiceBeanConverter.java?rev=723602&r1=723601&r2=723602&view=diff
==============================================================================
---
incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/xstream/GuiceBeanConverter.java
(original)
+++
incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/xstream/GuiceBeanConverter.java
Thu Dec 4 22:14:43 2008
@@ -54,9 +54,15 @@
* need stricter checks, subclass JavaBeanConverter
*/
public boolean canConvert(Class type) {
+ if ( type == null ) {
+ return false;
+ }
if (Object.class.equals(type)) {
return false;
}
+ if ( type.isInterface() ) {
+ return true;
+ }
for (Class<?> iff : type.getInterfaces()) {
if (iff.isAnnotationPresent(Exportablebean.class)) {
return true;
Modified:
incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/xstream/InterfaceClassMapper.java
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/xstream/InterfaceClassMapper.java?rev=723602&r1=723601&r2=723602&view=diff
==============================================================================
---
incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/xstream/InterfaceClassMapper.java
(original)
+++
incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/xstream/InterfaceClassMapper.java
Thu Dec 4 22:14:43 2008
@@ -276,55 +276,10 @@
if (clazz == null) {
clazz = super.realClass(elementName);
}
- clazz = getImplementation(clazz);
return clazz;
}
- /**
- * get the implementation of a class, based on the ImplementedBy annotation.
- *
- * @param clazz
- * the class to be checked.
- * @return the class providing the default implementation.
- */
- private Class<?> getImplementation(Class<?> clazz) {
- // get the guice default implementation on the class.
- // we might use the injector to discover this
- Class<?> cl = clazz;
- ImplementedBy implementedBy = clazz.getAnnotation(ImplementedBy.class);
- if (implementedBy != null) {
- Class<?> c = implementedBy.value();
- if (log.isDebugEnabled()) {
- log.debug("===================Class " + clazz + " is implemented by "
- + c);
- }
- cl = c;
- } else {
- if (log.isDebugEnabled()) {
- log.debug("===================Class " + clazz
- + " no implementation, assume concrete ");
- }
- }
- return cl;
- }
- /*
- * (non-Javadoc)
- *
- * @see
- * com.thoughtworks.xstream.mapper.MapperWrapper#defaultImplementationOf(java
- * .lang.Class)
- */
- @SuppressWarnings("unchecked")
- // API is not generic
- @Override
- public Class defaultImplementationOf(Class type) {
- Class<?> clazz = getImplementation(super.defaultImplementationOf(type));
- if (log.isDebugEnabled()) {
- log.debug("====defaultImplementationOf==Class " + type + " is " + clazz);
- }
- return clazz;
- }
/**
* [EMAIL PROTECTED]