Hey Lincoln,
I checked what code was missing now and applied it again on the new structure of the Rest
plugin like we discussed yesterday. It all seems to work again, but please have a look at
it too.
The facet inheritance approach is working very well, it's a very clean way to deal
with facets that can be installed in very different ways (for the REST plugin either
web.xml or an Application class). Without Facet inheritance you end up with a lot of
conditional code in the Facet. I will add something to the documentation about this idea.
Paul
On Mar 11, 2012, at 0:41 , Lincoln Baxter, III wrote:
Hey Paul, Awesome! I did just push some changes to that respect.
Sounds like yours is a lot better than mine. Sounds like we had very similar solutions :D
but I think you probably also incorporated the facet inheritance approach? How is that
working? Would be a good thing to write down as a recommended pattern if it works well!
Sorry, I should have told you I was starting some work on it.
I also fixed a few issues with the web.xml configuration. Looks like this was preserved
in your merge, just want to make sure?
This dependency is not required and should be removed (I had done that in my commits:)
DependencyBuilder.create("org.jboss.spec.javax.xml.bind:jboss-jaxb-api_2.2_spec")
Additionally, this line was actually incorrectly modifying existing servlet mappings,
which was why I corrected it.
Node servletClass =
node.getOrCreate("servlet-mapping/servlet-name=" + JAXRS_SERVLET);
Let's do a google hangout sometime and try to get our stuff re-coordinated?
~Lincoln
On Sat, Mar 10, 2012 at 11:46 AM, Paul Bakker <paul.bakker.nl(a)gmail.com> wrote:
Hi!
I just pushed the new REST plugin to master. JAX-RS can now be configured by either the
web.xml like before, or an Application class.
It's now also using the TreeVisiting API, but only if it finds that configuration is
missing or is invalid. So if the configuration is not in sync because of refactoring for
example, the plugin will notice this and fix it's configuration by scanning the
project's classes. As long as the configuration is still correct, it will not rescan
classes. By using the configuration API as a cache I hope the performance penalty of
scanning classes will be minimized. We still should test this better on large projects
however, but that's out of the scope of this issue.
Paul
On Mar 9, 2012, at 19:43 , Lincoln Baxter, III wrote:
> Hey Paul,
>
> How is this coming along? I only ask because it came up from the tools team that
Forge has trouble detecting apps using the REST @Application() annotation.
>
> I hope all is well!
> ~Lincoln
>
> On Mon, Feb 27, 2012 at 3:09 PM, Lincoln Baxter, III <lincolnbaxter(a)gmail.com>
wrote:
> Yep! Glad to be back, though :)
>
> I think it might be a good idea to watch the performance of this operation, though.
It could get expensive for large projects, so it might be a good idea to only do this
check when necessary, and store the result in forge project scoped config. We are becoming
an IDE :)
>
> Will be complicated I think, or slow...
>
> ~Lincoln
>
>
> On Mon, Feb 27, 2012 at 11:14 AM, Paul Bakker <paul.bakker(a)luminis.eu> wrote:
> Hi! Had a good time?
> The new API looks really good to use here, didn't know we could do that… I
wasn't too happy with using configuration for this, because it will break on
refactoring, so it's much better is we can do it this way. I will look into it to use
it.
>
> Paul
>
>
>
> On Feb 27, 2012, at 17:09 , Lincoln Baxter, III wrote:
>
>> Hey Paul!
>>
>> Back from Vaca.
>>
>> My first thought here is that this is excellent use of the Configuration API, but
I think currently the way this is written, it depends on the Configuration in order to
recognize the fact that there is an application class serving as a REST activator?
>>
>> We could use the JavaParser TreeVisiting API that was just introduced, in order
to search project sources and make this determination.
>>
>>
https://github.com/forge/core/blob/master/shell-api/src/main/java/org/jbo...
>>
>> Thoughts?
>> ~Lincoln
>>
>> On Wed, Feb 15, 2012 at 5:48 PM, Paul Bakker <paul.bakker(a)luminis.eu>
wrote:
>> Hi Lincoln,
>>
>> I made some progress on refactoring the rest stuff, plus I added the option to
use an Application class instead of web.xml. Because it changed quite a lot and this is
the first time we use the idea of having "nested" facets it would probably be
good if you review before I merge to master.
>>
>>
https://github.com/forge/core/commit/ec0275a821c6bb3ccf690b55d66816073ba0...
>>
>> Let me know what you think :-)
>>
>> Paul
>>
>>
>>
>> --
>> Lincoln Baxter, III
>>
http://ocpsoft.com
>>
http://scrumshark.com
>> "Keep it Simple"
>> _______________________________________________
>> forge-dev mailing list
>> forge-dev(a)lists.jboss.org
>>
https://lists.jboss.org/mailman/listinfo/forge-dev
>
>
> _______________________________________________
> forge-dev mailing list
> forge-dev(a)lists.jboss.org
>
https://lists.jboss.org/mailman/listinfo/forge-dev
>
>
>
>
> --
> Lincoln Baxter, III
>
http://ocpsoft.com
>
http://scrumshark.com
> "Keep it Simple"
>
>
>
> --
> Lincoln Baxter, III
>
http://ocpsoft.com
>
http://scrumshark.com
> "Keep it Simple"
> _______________________________________________
> forge-dev mailing list
> forge-dev(a)lists.jboss.org
>
https://lists.jboss.org/mailman/listinfo/forge-dev
_______________________________________________
forge-dev mailing list
forge-dev(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/forge-dev
--
Lincoln Baxter, III
http://ocpsoft.com
http://scrumshark.com
"Keep it Simple"
_______________________________________________
forge-dev mailing list
forge-dev(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/forge-dev