struts-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Wes Wannemacher <w...@wantii.com>
Subject Re: JSONPlugin breaks in 2.1.8.1
Date Tue, 03 Nov 2009 21:40:24 GMT
Heh, it was my idea to make it a proper, built-in result type... But,
my motivation for this was that plugins shouldn't depend on other
plugins. I was planning the JQuery plugin in my mind and I wanted
proper support for JSON. Since it was not only a plugin, but an
external plugin, using JSON in a JQuery plugin would have been a bad
example to set. However, we added the ability to specify a
'load-order' in the struts-plugin.xml file (hence the change to the
DTD between 2.1.6 and 2.1.7). This way, plugins can be guaranteed to
have their configuration loaded before other plugins. The loading
problem was the reason why it was considered a bad practice to have
plugins depend on each other.

We ended up bringing it over to Apache space for different reasons...
1 - Musachy wrote it (and I think I might have helped, I can't
remember), he was the most active on it. 2 - The version numbers were
confusing (jsonplugin @ googlecode was version 0.33 IIRC). 3 - If we
changed the Struts APIs, we could break the JSON plugin and Musachy
and I had a tendency to forget to keep the plugin up to date. And, 4 -
It now gets pushed out to the maven repositories.

-Wes

On Tue, Nov 3, 2009 at 4:31 PM, Chris Pratt <thechrispratt@gmail.com> wrote:
> What happened to the whole decision to bring JSON into the core?  Is it true
> that all that was done was to move the link from a Google Code URL to a
> harder to find Apache URL? That's not the discussion I remember...
>  (*Chris*)
>
> On Tue, Nov 3, 2009 at 1:25 PM, Wes Wannemacher <wesw@wantii.com> wrote:
>
>> No, Chris, it's definitely still a plugin...
>>
>> David, download the jar from here -
>>
>> http://repo1.maven.org/maven2/org/apache/struts/struts2-json-plugin/2.1.8/
>>
>> -Wes
>>
>> On Tue, Nov 3, 2009 at 4:23 PM, Chris Pratt <thechrispratt@gmail.com>
>> wrote:
>> > From what I understand, it's no longer a plugin, it's part of the base
>> > Struts functionality.  You don't have to do anything extra.  All you have
>> to
>> > do is define your result type to be json and struts will know what you
>> mean.
>> >  (*Chris*)
>> >
>> > On Tue, Nov 3, 2009 at 1:17 PM, David C. Hicks <dhicks@i-hicks.org>
>> wrote:
>> >
>> >> OK.  I removed the original GoogleCode dependency from my project, but
>> >> now it doesn't appear to find *any* such plugin.  It's unclear to me
>> >> where the JSON Plugin is located within the Struts framework and how to
>> >> get it, now.  I tried adding the struts2-plugins 2.1.8.1 jar, but that
>> >> doesn't appear to exist in the staging repository with the rest of the
>> >> framework.  I'm sure I'm just missing some little tid-bit of
>> information.
>> >>
>> >> Thanks,
>> >> Dave
>> >>
>> >>
>> >> Musachy Barroso wrote:
>> >> > The package name is the same, but the plugin jar is now bundled with
>> s2.
>> >> >
>> >> > musachy
>> >> >
>> >> > On Tue, Nov 3, 2009 at 11:59 AM, David C. Hicks <dhicks@i-hicks.org>
>> >> wrote:
>> >> >
>> >> >> Wes, is this new plugin referenced in a new struts package type?
>>  That
>> >> >> seems to be where I'm getting the GoogleCode plugin from.  My
package
>> >> >> extends "json-default", and, as far as I can tell, this is where
the
>> >> >> plugin itself is referenced.
>> >> >>
>> >> >> Thanks again!
>> >> >> Dave
>> >> >>
>> >> >> Wes Wannemacher wrote:
>> >> >>
>> >> >>> We moved that plugin into Apache... Poke around the 2.1.8.1,
you'll
>> >> >>> find a struts2-json-plugin in there. It's a port of the one
on
>> >> >>> googlecode, so it should be a compatible replacement (a few
package
>> >> >>> names changed, but that should be easy to sort out).
>> >> >>>
>> >> >>> -Wes
>> >> >>>
>> >> >>> On Mon, Nov 2, 2009 at 4:54 PM, David C. Hicks <dhicks@i-hicks.org>
>> >> wrote:
>> >> >>>
>> >> >>>
>> >> >>>> I've been trying to build our application using the 2.1.8.1
>> candidate.
>> >> >>>> There was an older bug that we needed the fix for.  That
problem
>> seems
>> >> >>>> to be resolved.  However, I find that the JSONPlugin for
Struts
>> from
>> >> >>>> Googlecode is broken due to an upgrade of the XWork2 framework.
>>  There
>> >> >>>> is a class (com.opensymphony.xwork2.util.TextUtils) that
jsonplugin
>> >> >>>> relied on that is now gone, apparently.  I was wondering
if anyone
>> >> knew
>> >> >>>> of a workaround for this (or maybe this is just a new,
unknown
>> >> >>>> problem?).  The current version of jsonplugin is 0.34,
I believe.
>> >> >>>>
>> >> >>>>            <dependency>
>> >> >>>>                <groupId>com.googlecode</groupId>
>> >> >>>>                <artifactId>jsonplugin</artifactId>
>> >> >>>>                <version>0.34</version>
>> >> >>>>            </dependency>
>> >> >>>>
>> >> >>>> Any help is appreciated.
>> >> >>>> Thanks,
>> >> >>>> Dave
>> >> >>>>
>> >> >>>> PS - in case it helps, here is a small snippet of stack
trace...
>> >> >>>>
>> >> >>>> java.lang.NoClassDefFoundError:
>> com/opensymphony/xwork2/util/TextUtils
>> >> >>>>        at
>> >> >>>>
>> >>
>> com.googlecode.jsonplugin.SerializationParams.<init>(SerializationParams.java:38)
>> >> >>>>        at
>> >> >>>>
>> >>
>> com.googlecode.jsonplugin.JSONResult.writeToResponse(JSONResult.java:194)
>> >> >>>>        at
>> >> com.googlecode.jsonplugin.JSONResult.execute(JSONResult.java:184)
>> >> >>>>        at
>> >> >>>>
>> >>
>> com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:362)
>> >> >>>>        at
>> >> >>>>
>> >>
>> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:266)
>> >> >>>>        at
>> >> >>>>
>> >>
>> com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:165)
>> >> >>>>        at
>> >> >>>>
>> >>
>> com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
>> >> >>>>        at
>> >> >>>>
>> >>
>> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
>> >> >>>>        at
>> >> >>>>
>> >>
>> com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:252)
>> >> >>>>        at
>> >> >>>>
>> >>
>> org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
>> >> >>>>        at
>> >> >>>>
>> >>
>> com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
>> >> >>>>        at
>> >> >>>>
>> >>
>> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
>> >> >>>>        at
>> >> >>>>
>> >>
>> com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
>> >> >>>>        at
>> >> >>>>
>> >>
>> com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
>> >> >>>>        at
>> >> >>>>
>> >>
>> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
>> >> >>>>        at
>> >> >>>>
>> >>
>> com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
>> >> >>>>        at
>> >> >>>>
>> >>
>> com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
>> >> >>>>        at
>> >> >>>>
>> >>
>> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
>> >> >>>>        at
>> >> >>>>
>> >>
>> com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:179)
>> >> >>>>        at
>> >> >>>>
>> >>
>> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
>> >> >>>>        at
>> >> >>>>
>> >>
>> org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:94)
>> >> >>>>        at
>> >> >>>>
>> >>
>> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
>> >> >>>>        at
>> >> >>>>
>> >>
>> org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:235)
>> >> >>>>
>> >> >>>>
>> >> >>>>
>> ---------------------------------------------------------------------
>> >> >>>> To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org
>> >> >>>> For additional commands, e-mail: dev-help@struts.apache.org
>> >> >>>>
>> >> >>>>
>> >> >>>>
>> >> >>>>
>> >> >>>
>> >> >>>
>> >> >>>
>> >> >> ---------------------------------------------------------------------
>> >> >> To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org
>> >> >> For additional commands, e-mail: dev-help@struts.apache.org
>> >> >>
>> >> >>
>> >> >>
>> >> >
>> >> > ---------------------------------------------------------------------
>> >> > To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org
>> >> > For additional commands, e-mail: dev-help@struts.apache.org
>> >> >
>> >> >
>> >>
>> >> ---------------------------------------------------------------------
>> >> To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org
>> >> For additional commands, e-mail: dev-help@struts.apache.org
>> >>
>> >>
>> >
>>
>>
>>
>> --
>> Wes Wannemacher
>>
>> Head Engineer, WanTii, Inc.
>> Need Training? Struts, Spring, Maven, Tomcat...
>> Ask me for a quote!
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org
>> For additional commands, e-mail: dev-help@struts.apache.org
>>
>>
>



-- 
Wes Wannemacher

Head Engineer, WanTii, Inc.
Need Training? Struts, Spring, Maven, Tomcat...
Ask me for a quote!

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org
For additional commands, e-mail: dev-help@struts.apache.org


Mime
View raw message