TC6 AnnotationProcessor has been replaced completely by Marks new 
InstanceManager class for TC7
without the refactor your struts embedded-jsp-plugin will gack in TC7

I've refactored struts2 embedded-plugin src to work with marks code..collecting 
annotations from Fields from the servlet parameter
here is the code:
                           java.util.HashMap<String,String> injections=new 
java.util.HashMap();
                    /* add in all of the injections map of injections for this 
class  */
                           java.lang.Class clazz=servlet.getClass();
                           if (clazz != null)
                           {
                            java.lang.reflect.Field[] fields = 
clazz.getDeclaredFields();
                            int ctr=0;
                            for (java.lang.reflect.Field field : fields)
                            {
                                java.lang.annotation.Annotation[] annotations = 
field.getDeclaredAnnotations();;
                                for(java.lang.annotation.Annotation annotation: 
annotations)
                                {                                    
//injections.add("org.apache.struts2.jasper.compiler.Generator.VAR_ANNOTATIONPROCESSOR","_jsp_annotationprocessor");
                                    String 
annotationType=(String)annotation.annotationType().toString();
                                    String value         
=(String)annotation.toString();
                                    Object 
obj=(Object)injections.put(annotationType,value);
                                    ctr++;
                                }
                             }
                            } //end clazz!=null
                           java.util.Map<String, java.util.Map<String, String>> 
injectionMap=new java.util.HashMap();
                           String injectionString=new String("injectionMap");
                           injectionMap.put(injectionString,injections);
                           org.apache.catalina.core.NamingContextListener 
namingContextListener = new org.apache.catalina.core.NamingContextListener();
                           
namingContextListener.setName(com.opensymphony.xwork2.ActionContext.getContext().getName());
                           org.apache.naming.NamingContext 
naming_context=namingContextListener.getNamingContext();
                           org.apache.catalina.Context 
context=(org.apache.catalina.Context)com.opensymphony.xwork2.ActionContext.getContext();
                           DefaultInstanceManagerImpl manager=new 
DefaultInstanceManagerImpl((javax.naming.Context)naming_context,(java.util.Map<String,
 java.util.Map<String, 
String>>)injectionMap,(org.apache.catalina.Context)context,(java.lang.ClassLoader)com.opensymphony.xwork2.ActionContext.getContext().getClass().getClassLoader());
                           if(manager!=null)
                           {
                           try
                           {
                               manager.processAnnotations( (Object)servlet, 
(java.util.Map<String,String>)injections);
                           }
                           catch(IllegalAccessException iae)
                           {
                               log.debug("Manager.processAnnotations throws 
IllegalAccessException message="+iae.getMessage());
                           }
                           catch(InvocationTargetException ite)
                           {
                               log.debug("Manager.processAnnotations throws 
InvocationTargetException message="+ite.getMessage());
                           }
                           catch(NamingException name_excp)
                           {
                               log.debug("manager.processAnnotations throws 
NamingException message="+name_excp.getMessage());
                           }

struts currently doesnt support injector configuration read from web.xml 
so populating annotations acquired from (servlet) Fields will have to do

Struts supports all containers i'm looking for a variable that I can use to 
detect the TC7 container maybe 
check for TOMCAT_HOME?

WDYT?
Martin 
______________________________________________ 
Verzicht und Vertraulichkeitanmerkung/Note de déni et de confidentialité
 
Diese Nachricht ist vertraulich. Sollten Sie nicht der vorgesehene Empfaenger 
sein, so bitten wir hoeflich um eine Mitteilung. Jede unbefugte Weiterleitung 
oder Fertigung einer Kopie ist unzulaessig. Diese Nachricht dient lediglich dem 
Austausch von Informationen und entfaltet keine rechtliche Bindungswirkung. 
Aufgrund der leichten Manipulierbarkeit von E-Mails koennen wir keine Haftung 
fuer den Inhalt uebernehmen.
Ce message est confidentiel et peut être privilégié. Si vous n'êtes pas le 
destinataire prévu, nous te demandons avec bonté que pour satisfaire informez 
l'expéditeur. N'importe quelle diffusion non autorisée ou la copie de ceci est 
interdite. Ce message sert à l'information seulement et n'aura pas n'importe 
quel effet légalement obligatoire. Étant donné que les email peuvent facilement 
être sujets à la manipulation, nous ne pouvons accepter aucune responsabilité 
pour le contenu fourni.




> Date: Fri, 11 Mar 2011 17:39:08 -0500
> From: ch...@christopherschultz.net
> To: users@tomcat.apache.org
> Subject: Re: [OT] Migrated from 6.0.29 to 7.0.10, Now I get "INFO: TLD 
> skipped. URI: http://struts.apache.org/tags-bean is already defined"
> 
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> Brian,
> 
> On 3/9/2011 3:42 PM, Brian Braun wrote:
> > Actually, I had already unzipped my .war file and inspected every file
> > inside, and arrived to that conclution: The only place where the TLD files
> > are also present is the JARs that correspond to Struts (don't laugh, but I'm
> > still using it) and other components.
> 
> Why would anyone laugh that you are using Struts?
> 
> I think it's a great framework, and it's still maintained by a dedicated
> group of people.
> 
> Would you prefer something else? Or, does Struts just have a long enough
> history to make it un-cool?
> 
> - -chris
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.10 (MingW32)
> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
> 
> iEYEARECAAYFAk16pIsACgkQ9CaO5/Lv0PAbEQCgl3JHfnkXpx0h1TYaAalJkWty
> 0SwAnRvOjKTjagdLGMhN/IIz1P8XuXTT
> =NQKX
> -----END PGP SIGNATURE-----
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
> For additional commands, e-mail: users-h...@tomcat.apache.org
> 
                                          

Reply via email to