You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@flex.apache.org by Christofer Dutz <ch...@c-ware.de> on 2014/10/17 18:35:04 UTC

Changes to the mavenizer

Hi,

ok while there was only one test failling with Maven 3.1 it was a nasty one and it took me about 12 Hours of debugging to track it down in total :(
Maven 3.1 seems to be doing a lot more validation than 3.0. Currently I have the pom, swc, swf and all the rb.swc files in one artifact. Then I sort of have a dependency of an artifact to itself, but with a different type. This far Maven seems to be fine with it. Now as soon as I want to use RSL linking, I have one dependency with scope "rsl" and the same with "compile". Now it tries to resolve the problem, but as "rsl" is unknown to Maven, it defaults to "runtime", which breaks the flex build.

It seems the only option we have is to separate the artifact and it's resource bundles into two different artifacts. Now there would be differnt options for this:


-          Generate them to a different groupId releative to the artifact itself (so for org.apache.flex.framework:framework:{version}:swc this would be org.apache.flex.framework.rb:framework:{version}:swc)

-          Generate them to a different artifactId by appending "-rb" to the artifact (Or whatever would be the consense) (so for org.apache.flex.framework:framework:{version}:swc this would be org.apache.flex.framework:framework-rb:{version}:swc)

What do you think?

I'm really glad we haven't released anything yet ... this change would have been a real PITA to work around :)

But the good thing ist hat besides having to re-deploy the FDKs there shouldn't be any impact on existing builds as the resources were allready pulled in automatically.

Chris

AW: Changes to the mavenizer

Posted by Christofer Dutz <ch...@c-ware.de>.
Ok after refactoring the Mavenizer to generate separate resourcebundle artifacts and this still failling, I coninued debugging Mavens internals. I think I have come up with a solution:
Maven olny does the fallback conflict resolving if you dont explicitly tell it what to do:

So in case of this scenario:

    <dependencies>
        <dependency>
            <groupId>org.apache.flex.framework</groupId>
            <artifactId>framework</artifactId>
            <version>${flex.version}</version>
            <type>swc</type>
            <scope>rsl</scope>
        </dependency>

        <dependency>
            <groupId>org.apache.flex</groupId>
            <artifactId>framework</artifactId>
            <version>${flex.version}</version>
            <type>pom</type>
        </dependency>
        <dependency>
            <groupId>com.adobe.flash.framework</groupId>
            <artifactId>playerglobal</artifactId>
            <version>${flash.version}</version>
            <type>swc</type>
        </dependency>
    </dependencies>

Adding a dependencyManagement section like this will resolve the issues:

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.apache.flex.framework</groupId>
                <artifactId>framework</artifactId>
                <version>${flex.version}</version>
                <type>rb.swc</type>
                <!--
                    Even if compile is the default, in this case
                    you explicitly have to define it.
                -->
                <scope>compile</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

Note: I can't remember ever setting the scope to compile if not explicitly forcing test resources to go into the main, but in this case you explicitly have to set it to compile and hereby force Maven to use that scope.

With this change my last test in the testsuite seems to be running :-)

So: All of you guys who deployed their FDKs to local maven repositories can be happy ... you don't have to re-deploy your FDKs ;-)

Chris

-----Ursprüngliche Nachricht-----
Von: Maxim Solodovnik [mailto:solomax666@gmail.com] 
Gesendet: Samstag, 18. Oktober 2014 06:23
An: dev@flex.apache.org
Betreff: Re: Changes to the mavenizer

Please let me know if you need help in testing :)

On 18 October 2014 03:19, Christofer Dutz <ch...@c-ware.de> wrote:

> But still with the adjusted artifacts I'm still stuck :-(
>
> Oh gee ... I wonder how I will be albe to sort out all that crap till 
> mid of November :-(
>
> Currently it seems as If Flexmojos 7.1 has temporarily lost the 
> ability to use rsl linking :-|
>
> But at least you can depend on the falcon-compiler:0.0.3-SNAPSHOT and 
> get the latest builds from Apache automatically ;-)
>
> Sometimes It's a real curse ... had to go up to Maven 3.1 cause the 
> 3.0 fake guice was messing up with falcons real guice. Now after 
> investing several days in getting every problem sorted out things like 
> this happen :-( How would I love to work on some juicy implementation 
> tasks and not have to sort out stuff like this :-|
>
> Chris
>
> -----Ursprüngliche Nachricht-----
> Von: Christofer Dutz [mailto:christofer.dutz@c-ware.de]
> Gesendet: Freitag, 17. Oktober 2014 20:51
> An: dev@flex.apache.org
> Betreff: AW: Changes to the mavenizer
>
> Well more the Falcon Support as that's what I need for the Apachecon.
> But I'm working on some auto deploy scripts to deploy Maven artifacts 
> for our FDK ... but first I need Falcon and FlexJS support in Flexmojos.
>
> Chris
>
> -----Ursprüngliche Nachricht-----
> Von: Maxim Solodovnik [mailto:solomax666@gmail.com]
> Gesendet: Freitag, 17. Oktober 2014 20:35
> An: dev@flex.apache.org
> Betreff: Re: Changes to the mavenizer
>
> and no manual mavenizing?
> ApacheCon is coming :)
>
> On 18 October 2014 01:20, Christofer Dutz <ch...@c-ware.de>
> wrote:
>
> > Ok ... to make this short ... adding a "-rb" to the end of the 
> > artifact name would sort of let the number of artifact directories
> explode.
> > That's why I implemented this feature wuth the ".rb" suffix on the 
> > groupId. If Flexmojos, The Testsuite and my projects build with this 
> > option, I guess Flexmojos 7.1.0 is allmost ready to go :-)
> >
> > Chris
> >
> > -----Ursprüngliche Nachricht-----
> > Von: Christofer Dutz [mailto:christofer.dutz@c-ware.de]
> > Gesendet: Freitag, 17. Oktober 2014 18:35
> > An: 'dev@flex.apache.org'
> > Betreff: Changes to the mavenizer
> >
> > Hi,
> >
> > ok while there was only one test failling with Maven 3.1 it was a 
> > nasty one and it took me about 12 Hours of debugging to track it 
> > down in total :( Maven 3.1 seems to be doing a lot more validation 
> > than 3.0. Currently I have the pom, swc, swf and all the rb.swc 
> > files in one artifact. Then I sort of have a dependency of an 
> > artifact to itself, but with a different type. This far Maven seems 
> > to be fine with it. Now as soon as I want to use RSL linking, I have 
> > one dependency with scope "rsl" and the same with "compile". Now it 
> > tries to resolve the problem, but as "rsl" is unknown to Maven, it 
> > defaults to
> "runtime", which breaks the flex build.
> >
> > It seems the only option we have is to separate the artifact and 
> > it's resource bundles into two different artifacts. Now there would 
> > be differnt options for this:
> >
> >
> > -          Generate them to a different groupId releative to the artifact
> > itself (so for org.apache.flex.framework:framework:{version}:swc 
> > this would be org.apache.flex.framework.rb:framework:{version}:swc)
> >
> > -          Generate them to a different artifactId by appending "-rb" to
> > the artifact (Or whatever would be the consense) (so for 
> > org.apache.flex.framework:framework:{version}:swc this would be
> > org.apache.flex.framework:framework-rb:{version}:swc)
> >
> > What do you think?
> >
> > I'm really glad we haven't released anything yet ... this change 
> > would have been a real PITA to work around :)
> >
> > But the good thing ist hat besides having to re-deploy the FDKs 
> > there shouldn't be any impact on existing builds as the resources 
> > were allready pulled in automatically.
> >
> > Chris
> >
>
>
>
> --
> WBR
> Maxim aka solomax
>



--
WBR
Maxim aka solomax

Re: Changes to the mavenizer

Posted by Maxim Solodovnik <so...@gmail.com>.
Please let me know if you need help in testing :)

On 18 October 2014 03:19, Christofer Dutz <ch...@c-ware.de> wrote:

> But still with the adjusted artifacts I'm still stuck :-(
>
> Oh gee ... I wonder how I will be albe to sort out all that crap till mid
> of November :-(
>
> Currently it seems as If Flexmojos 7.1 has temporarily lost the ability to
> use rsl linking :-|
>
> But at least you can depend on the falcon-compiler:0.0.3-SNAPSHOT and get
> the latest builds from Apache automatically ;-)
>
> Sometimes It's a real curse ... had to go up to Maven 3.1 cause the 3.0
> fake guice was messing up with falcons real guice. Now after investing
> several days in getting every problem sorted out things like this happen
> :-( How would I love to work on some juicy implementation tasks and not
> have to sort out stuff like this :-|
>
> Chris
>
> -----Ursprüngliche Nachricht-----
> Von: Christofer Dutz [mailto:christofer.dutz@c-ware.de]
> Gesendet: Freitag, 17. Oktober 2014 20:51
> An: dev@flex.apache.org
> Betreff: AW: Changes to the mavenizer
>
> Well more the Falcon Support as that's what I need for the Apachecon.
> But I'm working on some auto deploy scripts to deploy Maven artifacts for
> our FDK ... but first I need Falcon and FlexJS support in Flexmojos.
>
> Chris
>
> -----Ursprüngliche Nachricht-----
> Von: Maxim Solodovnik [mailto:solomax666@gmail.com]
> Gesendet: Freitag, 17. Oktober 2014 20:35
> An: dev@flex.apache.org
> Betreff: Re: Changes to the mavenizer
>
> and no manual mavenizing?
> ApacheCon is coming :)
>
> On 18 October 2014 01:20, Christofer Dutz <ch...@c-ware.de>
> wrote:
>
> > Ok ... to make this short ... adding a "-rb" to the end of the
> > artifact name would sort of let the number of artifact directories
> explode.
> > That's why I implemented this feature wuth the ".rb" suffix on the
> > groupId. If Flexmojos, The Testsuite and my projects build with this
> > option, I guess Flexmojos 7.1.0 is allmost ready to go :-)
> >
> > Chris
> >
> > -----Ursprüngliche Nachricht-----
> > Von: Christofer Dutz [mailto:christofer.dutz@c-ware.de]
> > Gesendet: Freitag, 17. Oktober 2014 18:35
> > An: 'dev@flex.apache.org'
> > Betreff: Changes to the mavenizer
> >
> > Hi,
> >
> > ok while there was only one test failling with Maven 3.1 it was a
> > nasty one and it took me about 12 Hours of debugging to track it down
> > in total :( Maven 3.1 seems to be doing a lot more validation than
> > 3.0. Currently I have the pom, swc, swf and all the rb.swc files in
> > one artifact. Then I sort of have a dependency of an artifact to
> > itself, but with a different type. This far Maven seems to be fine
> > with it. Now as soon as I want to use RSL linking, I have one
> > dependency with scope "rsl" and the same with "compile". Now it tries
> > to resolve the problem, but as "rsl" is unknown to Maven, it defaults to
> "runtime", which breaks the flex build.
> >
> > It seems the only option we have is to separate the artifact and it's
> > resource bundles into two different artifacts. Now there would be
> > differnt options for this:
> >
> >
> > -          Generate them to a different groupId releative to the artifact
> > itself (so for org.apache.flex.framework:framework:{version}:swc this
> > would be org.apache.flex.framework.rb:framework:{version}:swc)
> >
> > -          Generate them to a different artifactId by appending "-rb" to
> > the artifact (Or whatever would be the consense) (so for
> > org.apache.flex.framework:framework:{version}:swc this would be
> > org.apache.flex.framework:framework-rb:{version}:swc)
> >
> > What do you think?
> >
> > I'm really glad we haven't released anything yet ... this change would
> > have been a real PITA to work around :)
> >
> > But the good thing ist hat besides having to re-deploy the FDKs there
> > shouldn't be any impact on existing builds as the resources were
> > allready pulled in automatically.
> >
> > Chris
> >
>
>
>
> --
> WBR
> Maxim aka solomax
>



-- 
WBR
Maxim aka solomax

AW: Changes to the mavenizer

Posted by Christofer Dutz <ch...@c-ware.de>.
But still with the adjusted artifacts I'm still stuck :-(

Oh gee ... I wonder how I will be albe to sort out all that crap till mid of November :-(

Currently it seems as If Flexmojos 7.1 has temporarily lost the ability to use rsl linking :-|

But at least you can depend on the falcon-compiler:0.0.3-SNAPSHOT and get the latest builds from Apache automatically ;-)

Sometimes It's a real curse ... had to go up to Maven 3.1 cause the 3.0 fake guice was messing up with falcons real guice. Now after investing several days in getting every problem sorted out things like this happen :-( How would I love to work on some juicy implementation tasks and not have to sort out stuff like this :-|

Chris

-----Ursprüngliche Nachricht-----
Von: Christofer Dutz [mailto:christofer.dutz@c-ware.de] 
Gesendet: Freitag, 17. Oktober 2014 20:51
An: dev@flex.apache.org
Betreff: AW: Changes to the mavenizer

Well more the Falcon Support as that's what I need for the Apachecon.
But I'm working on some auto deploy scripts to deploy Maven artifacts for our FDK ... but first I need Falcon and FlexJS support in Flexmojos.

Chris

-----Ursprüngliche Nachricht-----
Von: Maxim Solodovnik [mailto:solomax666@gmail.com]
Gesendet: Freitag, 17. Oktober 2014 20:35
An: dev@flex.apache.org
Betreff: Re: Changes to the mavenizer

and no manual mavenizing?
ApacheCon is coming :)

On 18 October 2014 01:20, Christofer Dutz <ch...@c-ware.de> wrote:

> Ok ... to make this short ... adding a "-rb" to the end of the 
> artifact name would sort of let the number of artifact directories explode.
> That's why I implemented this feature wuth the ".rb" suffix on the 
> groupId. If Flexmojos, The Testsuite and my projects build with this 
> option, I guess Flexmojos 7.1.0 is allmost ready to go :-)
>
> Chris
>
> -----Ursprüngliche Nachricht-----
> Von: Christofer Dutz [mailto:christofer.dutz@c-ware.de]
> Gesendet: Freitag, 17. Oktober 2014 18:35
> An: 'dev@flex.apache.org'
> Betreff: Changes to the mavenizer
>
> Hi,
>
> ok while there was only one test failling with Maven 3.1 it was a 
> nasty one and it took me about 12 Hours of debugging to track it down 
> in total :( Maven 3.1 seems to be doing a lot more validation than 
> 3.0. Currently I have the pom, swc, swf and all the rb.swc files in 
> one artifact. Then I sort of have a dependency of an artifact to 
> itself, but with a different type. This far Maven seems to be fine 
> with it. Now as soon as I want to use RSL linking, I have one 
> dependency with scope "rsl" and the same with "compile". Now it tries 
> to resolve the problem, but as "rsl" is unknown to Maven, it defaults to "runtime", which breaks the flex build.
>
> It seems the only option we have is to separate the artifact and it's 
> resource bundles into two different artifacts. Now there would be 
> differnt options for this:
>
>
> -          Generate them to a different groupId releative to the artifact
> itself (so for org.apache.flex.framework:framework:{version}:swc this 
> would be org.apache.flex.framework.rb:framework:{version}:swc)
>
> -          Generate them to a different artifactId by appending "-rb" to
> the artifact (Or whatever would be the consense) (so for 
> org.apache.flex.framework:framework:{version}:swc this would be
> org.apache.flex.framework:framework-rb:{version}:swc)
>
> What do you think?
>
> I'm really glad we haven't released anything yet ... this change would 
> have been a real PITA to work around :)
>
> But the good thing ist hat besides having to re-deploy the FDKs there 
> shouldn't be any impact on existing builds as the resources were 
> allready pulled in automatically.
>
> Chris
>



--
WBR
Maxim aka solomax

AW: Changes to the mavenizer

Posted by Christofer Dutz <ch...@c-ware.de>.
Well more the Falcon Support as that's what I need for the Apachecon.
But I'm working on some auto deploy scripts to deploy Maven artifacts for our FDK ... but first I need Falcon and FlexJS support in Flexmojos.

Chris

-----Ursprüngliche Nachricht-----
Von: Maxim Solodovnik [mailto:solomax666@gmail.com] 
Gesendet: Freitag, 17. Oktober 2014 20:35
An: dev@flex.apache.org
Betreff: Re: Changes to the mavenizer

and no manual mavenizing?
ApacheCon is coming :)

On 18 October 2014 01:20, Christofer Dutz <ch...@c-ware.de> wrote:

> Ok ... to make this short ... adding a "-rb" to the end of the 
> artifact name would sort of let the number of artifact directories explode.
> That's why I implemented this feature wuth the ".rb" suffix on the 
> groupId. If Flexmojos, The Testsuite and my projects build with this 
> option, I guess Flexmojos 7.1.0 is allmost ready to go :-)
>
> Chris
>
> -----Ursprüngliche Nachricht-----
> Von: Christofer Dutz [mailto:christofer.dutz@c-ware.de]
> Gesendet: Freitag, 17. Oktober 2014 18:35
> An: 'dev@flex.apache.org'
> Betreff: Changes to the mavenizer
>
> Hi,
>
> ok while there was only one test failling with Maven 3.1 it was a 
> nasty one and it took me about 12 Hours of debugging to track it down 
> in total :( Maven 3.1 seems to be doing a lot more validation than 
> 3.0. Currently I have the pom, swc, swf and all the rb.swc files in 
> one artifact. Then I sort of have a dependency of an artifact to 
> itself, but with a different type. This far Maven seems to be fine 
> with it. Now as soon as I want to use RSL linking, I have one 
> dependency with scope "rsl" and the same with "compile". Now it tries 
> to resolve the problem, but as "rsl" is unknown to Maven, it defaults to "runtime", which breaks the flex build.
>
> It seems the only option we have is to separate the artifact and it's 
> resource bundles into two different artifacts. Now there would be 
> differnt options for this:
>
>
> -          Generate them to a different groupId releative to the artifact
> itself (so for org.apache.flex.framework:framework:{version}:swc this 
> would be org.apache.flex.framework.rb:framework:{version}:swc)
>
> -          Generate them to a different artifactId by appending "-rb" to
> the artifact (Or whatever would be the consense) (so for 
> org.apache.flex.framework:framework:{version}:swc this would be
> org.apache.flex.framework:framework-rb:{version}:swc)
>
> What do you think?
>
> I'm really glad we haven't released anything yet ... this change would 
> have been a real PITA to work around :)
>
> But the good thing ist hat besides having to re-deploy the FDKs there 
> shouldn't be any impact on existing builds as the resources were 
> allready pulled in automatically.
>
> Chris
>



--
WBR
Maxim aka solomax

Re: Changes to the mavenizer

Posted by Maxim Solodovnik <so...@gmail.com>.
and no manual mavenizing?
ApacheCon is coming :)

On 18 October 2014 01:20, Christofer Dutz <ch...@c-ware.de> wrote:

> Ok ... to make this short ... adding a "-rb" to the end of the artifact
> name would sort of let the number of artifact directories explode.
> That's why I implemented this feature wuth the ".rb" suffix on the
> groupId. If Flexmojos, The Testsuite and my projects build with this
> option, I guess Flexmojos 7.1.0 is allmost ready to go :-)
>
> Chris
>
> -----Ursprüngliche Nachricht-----
> Von: Christofer Dutz [mailto:christofer.dutz@c-ware.de]
> Gesendet: Freitag, 17. Oktober 2014 18:35
> An: 'dev@flex.apache.org'
> Betreff: Changes to the mavenizer
>
> Hi,
>
> ok while there was only one test failling with Maven 3.1 it was a nasty
> one and it took me about 12 Hours of debugging to track it down in total :(
> Maven 3.1 seems to be doing a lot more validation than 3.0. Currently I
> have the pom, swc, swf and all the rb.swc files in one artifact. Then I
> sort of have a dependency of an artifact to itself, but with a different
> type. This far Maven seems to be fine with it. Now as soon as I want to use
> RSL linking, I have one dependency with scope "rsl" and the same with
> "compile". Now it tries to resolve the problem, but as "rsl" is unknown to
> Maven, it defaults to "runtime", which breaks the flex build.
>
> It seems the only option we have is to separate the artifact and it's
> resource bundles into two different artifacts. Now there would be differnt
> options for this:
>
>
> -          Generate them to a different groupId releative to the artifact
> itself (so for org.apache.flex.framework:framework:{version}:swc this would
> be org.apache.flex.framework.rb:framework:{version}:swc)
>
> -          Generate them to a different artifactId by appending "-rb" to
> the artifact (Or whatever would be the consense) (so for
> org.apache.flex.framework:framework:{version}:swc this would be
> org.apache.flex.framework:framework-rb:{version}:swc)
>
> What do you think?
>
> I'm really glad we haven't released anything yet ... this change would
> have been a real PITA to work around :)
>
> But the good thing ist hat besides having to re-deploy the FDKs there
> shouldn't be any impact on existing builds as the resources were allready
> pulled in automatically.
>
> Chris
>



-- 
WBR
Maxim aka solomax

AW: Changes to the mavenizer

Posted by Christofer Dutz <ch...@c-ware.de>.
Ok ... to make this short ... adding a "-rb" to the end of the artifact name would sort of let the number of artifact directories explode.
That's why I implemented this feature wuth the ".rb" suffix on the groupId. If Flexmojos, The Testsuite and my projects build with this option, I guess Flexmojos 7.1.0 is allmost ready to go :-)

Chris

-----Ursprüngliche Nachricht-----
Von: Christofer Dutz [mailto:christofer.dutz@c-ware.de] 
Gesendet: Freitag, 17. Oktober 2014 18:35
An: 'dev@flex.apache.org'
Betreff: Changes to the mavenizer

Hi,

ok while there was only one test failling with Maven 3.1 it was a nasty one and it took me about 12 Hours of debugging to track it down in total :( Maven 3.1 seems to be doing a lot more validation than 3.0. Currently I have the pom, swc, swf and all the rb.swc files in one artifact. Then I sort of have a dependency of an artifact to itself, but with a different type. This far Maven seems to be fine with it. Now as soon as I want to use RSL linking, I have one dependency with scope "rsl" and the same with "compile". Now it tries to resolve the problem, but as "rsl" is unknown to Maven, it defaults to "runtime", which breaks the flex build.

It seems the only option we have is to separate the artifact and it's resource bundles into two different artifacts. Now there would be differnt options for this:


-          Generate them to a different groupId releative to the artifact itself (so for org.apache.flex.framework:framework:{version}:swc this would be org.apache.flex.framework.rb:framework:{version}:swc)

-          Generate them to a different artifactId by appending "-rb" to the artifact (Or whatever would be the consense) (so for org.apache.flex.framework:framework:{version}:swc this would be org.apache.flex.framework:framework-rb:{version}:swc)

What do you think?

I'm really glad we haven't released anything yet ... this change would have been a real PITA to work around :)

But the good thing ist hat besides having to re-deploy the FDKs there shouldn't be any impact on existing builds as the resources were allready pulled in automatically.

Chris