Closed codefromthecrypt closed 11 years ago
Ping
@adriancole i dont think this project is active anymore. we've got a fork that we're regularly updating that i've also merged the #4 into. if you're using airline regularly, we might think about breaking away from this project?
@mhgrove which fork is this? I am using airline for a project so I'd be interested in a supported version (although current one works just fine for me, no specific problems).
https://github.com/clarkparsia/airline
We've expanded the help output w/ a discussion & examples sections (both of which are optional) and added manpage-esque HTML output: http://stardog.com/docs/man/query-execute.html
cool. I'd be interested in a more active place. particularly, I've noticed init time takes about 100ms on my laptop which we could improve on.
On Tue, Jun 11, 2013 at 10:59 AM, Michael Grove notifications@github.comwrote:
https://github.com/clarkparsia/airline
We've expanded the help output w/ a discussion & examples sections (both of which are optional) and added manpage-esque HTML output: http://stardog.com/docs/man/query-execute.html
— Reply to this email directly or view it on GitHubhttps://github.com/airlift/airline/pull/14#issuecomment-19280769 .
are you publishing under io.airline from this fork?
On Tue, Jun 11, 2013 at 11:11 AM, Adrian Cole adrian.f.cole@gmail.comwrote:
cool. I'd be interested in a more active place. particularly, I've noticed init time takes about 100ms on my laptop which we could improve on.
On Tue, Jun 11, 2013 at 10:59 AM, Michael Grove notifications@github.comwrote:
https://github.com/clarkparsia/airline
We've expanded the help output w/ a discussion & examples sections (both of which are optional) and added manpage-esque HTML output: http://stardog.com/docs/man/query-execute.html
— Reply to this email directly or view it on GitHubhttps://github.com/airlift/airline/pull/14#issuecomment-19280769 .
re: startup, yes i noticed that too. i was debugging something and had put a print in the metadata loader and it printed thousands of times just creating the CLI. not sure were it goes off the rails, but getting guice to give you an instance of something, while useful, makes it more expensive. so there's some easy improvements there i think that would really help startup time.
re: publishing, yeah, we've been using io.airline. i'm not opposed to changing it to something else.
i'm also not sure what the procedure is for taking over an abandoned codebase. i dont think github makes it a one button kind of thing to un-fork and just copy something, but i could be mistaken
hmm it is using guice? I must have missed that in the dep tree. If using any DI, I'd prefer dagger as this sort of thing doesn't need to be runtime resolved. Any interest?
On Tue, Jun 11, 2013 at 11:19 AM, Michael Grove notifications@github.comwrote:
re: startup, yes i noticed that too. i was debugging something and had put a print in the metadata loader and it printed thousands of times just creating the CLI. not sure were it goes off the rails, but getting guice to give you an instance of something, while useful, makes it more expensive. so there's some easy improvements there i think that would really help startup time.
re: publishing, yeah, we've been using io.airline. i'm not opposed to changing it to something else.
i'm also not sure what the procedure is for taking over an abandoned codebase. i dont think github makes it a one button kind of thing to un-fork and just copy something, but i could be mistaken
— Reply to this email directly or view it on GitHubhttps://github.com/airlift/airline/pull/14#issuecomment-19282010 .
yeah there's no guice in here. but anyway, it would be cool to use an annotation processor to cut that 100ms dance (or at least move it to javac)
On Tue, Jun 11, 2013 at 11:50 AM, Adrian Cole adrian.f.cole@gmail.comwrote:
hmm it is using guice? I must have missed that in the dep tree. If using any DI, I'd prefer dagger as this sort of thing doesn't need to be runtime resolved. Any interest?
On Tue, Jun 11, 2013 at 11:19 AM, Michael Grove notifications@github.comwrote:
re: startup, yes i noticed that too. i was debugging something and had put a print in the metadata loader and it printed thousands of times just creating the CLI. not sure were it goes off the rails, but getting guice to give you an instance of something, while useful, makes it more expensive. so there's some easy improvements there i think that would really help startup time.
re: publishing, yeah, we've been using io.airline. i'm not opposed to changing it to something else.
i'm also not sure what the procedure is for taking over an abandoned codebase. i dont think github makes it a one button kind of thing to un-fork and just copy something, but i could be mistaken
— Reply to this email directly or view it on GitHubhttps://github.com/airlift/airline/pull/14#issuecomment-19282010 .
yeah, i was unclear. it doesn't use it directly, though MetadataLoader does a little reflection magic to be Guice/DI aware, but when I merged #4 into our fork, you can use Guice indirectly to instantiate commands, which was a requirement for us.
My main wish would actually to keep core airline minimal-dep, and that's why I wish Guava was not used. Having an add-on (or dynamic use) would be fine of course. Same goes for DI, although size-wise libs aren't quite as important.
we could rewrite airline without using guava and probably in a fraction of the overhead (by using only a single annotation loop per class).. question is.. will we? :)
I can donate a day or two towards the cause.
On Tue, Jun 11, 2013 at 12:12 PM, Tatu Saloranta notifications@github.comwrote:
My main wish would actually to keep core airline minimal-dep, and that's why I wish Guava was not used. Having an add-on (or dynamic use) would be fine of course. Same goes for DI, although size-wise libs aren't quite as important.
— Reply to this email directly or view it on GitHubhttps://github.com/airlift/airline/pull/14#issuecomment-19285429 .
I could definitely help as well. I like the library, find it useful, and would love to help make it even leaner with respect to dependencies pulled in.
airline isn't dependent on Guice. it's dependent on javax.inject, which is what it's always depended on. there's some reflect magic using Class.forName in MetadataLoader to make it more friendly to guice, but that safely fails if you're not using guice or something something else entirely (I had to add that to keep it from blowing up when paired with a real DI library).
The rub is that MetadataLoader seems to use some sort of homegrown half-assed injection for passing around state, rather than an actual DI framework.
where we use guice is via the CommandFactory interface; so airline is able to use our injector to get command instances instead of depending on Class.newInstance.
it's never been clear to me why the faux-DI stuff is involved in MetadataLoader in the first place, it seems to only be used in the test suite. we don't use it, our DI integration is restricted to a custom CommandFactory.
reflection is not cheap, there's probably a lot that could be done to cache some calls to reflect that'd help the loading situation.
I assure this project is not abandoned. Github notifications seem to be broken since I'm not getting updates for these discussions. I'll take a look at these patches soon.
closing this out as denominator no longer uses guava, so isn't concerned with this PR anymore (except the side-bar on 100ms reflection overhead).
One note I forgot to add: a lot of stuff from Guava is actively used, so it is probably not practical to try to replace usage, even if some of it would be easy to do.
updates to airbase as parent, fixing all the various findbugs, pmd, and license problems. Updated various plugin versions to get above working and current.
More notably updates to guava 14.01, which didn't need any changes.