]> source.dussan.org Git - archiva.git/commitdiff
fix
authorNicolas De Loof <nicolas@apache.org>
Fri, 29 Feb 2008 09:41:30 +0000 (09:41 +0000)
committerNicolas De Loof <nicolas@apache.org>
Fri, 29 Feb 2008 09:41:30 +0000 (09:41 +0000)
git-svn-id: https://svn.apache.org/repos/asf/maven/archiva/branches@632272 13f79535-47bb-0310-9956-ffa450edef68

springy/plexus-spring/src/main/java/org/codehaus/plexus/spring/WebWorkPlexusInSpringObjectFactory.java

index 57f87704e3f83a373ce0b399b498116991bea360..a9c5e2fc79a4f1365e4a229c69ecc1a64dd84135 100644 (file)
@@ -30,8 +30,8 @@ import com.opensymphony.xwork.Result;
 import com.opensymphony.xwork.interceptor.Interceptor;
 
 /**
- * Replacement for WebWorkSpringObjectFactory ("webwork.objectFactory = spring") to support
- * plexus components lookup as expected by plexus-xwork integration.
+ * Replacement for WebWorkSpringObjectFactory ("webwork.objectFactory = spring")
+ * to support plexus components lookup as expected by plexus-xwork integration.
  *
  * @author <a href="mailto:nicolas@apache.org">Nicolas De Loof</a>
  */
@@ -67,4 +67,27 @@ public class WebWorkPlexusInSpringObjectFactory
         }
         return super.buildBean( name, map );
     }
+
+    public Class getClassInstance( String className )
+        throws ClassNotFoundException
+    {
+        String id = PlexusToSpringUtils.buildSpringId( Action.class, className );
+        if ( appContext.containsBean( id ) )
+        {
+            return appContext.getType( id );
+        }
+
+        id = PlexusToSpringUtils.buildSpringId( Result.class, className );
+        if ( appContext.containsBean( id ) )
+        {
+            return appContext.getType( id );
+        }
+
+        id = PlexusToSpringUtils.buildSpringId( Interceptor.class, className );
+        if ( appContext.containsBean( id ) )
+        {
+            return appContext.getType( id );
+        }
+        return super.getClassInstance( className );
+    }
 }