On Fri, Nov 26, 2021 at 1:03 AM Jason Gerlowski <gerlowsk...@gmail.com> wrote:
> > Is there some problem with our annotations that we hope to solve using > third party dependencies? > > I guess so yeah. Third-party deps are just fuller, more robust > solutions, whereas our annotations still need support added now and > then for even primitive data types like "long" (see SOLR-15619). > These are minor improvements compared to a full rewrite of the entire framework > Every JIRA spent doing basic stuff like that is time away from > improving Solr in some other way. > > So there are feature-gap/capabilities arguments for moving to a > third-party dep, sure. But, even if our annotations did everything > Jersey+Jackson do today, I think switching would still be worth it. > Every LOC in our code base brings along with it some maintenance cost: > it might have bugs, needs tested, takes time for new contributors to > "grok", etc. Using off-the-shelf here would nuke a whole bunch of > that. If off-the-shelf is available for some given functionality, we > should need a compelling reason to NOT use it. > Lastly, I think there's an "approachability" argument for using > off-the-shelf. Thousands of developers out there are familiar with > (e.g.) Jersey, compared to maybe 15 or 20 (in the world) familiar with > Solr's custom annotations. Using a well-known technology like Jersey > would make Solr all the easier to approach and contribute to for that > pool of developers. > > > By the way, we have used Restlet in the past and that has been a > regrettable decision. > > Ah, yeah, that's just the context I'm missing. Anyone have a pointer > to related discussions, or remember what made this "regrettable"? All > the theoretical benefits in the world don't matter much if we've > already tried something like this in the past and decided against it. > It was not playing well with our security framework. The framework was not working well with Solr APIs > (Unrelated - Happy Thanksgiving all!) > > Best, > > Jason > > On Thu, Nov 25, 2021 at 7:32 AM Noble Paul <noble.p...@gmail.com> wrote: > > > > Have you gone through an API written using the @EndPoint annotation? > > > > I strongly recommend that you do > > > > On Thu, Nov 25, 2021, 11:30 PM Eric Pugh < > ep...@opensourceconnections.com> wrote: > >> > >> I have found our V2 API code to be very impenetrable to understand. > Part of it is how the code is intertwined with support for V1, however > it’s also because there aren’t really resources to go look at to understand > how it should work! Maintaining the API should be very simple work, as > they just exist as a translation. The home grown stuff may make sense if > you are a super knowledgable Solr developer, but if you are just a new > person, it’s a lot harder to contribute. > >> > >> I was interested in the Jersey stuff because I’ve seen lots of projects > use it very successfully, and if I want to implement something, well, there > are lots of blogs and resources out there! > >> > >> Can anyone recap briefly why we dropped RESTlet? And what lessons > learned there might apply to adopting Jersey for API support? Looking at > https://issues.apache.org/jira/browse/SOLR-14659, it was partly > deprecated because we were not using it to support all the API, only the > ManagedResource ones, and https://issues.apache.org/jira/browse/SOLR-14766 > suggests that RESTlet maybe was no longer being updated? One reason why > we spiked out Jersey was because of the broad support in the Java world! > Looking at how much work we have to do in the V2 API world, we need a much > broader pool of developers contributing to get there! > >> > >> Related, are there specific features/aspects of our annotations that > enable things in Solr that couldn’t be done otherwise? > >> > >> On Nov 25, 2021, at 2:12 AM, Ishan Chattopadhyaya < > ichattopadhy...@gmail.com> wrote: > >> > >> Is there some problem with our annotations that we hope to solve using > third party dependencies? > >> By the way, we have used Restlet in the past and that has been a > regrettable decision. > >> > >> On Thu, Nov 25, 2021 at 10:10 AM Jason Gerlowski <gerlowsk...@gmail.com> > wrote: > >>> > >>> Solr's custom annotation framework ('@Endpoint', '@Command', etc.) has > >>> cropped up a few times over the past week or two. [1] [2]. Having them > >>> on top of mind, I've been wondering - is there a reason we use our own > >>> annotations here instead of something off the shelf? > >>> > >>> What we have works well enough, but anything homegrown comes with more > >>> maintenance burden than we'd have if we used something off the shelf. > >>> There are plenty of well-used, active projects out there whose whole > >>> purpose is facilitating the whole "annotation based API" thing > >>> (Jersey, Restlet, RESTEasy, etc.) - why not use one of them? > >>> > >>> Does anyone know of any technical reasons why we can't go this route? > >>> Or have any subjective reasons why we shouldn't? Or any context on > >>> why we wrote our own Endpoint, Command, JsonProperty annotations > >>> originally? > >>> > >>> FWIW, Eric Pugh and I spiked out a small POC recently, and got > >>> Jersey+Jackson working for a few simple APIs without too much trouble. > >>> [3] Obviously nothing production-ready there, and there's still a lot > >>> of open questions (e.g. how would javabin be supported?), but we both > >>> came away convinced that it seemed feasible, at least. Best of all, > >>> APIs using our current homegrown annotation framework the switchover > >>> seems blessedly straightforward, and it doesn't look like Jersey > >>> (which we chose mostly arbitrarily) bloats our dist all that much. > >>> > >>> Curious if anyone has thoughts or context on how we ended up with the > >>> annotation setup we use today! > >>> > >>> Best, > >>> > >>> Jason > >>> > >>> [1] https://issues.apache.org/jira/browse/SOLR-15182 (and children) > >>> [2] > http://mail-archives.apache.org/mod_mbox/solr-dev/202111.mbox/%3CCABEwPvENL41Pm6%2BOmjXb6Sx5N2XjUtnbWhgKOZSrnLjWBA8tcA%40mail.gmail.com%3E > >>> [3] > https://github.com/gerlowskija/solr/tree/jersey_jaxrs_jackson_solr_apis. > >>> > >>> --------------------------------------------------------------------- > >>> To unsubscribe, e-mail: dev-unsubscr...@solr.apache.org > >>> For additional commands, e-mail: dev-h...@solr.apache.org > >>> > >> > >> _______________________ > >> Eric Pugh | Founder & CEO | OpenSource Connections, LLC | 434.466.1467 > | http://www.opensourceconnections.com | My Free/Busy > >> Co-Author: Apache Solr Enterprise Search Server, 3rd Ed > >> This e-mail and all contents, including attachments, is considered to > be Company Confidential unless explicitly stated otherwise, regardless of > whether attachments are marked as such. > >> > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscr...@solr.apache.org > For additional commands, e-mail: dev-h...@solr.apache.org > > -- ----------------------------------------------------- Noble Paul