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 <thechrispr...@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 <w...@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 <thechrispr...@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 <dhi...@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 <dhi...@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 <dhi...@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-unsubscr...@struts.apache.org >> >> >>>> For additional commands, e-mail: dev-h...@struts.apache.org >> >> >>>> >> >> >>>> >> >> >>>> >> >> >>>> >> >> >>> >> >> >>> >> >> >>> >> >> >> --------------------------------------------------------------------- >> >> >> To unsubscribe, e-mail: dev-unsubscr...@struts.apache.org >> >> >> For additional commands, e-mail: dev-h...@struts.apache.org >> >> >> >> >> >> >> >> >> >> >> > >> >> > --------------------------------------------------------------------- >> >> > To unsubscribe, e-mail: dev-unsubscr...@struts.apache.org >> >> > For additional commands, e-mail: dev-h...@struts.apache.org >> >> > >> >> > >> >> >> >> --------------------------------------------------------------------- >> >> To unsubscribe, e-mail: dev-unsubscr...@struts.apache.org >> >> For additional commands, e-mail: dev-h...@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-unsubscr...@struts.apache.org >> For additional commands, e-mail: dev-h...@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-unsubscr...@struts.apache.org For additional commands, e-mail: dev-h...@struts.apache.org