Re: [Gentoo-maven-intg] Intermediary shaded source files generated by maven-shade-plugin

2011-07-05 Thread Robert Burrell Donkin
On Tue, Jul 5, 2011 at 2:50 AM, Kasun Gajasinghe kasu...@gmail.com wrote:

snip

 On Jul 4, 2011, at 11:48 AM, Robert Burrell Donkin wrote:

snip

  After many problems, I've now opted to uninstall the official Maven
  and Ant packages (and Eclipse...), and use instead a set of scripts
  which accurately and flexibly allow me to configure exactly the
  official bytecode I want to use (a little bit like a better eselect).
 


 By official did you meant the upstream packages available as binary like
 maven-bin? If that's the case, these -bins are the same as upstream build. I
 guess you meant that since there's only the binary maven is available now.
 What did you find wrong?

I've given up wasting my time tracking them

Developers need good switchable support for multiple, official
versions. Ideally, Gentoo would use it's slots system to maintain the
official bytecode sources used to compose the applications I'm
interested in using. This would allow me to use this local repository
to provision OSGI and Maven without downloading them dynamically. The
Gentoo approach (hacking together replacement builds for the bytecode)
means all the source bytecode is an unreliable and unmaintainable way
to provision a library infrastructure for bytecode languages.

rant

  It has always struck me as somewhat ironic that if the Gentoo team
  donned their clue-hats and treated bytecode as the source form then
  they might quickly have one of the best development environments for
  the bytecode languages...


 I too kind of agree to this since the point being the built jars are
 platform independent. If anybody like to know the points for it -
 http://www.gentoo.org/proj/en/java/why-build-from-source.xml
 I'm not going to discuss why building from source is good or bad any further
 and is off-topic! ;)

For bytecode languages, the compressed bytecode archive (for example,
a jar) is the source.

I've been using Gentoo for the better part of a decade and understand
the arguments about bytecode languages very well used by Java team
(and others). The problem is that they are just simply and plainly
factually incorrect. This systematic dissemination of disinformation
has IMO been tolerated by the wider community for too long.

In particular, the phrase In the future building, native compiling
from Java source code using gcj could become a serious option. would
be laughable if it didn't represent such an important and fundamental
misunderstanding of how virtual machines work.

On reflection and after many years of consideration, I've come to the
conclusion that the main reason why these rules were picked were to
ensure patchy and buggy support for bytecode languages on Linux.

/rant

Robert

-
To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
For additional commands, e-mail: dev-h...@maven.apache.org



Re: [Gentoo-maven-intg] Intermediary shaded source files generated by maven-shade-plugin

2011-07-04 Thread Ralph Goers
The point I am making is that if you have all those jars together something is 
not going to work correctly.  SLF4J only allows one logging implementation. If 
you have all of SLF4J's jars, including the binding for Log4j as well as 
Logback, then SLF4J will throw a runtime exception. 

Commons Logging also has quirks. If Log4j is present then it will be used by 
default, otherwise it will do something else.

When you start dumping a whole bunch of jars together in one directory you had 
better understand how they are all going to relate to each other.

Ralph

On Jul 3, 2011, at 10:54 AM, Kasun Gajasinghe wrote:

 On Sun, Jul 3, 2011 at 10:42 PM, Ralph Goers 
 ralph.go...@dslextreme.comwrote:
 
 Out of curiosity, you said you are putting building your jars and putting
 them in a shared library. What are you going to do with SLF4J, Log4J,
 Commons Logging and Logback?
 
 
 slf4j, commons-logging etc. will also be installed at /usr/share as usual.
 Maven needs to shade these jars and few others. So, these jars will be
 shaded, and packaged together to make an uber-jar. slf4j, commons-logging
 system jars won't be changed. What exactly the point you are trying to make?
 
 And, how does log4j and Logback relates to core maven? I haven't seen these
 as dependencies!
 
 --Kasun
 
 
 
 Ralph
 
 On Jul 3, 2011, at 9:57 AM, Kasun Gajasinghe wrote:
 
 On Sun, Jul 3, 2011 at 6:30 PM, Benson Margulies bimargul...@gmail.com
 wrote:
 
 I'm not sure that the operation you are asking for is well-defined.
 Shade combines, renames, and transforms, using arbitrary Java plugins
 that operate entirely on binaries, which can themselves be the output
 of, well, shade. Trying to read the source and perform the same
 transformations would be very, very, hard.
 
 You might be able to grab jarjar, a non-maven tool with similar
 capabilities, build it from source, and use it for these simple cases
 as part of your bootstrap. Or, for bootstrap, you could leave out the
 shading and just depend on Xerces unrenamed, go all the way around,
 build shade, and then rebuild.
 
 
 I've ran jarjar with some samples and checked. This would indeed do the
 job.
 I hope there is no concerning bugs. I see a bug report saying it fails
 with
 ant 1.8.
 
 Well, I'm going to go ahead with this. Thanks for the suggestion Benson!
 
 --Kasun
 
 
 
 Or you might be able to cherry-pick the maven-shade-plugin source. It
 could be that there is a clean separation in there between code
 connected to the plugin framework and code that does the work.
 
 On Sun, Jul 3, 2011 at 7:38 AM, Kasun Gajasinghe kasu...@gmail.com
 wrote:
 On Sun, Jul 3, 2011 at 4:23 PM, Benson Margulies 
 bimargul...@gmail.com
 wrote:
 
 I'm not sure what you are asking. Shade is a binary operation that
 uses asm. It renames packages. There is no feature of creating
 corresponding source.
 
 
 I see. It means what I asked is not possible. I wasn't aware that it's
 a
 binary operation.
 What I want to do is to relocate the packages such as
 org.codehaus.plexus.util, org.apache.xerces that are shaded by maven in
 the
 official build. As you know, these should be shaded, else these classes
 will
 conflict with a different version of the same class that a project
 would
 be
 using.
 
 Because of the approach we are taking, we can't invoke
 maven-shade-plugin
 and get the job done. I think I'll have to manually patch the maven
 sources
 to get the said functionality. Have to proceed on this track if there's
 no
 other way. Can you please let me know the changes required to get this
 done?
 
 Thanks,
 --Kasun
 
 
 If you just want the original source, the plugin doesn't get into that
 business either, that would be a whole 'nother plugin.
 
 On Sun, Jul 3, 2011 at 6:39 AM, Kasun Gajasinghe kasu...@gmail.com
 wrote:
 Hi,
 Is it possible to have the .java source files which got shaded by
 maven-shade-plugin? Currently,  it generates the uberjar without
 leaving
 the
 shaded sources files. There's obviously an intermediary step in which
 these
 source files will be transformed to shaded java packages like
 hidden.org.codehaus.plexus.util.*.  So, like to know whether it's
 possible
 to have those .java files. Any complications involved?
 
 [1] http://maven.apache.org/ref/2.2.1/apache-maven/dependencies.html
 
 Thanks,
 --Kasun
 
 --
 ~~~***'***~~~
 Kasun Gajasinghe,
 University of Moratuwa,
 Sri Lanka.
 Blog: http://blog.kasunbg.org
 Twitter: http://twitter.com/kasunbg
 
 
 -
 To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
 For additional commands, e-mail: dev-h...@maven.apache.org
 
 
 
 
 --
 ~~~***'***~~~
 Kasun Gajasinghe,
 University of Moratuwa,
 Sri Lanka.
 Blog: http://blog.kasunbg.org
 Twitter: http://twitter.com/kasunbg
 
 
 -
 To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
 For additional 

Re: [Gentoo-maven-intg] Intermediary shaded source files generated by maven-shade-plugin

2011-07-04 Thread Kasun Gajasinghe
On Mon, Jul 4, 2011 at 11:31 AM, Ralph Goers ralph.go...@dslextreme.comwrote:

 The point I am making is that if you have all those jars together something
 is not going to work correctly.  SLF4J only allows one logging
 implementation. If you have all of SLF4J's jars, including the binding for
 Log4j as well as Logback, then SLF4J will throw a runtime exception.

 Commons Logging also has quirks. If Log4j is present then it will be used
 by default, otherwise it will do something else.


 When you start dumping a whole bunch of jars together in one directory you
 had better understand how they are all going to relate to each other.


I don't get it. log4j and logback won't be included in gentoo's uber-jar
since they aren't dependencies of apache-maven [1]. commons-logging and
slf4j will be integrated since they are integrated in the upstream official
build as well. What makes you think that I'm bundling together all the
available logging implementations? Is there a need to?

[1] http://maven.apache.org/ref/2.2.1/apache-maven/dependencies.html

Regards,
--Kasun


Re: [Gentoo-maven-intg] Intermediary shaded source files generated by maven-shade-plugin

2011-07-04 Thread Ralph Goers
The question I asked was, will you be putting the slf4j, Log4j, 
commons-logging, and Logback into your shared library - presumably under 
/usr/shared. This has nothing to do with Maven, per se. Maybe I'm not clear on 
what you are doing but I see two possibilities:
1. You are placing all the resultant jars in a common directory, such as 
/usr/share/lib, where applications will use them. This won't work for the 
reasons below.
2. You are building all these projects as independent entities under 
/usr/share. If this is the case then it sounds like you are (sort of) 
duplicating the Maven repository and I have no idea why this is of benefit to 
anyone, especially since you will only support a single version of an artifact.

I could understand this if you are building applications end users can use that 
are written in Java, but in that case I'd wonder why you don't just use 
out-of-the-box Maven and either a) just download the dependencies from the 
central repo or b) build the dependencies from their source and deploy them to 
your local repository. Of course, with the second option you would have to 
build several versions of the dependencies.

Ralph

On Jul 4, 2011, at 6:11 AM, Kasun Gajasinghe wrote:

 On Mon, Jul 4, 2011 at 11:31 AM, Ralph Goers 
 ralph.go...@dslextreme.comwrote:
 
 The point I am making is that if you have all those jars together something
 is not going to work correctly.  SLF4J only allows one logging
 implementation. If you have all of SLF4J's jars, including the binding for
 Log4j as well as Logback, then SLF4J will throw a runtime exception.
 
 Commons Logging also has quirks. If Log4j is present then it will be used
 by default, otherwise it will do something else.
 
 
 When you start dumping a whole bunch of jars together in one directory you
 had better understand how they are all going to relate to each other.
 
 
 I don't get it. log4j and logback won't be included in gentoo's uber-jar
 since they aren't dependencies of apache-maven [1]. commons-logging and
 slf4j will be integrated since they are integrated in the upstream official
 build as well. What makes you think that I'm bundling together all the
 available logging implementations? Is there a need to?
 
 [1] http://maven.apache.org/ref/2.2.1/apache-maven/dependencies.html
 
 Regards,
 --Kasun


-
To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
For additional commands, e-mail: dev-h...@maven.apache.org



Re: [Gentoo-maven-intg] Intermediary shaded source files generated by maven-shade-plugin

2011-07-04 Thread Kasun Gajasinghe
On Mon, Jul 4, 2011 at 8:34 PM, Ralph Goers ralph.go...@dslextreme.comwrote:

 The question I asked was, will you be putting the slf4j, Log4j,
 commons-logging, and Logback into your shared library - presumably under
 /usr/shared. This has nothing to do with Maven, per se. Maybe I'm not clear
 on what you are doing but I see two possibilities:
 1. You are placing all the resultant jars in a common directory, such as
 /usr/share/lib, where applications will use them. This won't work for the
 reasons below.


This isn't the case.


 2. You are building all these projects as independent entities under
 /usr/share. If this is the case then it sounds like you are (sort of)
 duplicating the Maven repository and I have no idea why this is of benefit
 to anyone, especially since you will only support a single version of an
 artifact.


Almost true. For example, slf4j jar is under /usr/share/slf4j/lib/slf4j.jar.
And, we have a concept called SLOT which is almost acts like the first
level of a two level index if you are familiar with DBMS. A particular SLOT
contains a set of versions (ex. 1.1, 1.12, 1.2 etc.) which are compatible
with each other. So, only one jar can be installed in a particular SLOT.
There can be several SLOTs, implying we can have more than one version of an
artifact. ex. jarjar new version is in SLOT 1, i.e. /usr/share/jarjar-1/

And, these jars in /usr/share/*/lib/*.jar are not only for maven. To be
specific not intended for maven. These are for system use. Any application
maven or not is able to benefit from these. What we are doing is using these
jars under maven, so we don't have to download these again.



 I could understand this if you are building applications end users can use
 that are written in Java, but in that case I'd wonder why you don't just use
 out-of-the-box Maven and either a) just download the dependencies from the
 central repo or b) build the dependencies from their source and deploy them
 to your local repository. Of course, with the second option you would have
 to build several versions of the dependencies.


To reiterate, our main usecase is supporting packagers at system level.
There's a need to have a custom build for them. It's not like we
blind-foldly building maven again instead of using official maven build!  To
answer your question; at system-level, maven should be run completely
offline (even at first time!). We have mechanisms in place to take care of
the deps via DEPEND in ebuilds, which I'm not going to explain. Read about
Gentoo if you got spare time. It'll be interesting! :)

--Kasun



 Ralph

 On Jul 4, 2011, at 6:11 AM, Kasun Gajasinghe wrote:

  On Mon, Jul 4, 2011 at 11:31 AM, Ralph Goers ralph.go...@dslextreme.com
 wrote:
 
  The point I am making is that if you have all those jars together
 something
  is not going to work correctly.  SLF4J only allows one logging
  implementation. If you have all of SLF4J's jars, including the binding
 for
  Log4j as well as Logback, then SLF4J will throw a runtime exception.
 
  Commons Logging also has quirks. If Log4j is present then it will be
 used
  by default, otherwise it will do something else.
 
 
  When you start dumping a whole bunch of jars together in one directory
 you
  had better understand how they are all going to relate to each other.
 
 
  I don't get it. log4j and logback won't be included in gentoo's uber-jar
  since they aren't dependencies of apache-maven [1]. commons-logging and
  slf4j will be integrated since they are integrated in the upstream
 official
  build as well. What makes you think that I'm bundling together all the
  available logging implementations? Is there a need to?
 
  [1] http://maven.apache.org/ref/2.2.1/apache-maven/dependencies.html
 
  Regards,
  --Kasun


 -
 To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
 For additional commands, e-mail: dev-h...@maven.apache.org




-- 
~~~***'***~~~
Kasun Gajasinghe,
University of Moratuwa,
Sri Lanka.
Blog: http://blog.kasunbg.org
Twitter: http://twitter.com/kasunbg


Re: [Gentoo-maven-intg] Intermediary shaded source files generated by maven-shade-plugin

2011-07-04 Thread Stephen Connolly
look, what you are trying to do is move an object of infinite mass, keeping
the lever length and force applied finite. good luck, it will be fun for us
watching from the sidelines... fundamentally maven is about downloading
dependencies on demand from the network rather than building from source...
gentoo is about building from source rather than downloading binaries from
the network...

- Stephen

---
Sent from my Android phone, so random spelling mistakes, random nonsense
words and other nonsense are a direct result of using swype to type on the
screen
On 4 Jul 2011 16:56, Kasun Gajasinghe kasu...@gmail.com wrote:
 On Mon, Jul 4, 2011 at 8:34 PM, Ralph Goers ralph.go...@dslextreme.com
wrote:

 The question I asked was, will you be putting the slf4j, Log4j,
 commons-logging, and Logback into your shared library - presumably under
 /usr/shared. This has nothing to do with Maven, per se. Maybe I'm not
clear
 on what you are doing but I see two possibilities:
 1. You are placing all the resultant jars in a common directory, such as
 /usr/share/lib, where applications will use them. This won't work for the
 reasons below.


 This isn't the case.


 2. You are building all these projects as independent entities under
 /usr/share. If this is the case then it sounds like you are (sort of)
 duplicating the Maven repository and I have no idea why this is of
benefit
 to anyone, especially since you will only support a single version of an
 artifact.


 Almost true. For example, slf4j jar is under
/usr/share/slf4j/lib/slf4j.jar.
 And, we have a concept called SLOT which is almost acts like the first
 level of a two level index if you are familiar with DBMS. A particular
SLOT
 contains a set of versions (ex. 1.1, 1.12, 1.2 etc.) which are compatible
 with each other. So, only one jar can be installed in a particular SLOT.
 There can be several SLOTs, implying we can have more than one version of
an
 artifact. ex. jarjar new version is in SLOT 1, i.e. /usr/share/jarjar-1/

 And, these jars in /usr/share/*/lib/*.jar are not only for maven. To be
 specific not intended for maven. These are for system use. Any application
 maven or not is able to benefit from these. What we are doing is using
these
 jars under maven, so we don't have to download these again.



 I could understand this if you are building applications end users can
use
 that are written in Java, but in that case I'd wonder why you don't just
use
 out-of-the-box Maven and either a) just download the dependencies from
the
 central repo or b) build the dependencies from their source and deploy
them
 to your local repository. Of course, with the second option you would
have
 to build several versions of the dependencies.


 To reiterate, our main usecase is supporting packagers at system level.
 There's a need to have a custom build for them. It's not like we
 blind-foldly building maven again instead of using official maven build!
To
 answer your question; at system-level, maven should be run completely
 offline (even at first time!). We have mechanisms in place to take care of
 the deps via DEPEND in ebuilds, which I'm not going to explain. Read about
 Gentoo if you got spare time. It'll be interesting! :)

 --Kasun



 Ralph

 On Jul 4, 2011, at 6:11 AM, Kasun Gajasinghe wrote:

  On Mon, Jul 4, 2011 at 11:31 AM, Ralph Goers 
ralph.go...@dslextreme.com
 wrote:
 
  The point I am making is that if you have all those jars together
 something
  is not going to work correctly. SLF4J only allows one logging
  implementation. If you have all of SLF4J's jars, including the binding
 for
  Log4j as well as Logback, then SLF4J will throw a runtime exception.
 
  Commons Logging also has quirks. If Log4j is present then it will be
 used
  by default, otherwise it will do something else.
 
 
  When you start dumping a whole bunch of jars together in one directory
 you
  had better understand how they are all going to relate to each other.
 
 
  I don't get it. log4j and logback won't be included in gentoo's
uber-jar
  since they aren't dependencies of apache-maven [1]. commons-logging and
  slf4j will be integrated since they are integrated in the upstream
 official
  build as well. What makes you think that I'm bundling together all the
  available logging implementations? Is there a need to?
 
  [1] http://maven.apache.org/ref/2.2.1/apache-maven/dependencies.html
 
  Regards,
  --Kasun


 -
 To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
 For additional commands, e-mail: dev-h...@maven.apache.org




 --
 ~~~***'***~~~
 Kasun Gajasinghe,
 University of Moratuwa,
 Sri Lanka.
 Blog: http://blog.kasunbg.org
 Twitter: http://twitter.com/kasunbg


Re: [Gentoo-maven-intg] Intermediary shaded source files generated by maven-shade-plugin

2011-07-04 Thread Robert Burrell Donkin
On Mon, Jul 4, 2011 at 7:32 PM, Stephen Connolly
stephen.alan.conno...@gmail.com wrote:
 look, what you are trying to do is move an object of infinite mass, keeping
 the lever length and force applied finite. good luck, it will be fun for us
 watching from the sidelines... fundamentally maven is about downloading
 dependencies on demand from the network rather than building from source...
 gentoo is about building from source rather than downloading binaries from
 the network...

(as a gentoo user myself...)

The bytecode languages don't fit well into the Gentoo model. Even
though bytecode is an intermediary source form compiled from source,
Gentoo tries to treat it as a platform dependent binary. The Java team
then fights a losing battle to cobble together enough accurate builds
for the library chain to get anything useful to work. Even then,
because the source bytecode doesn't necessarily match the official
release, strange issue keep cropping up.

After many problems, I've now opted to uninstall the official Maven
and Ant packages (and Eclipse...), and use instead a set of scripts
which accurately and flexibly allow me to configure exactly the
official bytecode I want to use (a little bit like a better eselect).

It has always struck me as somewhat ironic that if the Gentoo team
donned their clue-hats and treated bytecode as the source form then
they might quickly have one of the best development environments for
the bytecode languages...

Robert

-
To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
For additional commands, e-mail: dev-h...@maven.apache.org



Re: [Gentoo-maven-intg] Intermediary shaded source files generated by maven-shade-plugin

2011-07-04 Thread Ralph Goers
From Kasun's answers it is quite clear to me that we will need to add something 
to Jira where it asks for the operating system for all the Java projects I work 
on at the ASF. If the O.S. is Gentoo then we will have to reject any issues 
coming from the stuff that comes as part of the O.S. as it can't be trusted.

Ralph

On Jul 4, 2011, at 11:48 AM, Robert Burrell Donkin wrote:

 On Mon, Jul 4, 2011 at 7:32 PM, Stephen Connolly
 stephen.alan.conno...@gmail.com wrote:
 look, what you are trying to do is move an object of infinite mass, keeping
 the lever length and force applied finite. good luck, it will be fun for us
 watching from the sidelines... fundamentally maven is about downloading
 dependencies on demand from the network rather than building from source...
 gentoo is about building from source rather than downloading binaries from
 the network...
 
 (as a gentoo user myself...)
 
 The bytecode languages don't fit well into the Gentoo model. Even
 though bytecode is an intermediary source form compiled from source,
 Gentoo tries to treat it as a platform dependent binary. The Java team
 then fights a losing battle to cobble together enough accurate builds
 for the library chain to get anything useful to work. Even then,
 because the source bytecode doesn't necessarily match the official
 release, strange issue keep cropping up.
 
 After many problems, I've now opted to uninstall the official Maven
 and Ant packages (and Eclipse...), and use instead a set of scripts
 which accurately and flexibly allow me to configure exactly the
 official bytecode I want to use (a little bit like a better eselect).
 
 It has always struck me as somewhat ironic that if the Gentoo team
 donned their clue-hats and treated bytecode as the source form then
 they might quickly have one of the best development environments for
 the bytecode languages...
 
 Robert
 
 -
 To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
 For additional commands, e-mail: dev-h...@maven.apache.org
 


-
To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
For additional commands, e-mail: dev-h...@maven.apache.org



Re: [Gentoo-maven-intg] Intermediary shaded source files generated by maven-shade-plugin

2011-07-04 Thread Jörg Schaible
Ralph Goers wrote:

 From Kasun's answers it is quite clear to me that we will need to add
 something to Jira where it asks for the operating system for all the Java
 projects I work on at the ASF. If the O.S. is Gentoo then we will have to
 reject any issues coming from the stuff that comes as part of the O.S. as
 it can't be trusted.

Actually not every Gentoo user would ever install a Gentoo-built Maven. At 
least not me ;-)

- Jörg


-
To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
For additional commands, e-mail: dev-h...@maven.apache.org



Re: [Gentoo-maven-intg] Intermediary shaded source files generated by maven-shade-plugin

2011-07-04 Thread Kasun Gajasinghe
On Tue, Jul 5, 2011 at 1:57 AM, Ralph Goers ralph.go...@dslextreme.comwrote:

 From Kasun's answers it is quite clear to me that we will need to add
 something to Jira where it asks for the operating system for all the Java
 projects I work on at the ASF. If the O.S. is Gentoo then we will have to
 reject any issues coming from the stuff that comes as part of the O.S. as it
 can't be trusted.


Binary official build also available in Gentoo already.


 On Jul 4, 2011, at 11:48 AM, Robert Burrell Donkin wrote:

  On Mon, Jul 4, 2011 at 7:32 PM, Stephen Connolly
  stephen.alan.conno...@gmail.com wrote:
  look, what you are trying to do is move an object of infinite mass,
 keeping
  the lever length and force applied finite. good luck, it will be fun for
 us
  watching from the sidelines... fundamentally maven is about downloading
  dependencies on demand from the network rather than building from
 source...
  gentoo is about building from source rather than downloading binaries
 from
  the network...
 
  (as a gentoo user myself...)
 
  The bytecode languages don't fit well into the Gentoo model. Even
  though bytecode is an intermediary source form compiled from source,
  Gentoo tries to treat it as a platform dependent binary. The Java team
  then fights a losing battle to cobble together enough accurate builds
  for the library chain to get anything useful to work. Even then,
  because the source bytecode doesn't necessarily match the official
  release, strange issue keep cropping up.
 
  After many problems, I've now opted to uninstall the official Maven
  and Ant packages (and Eclipse...), and use instead a set of scripts
  which accurately and flexibly allow me to configure exactly the
  official bytecode I want to use (a little bit like a better eselect).
 


By official did you meant the upstream packages available as binary like
maven-bin? If that's the case, these -bins are the same as upstream build. I
guess you meant that since there's only the binary maven is available now.
What did you find wrong?


  It has always struck me as somewhat ironic that if the Gentoo team
  donned their clue-hats and treated bytecode as the source form then
  they might quickly have one of the best development environments for
  the bytecode languages...


I too kind of agree to this since the point being the built jars are
platform independent. If anybody like to know the points for it -
http://www.gentoo.org/proj/en/java/why-build-from-source.xml
I'm not going to discuss why building from source is good or bad any further
and is off-topic! ;)

Regards,
--Kasun

-- 
~~~***'***~~~
Kasun Gajasinghe,
University of Moratuwa,
Sri Lanka.
Blog: http://blog.kasunbg.org
Twitter: http://twitter.com/kasunbg


Re: [Gentoo-maven-intg] Intermediary shaded source files generated by maven-shade-plugin

2011-07-03 Thread Benson Margulies
I'm not sure what you are asking. Shade is a binary operation that
uses asm. It renames packages. There is no feature of creating
corresponding source.

If you just want the original source, the plugin doesn't get into that
business either, that would be a whole 'nother plugin.

On Sun, Jul 3, 2011 at 6:39 AM, Kasun Gajasinghe kasu...@gmail.com wrote:
 Hi,
 Is it possible to have the .java source files which got shaded by
 maven-shade-plugin? Currently,  it generates the uberjar without leaving the
 shaded sources files. There's obviously an intermediary step in which these
 source files will be transformed to shaded java packages like
 hidden.org.codehaus.plexus.util.*.  So, like to know whether it's possible
 to have those .java files. Any complications involved?

 [1] http://maven.apache.org/ref/2.2.1/apache-maven/dependencies.html

 Thanks,
 --Kasun

 --
 ~~~***'***~~~
 Kasun Gajasinghe,
 University of Moratuwa,
 Sri Lanka.
 Blog: http://blog.kasunbg.org
 Twitter: http://twitter.com/kasunbg


-
To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
For additional commands, e-mail: dev-h...@maven.apache.org



Re: [Gentoo-maven-intg] Intermediary shaded source files generated by maven-shade-plugin

2011-07-03 Thread Kasun Gajasinghe
On Sun, Jul 3, 2011 at 4:23 PM, Benson Margulies bimargul...@gmail.comwrote:

 I'm not sure what you are asking. Shade is a binary operation that
 uses asm. It renames packages. There is no feature of creating
 corresponding source.


I see. It means what I asked is not possible. I wasn't aware that it's a
binary operation.
What I want to do is to relocate the packages such as
org.codehaus.plexus.util, org.apache.xerces that are shaded by maven in the
official build. As you know, these should be shaded, else these classes will
conflict with a different version of the same class that a project would be
using.

Because of the approach we are taking, we can't invoke maven-shade-plugin
and get the job done. I think I'll have to manually patch the maven sources
to get the said functionality. Have to proceed on this track if there's no
other way. Can you please let me know the changes required to get this done?

Thanks,
--Kasun


If you just want the original source, the plugin doesn't get into that
 business either, that would be a whole 'nother plugin.

 On Sun, Jul 3, 2011 at 6:39 AM, Kasun Gajasinghe kasu...@gmail.com
 wrote:
  Hi,
  Is it possible to have the .java source files which got shaded by
  maven-shade-plugin? Currently,  it generates the uberjar without leaving
 the
  shaded sources files. There's obviously an intermediary step in which
 these
  source files will be transformed to shaded java packages like
  hidden.org.codehaus.plexus.util.*.  So, like to know whether it's
 possible
  to have those .java files. Any complications involved?
 
  [1] http://maven.apache.org/ref/2.2.1/apache-maven/dependencies.html
 
  Thanks,
  --Kasun
 
  --
  ~~~***'***~~~
  Kasun Gajasinghe,
  University of Moratuwa,
  Sri Lanka.
  Blog: http://blog.kasunbg.org
  Twitter: http://twitter.com/kasunbg
 

 -
 To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
 For additional commands, e-mail: dev-h...@maven.apache.org




-- 
~~~***'***~~~
Kasun Gajasinghe,
University of Moratuwa,
Sri Lanka.
Blog: http://blog.kasunbg.org
Twitter: http://twitter.com/kasunbg


Re: [Gentoo-maven-intg] Intermediary shaded source files generated by maven-shade-plugin

2011-07-03 Thread Benson Margulies
I'm not sure that the operation you are asking for is well-defined.
Shade combines, renames, and transforms, using arbitrary Java plugins
that operate entirely on binaries, which can themselves be the output
of, well, shade. Trying to read the source and perform the same
transformations would be very, very, hard.

You might be able to grab jarjar, a non-maven tool with similar
capabilities, build it from source, and use it for these simple cases
as part of your bootstrap. Or, for bootstrap, you could leave out the
shading and just depend on Xerces unrenamed, go all the way around,
build shade, and then rebuild.

Or you might be able to cherry-pick the maven-shade-plugin source. It
could be that there is a clean separation in there between code
connected to the plugin framework and code that does the work.

On Sun, Jul 3, 2011 at 7:38 AM, Kasun Gajasinghe kasu...@gmail.com wrote:
 On Sun, Jul 3, 2011 at 4:23 PM, Benson Margulies bimargul...@gmail.comwrote:

 I'm not sure what you are asking. Shade is a binary operation that
 uses asm. It renames packages. There is no feature of creating
 corresponding source.


 I see. It means what I asked is not possible. I wasn't aware that it's a
 binary operation.
 What I want to do is to relocate the packages such as
 org.codehaus.plexus.util, org.apache.xerces that are shaded by maven in the
 official build. As you know, these should be shaded, else these classes will
 conflict with a different version of the same class that a project would be
 using.

 Because of the approach we are taking, we can't invoke maven-shade-plugin
 and get the job done. I think I'll have to manually patch the maven sources
 to get the said functionality. Have to proceed on this track if there's no
 other way. Can you please let me know the changes required to get this done?

 Thanks,
 --Kasun


 If you just want the original source, the plugin doesn't get into that
 business either, that would be a whole 'nother plugin.

 On Sun, Jul 3, 2011 at 6:39 AM, Kasun Gajasinghe kasu...@gmail.com
 wrote:
  Hi,
  Is it possible to have the .java source files which got shaded by
  maven-shade-plugin? Currently,  it generates the uberjar without leaving
 the
  shaded sources files. There's obviously an intermediary step in which
 these
  source files will be transformed to shaded java packages like
  hidden.org.codehaus.plexus.util.*.  So, like to know whether it's
 possible
  to have those .java files. Any complications involved?
 
  [1] http://maven.apache.org/ref/2.2.1/apache-maven/dependencies.html
 
  Thanks,
  --Kasun
 
  --
  ~~~***'***~~~
  Kasun Gajasinghe,
  University of Moratuwa,
  Sri Lanka.
  Blog: http://blog.kasunbg.org
  Twitter: http://twitter.com/kasunbg
 

 -
 To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
 For additional commands, e-mail: dev-h...@maven.apache.org




 --
 ~~~***'***~~~
 Kasun Gajasinghe,
 University of Moratuwa,
 Sri Lanka.
 Blog: http://blog.kasunbg.org
 Twitter: http://twitter.com/kasunbg


-
To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
For additional commands, e-mail: dev-h...@maven.apache.org



Re: [Gentoo-maven-intg] Intermediary shaded source files generated by maven-shade-plugin

2011-07-03 Thread Kasun Gajasinghe
On Sun, Jul 3, 2011 at 6:30 PM, Benson Margulies bimargul...@gmail.comwrote:

 I'm not sure that the operation you are asking for is well-defined.
 Shade combines, renames, and transforms, using arbitrary Java plugins
 that operate entirely on binaries, which can themselves be the output
 of, well, shade. Trying to read the source and perform the same
 transformations would be very, very, hard.

 You might be able to grab jarjar, a non-maven tool with similar
 capabilities, build it from source, and use it for these simple cases
 as part of your bootstrap. Or, for bootstrap, you could leave out the
 shading and just depend on Xerces unrenamed, go all the way around,
 build shade, and then rebuild.


I've ran jarjar with some samples and checked. This would indeed do the job.
I hope there is no concerning bugs. I see a bug report saying it fails with
ant 1.8.

Well, I'm going to go ahead with this. Thanks for the suggestion Benson!

--Kasun



 Or you might be able to cherry-pick the maven-shade-plugin source. It
 could be that there is a clean separation in there between code
 connected to the plugin framework and code that does the work.

 On Sun, Jul 3, 2011 at 7:38 AM, Kasun Gajasinghe kasu...@gmail.com
 wrote:
  On Sun, Jul 3, 2011 at 4:23 PM, Benson Margulies bimargul...@gmail.com
 wrote:
 
  I'm not sure what you are asking. Shade is a binary operation that
  uses asm. It renames packages. There is no feature of creating
  corresponding source.
 
 
  I see. It means what I asked is not possible. I wasn't aware that it's a
  binary operation.
  What I want to do is to relocate the packages such as
  org.codehaus.plexus.util, org.apache.xerces that are shaded by maven in
 the
  official build. As you know, these should be shaded, else these classes
 will
  conflict with a different version of the same class that a project would
 be
  using.
 
  Because of the approach we are taking, we can't invoke maven-shade-plugin
  and get the job done. I think I'll have to manually patch the maven
 sources
  to get the said functionality. Have to proceed on this track if there's
 no
  other way. Can you please let me know the changes required to get this
 done?
 
  Thanks,
  --Kasun
 
 
  If you just want the original source, the plugin doesn't get into that
  business either, that would be a whole 'nother plugin.
 
  On Sun, Jul 3, 2011 at 6:39 AM, Kasun Gajasinghe kasu...@gmail.com
  wrote:
   Hi,
   Is it possible to have the .java source files which got shaded by
   maven-shade-plugin? Currently,  it generates the uberjar without
 leaving
  the
   shaded sources files. There's obviously an intermediary step in which
  these
   source files will be transformed to shaded java packages like
   hidden.org.codehaus.plexus.util.*.  So, like to know whether it's
  possible
   to have those .java files. Any complications involved?
  
   [1] http://maven.apache.org/ref/2.2.1/apache-maven/dependencies.html
  
   Thanks,
   --Kasun
  
   --
   ~~~***'***~~~
   Kasun Gajasinghe,
   University of Moratuwa,
   Sri Lanka.
   Blog: http://blog.kasunbg.org
   Twitter: http://twitter.com/kasunbg
  
 
  -
  To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
  For additional commands, e-mail: dev-h...@maven.apache.org
 
 
 
 
  --
  ~~~***'***~~~
  Kasun Gajasinghe,
  University of Moratuwa,
  Sri Lanka.
  Blog: http://blog.kasunbg.org
  Twitter: http://twitter.com/kasunbg
 

 -
 To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
 For additional commands, e-mail: dev-h...@maven.apache.org




-- 
~~~***'***~~~
Kasun Gajasinghe,
University of Moratuwa,
Sri Lanka.
Blog: http://blog.kasunbg.org
Twitter: http://twitter.com/kasunbg


Re: [Gentoo-maven-intg] Intermediary shaded source files generated by maven-shade-plugin

2011-07-03 Thread Ralph Goers
Out of curiosity, you said you are putting building your jars and putting them 
in a shared library. What are you going to do with SLF4J, Log4J, Commons 
Logging and Logback?

Ralph

On Jul 3, 2011, at 9:57 AM, Kasun Gajasinghe wrote:

 On Sun, Jul 3, 2011 at 6:30 PM, Benson Margulies bimargul...@gmail.comwrote:
 
 I'm not sure that the operation you are asking for is well-defined.
 Shade combines, renames, and transforms, using arbitrary Java plugins
 that operate entirely on binaries, which can themselves be the output
 of, well, shade. Trying to read the source and perform the same
 transformations would be very, very, hard.
 
 You might be able to grab jarjar, a non-maven tool with similar
 capabilities, build it from source, and use it for these simple cases
 as part of your bootstrap. Or, for bootstrap, you could leave out the
 shading and just depend on Xerces unrenamed, go all the way around,
 build shade, and then rebuild.
 
 
 I've ran jarjar with some samples and checked. This would indeed do the job.
 I hope there is no concerning bugs. I see a bug report saying it fails with
 ant 1.8.
 
 Well, I'm going to go ahead with this. Thanks for the suggestion Benson!
 
 --Kasun
 
 
 
 Or you might be able to cherry-pick the maven-shade-plugin source. It
 could be that there is a clean separation in there between code
 connected to the plugin framework and code that does the work.
 
 On Sun, Jul 3, 2011 at 7:38 AM, Kasun Gajasinghe kasu...@gmail.com
 wrote:
 On Sun, Jul 3, 2011 at 4:23 PM, Benson Margulies bimargul...@gmail.com
 wrote:
 
 I'm not sure what you are asking. Shade is a binary operation that
 uses asm. It renames packages. There is no feature of creating
 corresponding source.
 
 
 I see. It means what I asked is not possible. I wasn't aware that it's a
 binary operation.
 What I want to do is to relocate the packages such as
 org.codehaus.plexus.util, org.apache.xerces that are shaded by maven in
 the
 official build. As you know, these should be shaded, else these classes
 will
 conflict with a different version of the same class that a project would
 be
 using.
 
 Because of the approach we are taking, we can't invoke maven-shade-plugin
 and get the job done. I think I'll have to manually patch the maven
 sources
 to get the said functionality. Have to proceed on this track if there's
 no
 other way. Can you please let me know the changes required to get this
 done?
 
 Thanks,
 --Kasun
 
 
 If you just want the original source, the plugin doesn't get into that
 business either, that would be a whole 'nother plugin.
 
 On Sun, Jul 3, 2011 at 6:39 AM, Kasun Gajasinghe kasu...@gmail.com
 wrote:
 Hi,
 Is it possible to have the .java source files which got shaded by
 maven-shade-plugin? Currently,  it generates the uberjar without
 leaving
 the
 shaded sources files. There's obviously an intermediary step in which
 these
 source files will be transformed to shaded java packages like
 hidden.org.codehaus.plexus.util.*.  So, like to know whether it's
 possible
 to have those .java files. Any complications involved?
 
 [1] http://maven.apache.org/ref/2.2.1/apache-maven/dependencies.html
 
 Thanks,
 --Kasun
 
 --
 ~~~***'***~~~
 Kasun Gajasinghe,
 University of Moratuwa,
 Sri Lanka.
 Blog: http://blog.kasunbg.org
 Twitter: http://twitter.com/kasunbg
 
 
 -
 To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
 For additional commands, e-mail: dev-h...@maven.apache.org
 
 
 
 
 --
 ~~~***'***~~~
 Kasun Gajasinghe,
 University of Moratuwa,
 Sri Lanka.
 Blog: http://blog.kasunbg.org
 Twitter: http://twitter.com/kasunbg
 
 
 -
 To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
 For additional commands, e-mail: dev-h...@maven.apache.org
 
 
 
 
 -- 
 ~~~***'***~~~
 Kasun Gajasinghe,
 University of Moratuwa,
 Sri Lanka.
 Blog: http://blog.kasunbg.org
 Twitter: http://twitter.com/kasunbg


-
To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
For additional commands, e-mail: dev-h...@maven.apache.org



Re: [Gentoo-maven-intg] Intermediary shaded source files generated by maven-shade-plugin

2011-07-03 Thread Kasun Gajasinghe
On Sun, Jul 3, 2011 at 10:42 PM, Ralph Goers ralph.go...@dslextreme.comwrote:

 Out of curiosity, you said you are putting building your jars and putting
 them in a shared library. What are you going to do with SLF4J, Log4J,
 Commons Logging and Logback?


slf4j, commons-logging etc. will also be installed at /usr/share as usual.
Maven needs to shade these jars and few others. So, these jars will be
shaded, and packaged together to make an uber-jar. slf4j, commons-logging
system jars won't be changed. What exactly the point you are trying to make?

And, how does log4j and Logback relates to core maven? I haven't seen these
as dependencies!

--Kasun



 Ralph

 On Jul 3, 2011, at 9:57 AM, Kasun Gajasinghe wrote:

  On Sun, Jul 3, 2011 at 6:30 PM, Benson Margulies bimargul...@gmail.com
 wrote:
 
  I'm not sure that the operation you are asking for is well-defined.
  Shade combines, renames, and transforms, using arbitrary Java plugins
  that operate entirely on binaries, which can themselves be the output
  of, well, shade. Trying to read the source and perform the same
  transformations would be very, very, hard.
 
  You might be able to grab jarjar, a non-maven tool with similar
  capabilities, build it from source, and use it for these simple cases
  as part of your bootstrap. Or, for bootstrap, you could leave out the
  shading and just depend on Xerces unrenamed, go all the way around,
  build shade, and then rebuild.
 
 
  I've ran jarjar with some samples and checked. This would indeed do the
 job.
  I hope there is no concerning bugs. I see a bug report saying it fails
 with
  ant 1.8.
 
  Well, I'm going to go ahead with this. Thanks for the suggestion Benson!
 
  --Kasun
 
 
 
  Or you might be able to cherry-pick the maven-shade-plugin source. It
  could be that there is a clean separation in there between code
  connected to the plugin framework and code that does the work.
 
  On Sun, Jul 3, 2011 at 7:38 AM, Kasun Gajasinghe kasu...@gmail.com
  wrote:
  On Sun, Jul 3, 2011 at 4:23 PM, Benson Margulies 
 bimargul...@gmail.com
  wrote:
 
  I'm not sure what you are asking. Shade is a binary operation that
  uses asm. It renames packages. There is no feature of creating
  corresponding source.
 
 
  I see. It means what I asked is not possible. I wasn't aware that it's
 a
  binary operation.
  What I want to do is to relocate the packages such as
  org.codehaus.plexus.util, org.apache.xerces that are shaded by maven in
  the
  official build. As you know, these should be shaded, else these classes
  will
  conflict with a different version of the same class that a project
 would
  be
  using.
 
  Because of the approach we are taking, we can't invoke
 maven-shade-plugin
  and get the job done. I think I'll have to manually patch the maven
  sources
  to get the said functionality. Have to proceed on this track if there's
  no
  other way. Can you please let me know the changes required to get this
  done?
 
  Thanks,
  --Kasun
 
 
  If you just want the original source, the plugin doesn't get into that
  business either, that would be a whole 'nother plugin.
 
  On Sun, Jul 3, 2011 at 6:39 AM, Kasun Gajasinghe kasu...@gmail.com
  wrote:
  Hi,
  Is it possible to have the .java source files which got shaded by
  maven-shade-plugin? Currently,  it generates the uberjar without
  leaving
  the
  shaded sources files. There's obviously an intermediary step in which
  these
  source files will be transformed to shaded java packages like
  hidden.org.codehaus.plexus.util.*.  So, like to know whether it's
  possible
  to have those .java files. Any complications involved?
 
  [1] http://maven.apache.org/ref/2.2.1/apache-maven/dependencies.html
 
  Thanks,
  --Kasun
 
  --
  ~~~***'***~~~
  Kasun Gajasinghe,
  University of Moratuwa,
  Sri Lanka.
  Blog: http://blog.kasunbg.org
  Twitter: http://twitter.com/kasunbg
 
 
  -
  To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
  For additional commands, e-mail: dev-h...@maven.apache.org
 
 
 
 
  --
  ~~~***'***~~~
  Kasun Gajasinghe,
  University of Moratuwa,
  Sri Lanka.
  Blog: http://blog.kasunbg.org
  Twitter: http://twitter.com/kasunbg
 
 
  -
  To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
  For additional commands, e-mail: dev-h...@maven.apache.org
 
 
 
 
  --
  ~~~***'***~~~
  Kasun Gajasinghe,
  University of Moratuwa,
  Sri Lanka.
  Blog: http://blog.kasunbg.org
  Twitter: http://twitter.com/kasunbg


 -
 To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
 For additional commands, e-mail: dev-h...@maven.apache.org




-- 
~~~***'***~~~
Kasun Gajasinghe,
University of Moratuwa,
Sri Lanka.
Blog: http://blog.kasunbg.org
Twitter: