On Tue, Jun 25, 2013 at 1:13 PM, Charles Oliver Nutter
<head...@headius.com>wrote:

> Great progress, kristian...I'm poking at it a bit right now!
>
> I agree with the XML getting rather ugly, especially when we have a
> lot of custom build steps. The only problems I see with using
> ruby-maven are obviously bootstrapping-related (have to install it,
> including jruby, to use it to build jruby).
>
> On the other hand, once this is done we shouldn't have to fiddle with
> it anymore. We are also willing to reorg our directory structure and
> build process to reduce the amount of customization necessary (e.g.
> moving src into src/main/java).
>
> Other comments below:
>
> On Tue, Jun 25, 2013 at 10:55 AM, kristian <m.krist...@web.de> wrote:
> > this does use only maven central and a few artifacts from ./localrepo
> > repository in which I copied those jars from ./build_lib
>
> Looks great! And if we only have a couple of these, it's not a huge
> deal either. I personally will be happy if we can get rid of the bulk
> of our in-dist binaries.
>
> > the tzdata stuff I also implemented up to using joda to compile the
> timezone
> > files but then I got stuck since the purpose of those files is not really
> > clear !
>
> The tzdata files get updated more frequently than JodaTime releases
> (and we don't want to update JodaTime every time anyway), so we update
> it ourselves.
>
> It could probably be fetched from somewhere, too. Perhaps someone's
> pushing official tzdata files to maven?
>
> > the Constants.java is also patched beside the tzdata value - again some
> lack
> > of understanding of the tzdata thingy.
>
> Yeah, when I started poking around maven docs, I was not clear how we
> should handle code generation. We generate at least the following:
>
> * Constants.java
> * A pseudo-Unsafe class just for unchecked throws
> * *POPULATOR.java for fast binding of Ruby methods (these may go away
> once we're Java 7+ only)
> * *INVOKER.class files that act as method handles (these will probably
> go away once we're Java 7+ only)
>

Android?

-Tom


>
> Constants.java is done via an ant substitution, as you probably saw.
> The latter two items are generated via annotation processing. So the
> compile phases are something like:
>
> * Generate Constants.java and pseudo-Unsafe
> * Compile annotation processor
> * Compile JRuby; annotation processor spits out populators
> * Run invoker generator, which walks annotations and spits out invoker
> classes
>
> The final two phases could *possibly* be done in a single pass, but
> the invokers need to aggregate annotation data from multiple methods
> to generate properly.
>
> > currently I will not put time into all the external dependencies like the
> > ones from the localrepo and focus on getting the maven working until
> jruby
> > can be executed.
>
> That's perfect. Summing up some remaining to-do's:
>
> * Generating Constants.java, pseudo-Unsafe, populators and invokers.
> The invokers are especially important, since they're very expensive to
> generate at runtime.
> * tzdata, ideally sourced during the build so we know it's always current.
> * Shading dependencies into "jruby.jar" we can install in lib dir. I
> say we're willing to make changes to the repository layout, but
> obviously JRuby still needs to be executable in-place after build.
> * jarjar-style mangling where appropriate
>
> Once we're at that point, we could probably make a changeover in the
> main repo. Pretty much everything else could be done from Rake:
>
> * native library unpacking and juggling
> * dist files creation
> * test runs
>
> Looking great so far!
>
> - Charlie
>
> ---------------------------------------------------------------------
> To unsubscribe from this list, please visit:
>
>     http://xircles.codehaus.org/manage_email
>
>
>


-- 
blog: http://blog.enebo.com       twitter: tom_enebo
mail: tom.en...@gmail.com

Reply via email to