SlideShare une entreprise Scribd logo
1  sur  65
Tycho:
 Max Rydahl Andersen
         Red Hat
  at EclipseCon 2012
Tycho:
 Max Rydahl Andersen
         Red Hat
  at EclipseCon 2012
•Plugins for JBoss and related
 technology
•AS, JSF, CDI, Seam,
 Portal, Birt, Maven, …
•Top ~5 plugin on Eclipse Market
 Place
1.200.000 starts of JBoss Tools January-March 2012
•45 modules
•~8 year old     •222 plugins
•PDE Ant Build   •76 features
                 •36 test features
                 •154 test plugins
•45 modules
      •~8 year old     •222 plugins
      •PDE Ant Build   •76 features
                       •36 test features
                       •154 test plugins


a.k.a. The “Big Ass” Project that moved
                 to Tycho
PDE/Ant Build
  common   plugins      .core



                         .ui



                          ...


           features   .feature


                      .source.fe
                         ature


                          ...



            tests       .tests



                          ...


             site
PDE/Tycho
common   plugins      .core



                       .ui



                        ...


         features   .feature


                    .source.fe
                       ature


                        ...



          tests       .tests



                        ...


           site
PDE/Tycho
common   plugins      .core        <?xml version="1.0" encoding="UTF-8"?>
                                   <project>
                                     <modelVersion>4.0.0</modelVersion>
                       .ui
                                     <parent>
                                       <groupId>org.jboss.tools.common</groupId>
                        ...            <artifactId>plugins</artifactId>
                                       <version>3.3.0-SNAPSHOT</version>
                                     </parent>
         features   .feature
                                     <groupId>org.jboss.tools.common.plugins</groupId>
                    .source.fe       <artifactId>org.jboss.tools.common</artifactId>
                       ature         <packaging>eclipse-plugin</packaging>
                                   </project>
                        ...


          tests       .tests


                        ...


           site
PDE/Tycho
common   plugins      .core        <?xml version="1.0" encoding="UTF-8"?>
                                   <project>
                                     <modelVersion>4.0.0</modelVersion>
                       .ui
                                     <parent>
                                       <groupId>org.jboss.tools.common</groupId>
                        ...            <artifactId>plugins</artifactId>
                                       <version>3.3.0-SNAPSHOT</version>
                                     </parent>
         features   .feature
                                     <groupId>org.jboss.tools.common.plugins</groupId>
                    .source.fe       <artifactId>org.jboss.tools.common</artifactId>
                       ature         <packaging>eclipse-plugin</packaging>
                                   </project>
                        ...
                                      <packaging>eclipse-test-plugin</packaging>
                                      <packaging>eclipse-feature</packaging>
          tests       .tests          <packaging>eclipse-repository</packaging>
                                      <packaging>eclipse-application</packaging>

                        ...


           site
common   plugins      .core
                                 ”Big Ass”
                       .ui


                        ...



         features   .feature


                    .source.fe
                       ature


                        ...



          tests       .tests



                        ...


           site
common                     plugins           .core
                                                                                                      hibernate                                                                              CDI
                                                                                                                                                                                                                            ”Big Ass”
                                                                                                                                                                                                                            plugins                         .core                                JSF                        plugins                   .core
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  ...                      plugins                              .core                             ...                         plugins                              .core
                                                                                                                               plugins                      .core                                                                                                                                                                                                                             seam                    plugins                        .core

                                                           .ui
                                                                                                                                                              .ui                                                                                                                                                                                      .ui                                                                                                                                                                                                       .ui                                                                                                   .ui
                                                                                                                                                                                                                                                                 .ui                                                                                                                                                                                       .ui
                                                               ...

                                                                                                                                                               ...                                                                                                                                                                                     ...
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   ...                                                                                                 ...
                                       features        .feature
                                                                                                                                                                                                                                                                  ...                                                                                                                                                                                      ...

                                                       .source.fe                                                              features                   .feature                                                                                                                                                          features           .feature
                                                          ature
                                                                                                                                                                                                                                                                                                                                                                                                                      features                     .feature                                                            features                          .feature                                                             features                          .feature
                                                                                                                                                                                                                            features                     .feature
                                                               ...                                                                                        .source.fe
                                                                                                                                                             ature                                                                                                                                                                             .source.fe
                                                                                                                                                                                                                                                                                                                                                  ature
                                                                                                                                                                                                                                                                                                                                                                                                                                                   .source.fe                                                                                           .source.fe                                                                                         .source.fe
                                        tests            .tests                                                                                                                                                                                        .source.fe                                                                                                                                                                                     ature                                                                                                ature                                                                                              ature
                                                                                                                                                               ...                                                                                        ature
                                                                                                                                                                                                                                                                                                                                                       ...
                                                               ...
                                                                                                                                                                                                                                                                                                                                                                                                                                                           ...                                                                                                     ...                                                                                                 ...
                                                                                                                                 tests                      .tests
                                         site                                                                                                                                                                                                                     ...
                                                                                                                                                                                                                                                                                                                               tests              .tests

                                                                                                                                                               ...                                                                                                                                                                                                                                                      tests                        .tests
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             tests                              .tests                                                             tests                          .tests
                                                                                                                                                                                                                             tests                         .tests                                                                                      ...
                                                                                                                                  site
                                                                                                                                                                                                                                                                                                                                                                                                                                                           ...
                                                                                                                                                                                                                                                                                                                                site                                                                                                                                                                                                                               ...                                                                                                 ...
                                                                                                                                                                                                                                                                  ...
                                                                                                                                                                                                                                                                                                                                                                                                                          site
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              site                                                                                                 site
                                                                                                                                                                                                                               site




      ...              plugins              .core                    ...              plugins           .core            ...              plugins            .core            ...              plugins           .core                ...              plugins            .core            ...              plugins           .core             ...              plugins           .core             ...              plugins           .core                    ...              plugins           .core            ...              plugins           .core                  ...              plugins           .core               ...              plugins               .core



                                                .ui                                                      .ui                                                  .ui                                                 .ui                                                      .ui                                                 .ui                                                  .ui                                                  .ui                                                         .ui                                                 .ui                                                       .ui                                                        .ui



                                                ...                                                       ...                                                  ...                                                 ...                                                      ...                                                 ...                                                  ...                                                  ...                                                         ...                                                 ...                                                       ...                                                        ...


                       features            .feature                                   features        .feature                            features          .feature                           features        .feature                                features         .feature                            features        .feature                             features        .feature                             features        .feature                                    features        .feature                            features        .feature                                  features        .feature                               features          .feature


                                          .source.fe                                                  .source.fe                                           .source.fe                                          .source.fe                                               .source.fe                                          .source.fe                                           .source.fe                                           .source.fe                                                  .source.fe                                          .source.fe                                                .source.fe                                              .source.fe
                                             ature                                                       ature                                                ature                                               ature                                                    ature                                               ature                                                ature                                                ature                                                       ature                                               ature                                                     ature                                                   ature

...         plugins         .core                        ...               plugins         .core                   ...         plugins         .core                    ...         plugins         .core                    ...            plugins         .core                    ...         plugins         .core                   ...          plugins         .core                    ...         plugins         .core                     ...               plugins         .core                   ...         plugins         .core                         ...         plugins         .core                   ...            plugins         .core
                                                ...                                                       ...                                                  ...                                                 ...                                                      ...                                                 ...                                                  ...                                                  ...                                                         ...                                                 ...                                                       ...                                                        ...

                                .ui                                                            .ui                                                 .ui                                                  .ui                                                     .ui                                                  .ui                                                  .ui                                                  .ui                                                         .ui                                                 .ui                                                       .ui                                                    .ui
                        tests               .tests                                     tests            .tests                             tests             .tests                             tests            .tests                                 tests             .tests                             tests            .tests                              tests            .tests                              tests            .tests                                     tests            .tests                             tests            .tests                                   tests            .tests                                tests                .tests

                                 ...                                                            ...                                                 ...                                                  ...                                                     ...                                                  ...                                                  ...                                                  ...                                                         ...                                                 ...                                                       ...                                                    ...
                                                ...                                                       ...                                                  ...                                                 ...                                                      ...                                                 ...                                                  ...                                                  ...                                                         ...                                                 ...                                                       ...                                                        ...

            features       .feature                                        features       .feature                             features       .feature                              features       .feature                                 features       .feature                              features       .feature                              features       .feature                              features       .feature                                     features       .feature                             features       .feature                                   features       .feature                                features       .feature
                         site                                                           site                                                site                                                 site                                                    site                                                 site                                                 site                                                 site                                                        site                                                site                                                      site                                                   site

                          .source.fe                                                     .source.fe                                          .source.fe                                           .source.fe                                              .source.fe                                           .source.fe                                           .source.fe                                           .source.fe                                                  .source.fe                                          .source.fe                                                .source.fe                                             .source.fe
                             ature                                                          ature                                               ature                                                ature                                                   ature                                                ature                                                ature                                                ature                                                       ature                                               ature                                                     ature                                                  ature


                                 ...                                                            ...                                                 ...                                                  ...                                                     ...                                                  ...                                                  ...                                                  ...                                                         ...                                                 ...                                                       ...                                                    ...



             tests          .tests                                          tests          .tests                               tests          .tests                                tests          .tests                                   tests          .tests                                tests          .tests                                tests          .tests                                tests          .tests                                       tests          .tests                               tests          .tests                                     tests          .tests                                  tests          .tests
      ...              plugins              .core                    ...              plugins           .core            ...              plugins            .core            ...              plugins           .core                ...              plugins            .core            ...              plugins           .core             ...              plugins           .core             ...              plugins           .core                    ...              plugins           .core            ...              plugins           .core                  ...              plugins           .core               ...              plugins               .core

                                 ...                                                            ...                                                 ...                                                  ...                                                     ...                                                  ...                                                  ...                                                  ...                                                         ...                                                 ...                                                       ...                                                    ...
                                                .ui                                                      .ui                                                  .ui                                                 .ui                                                      .ui                                                 .ui                                                  .ui                                                  .ui                                                         .ui                                                 .ui                                                       .ui                                                        .ui

              site                                                           site                                                site                                                 site                                                    site                                                 site                                                 site                                                 site                                                        site                                                site                                                      site                                                   site
                                                ...                                                       ...                                                  ...                                                 ...                                                      ...                                                 ...                                                  ...                                                  ...                                                         ...                                                 ...                                                       ...                                                        ...


                       features            .feature                                   features        .feature                            features          .feature                           features        .feature                                features         .feature                            features        .feature                             features        .feature                             features        .feature                                    features        .feature                            features        .feature                                  features        .feature                               features          .feature


                                          .source.fe                                                  .source.fe                                           .source.fe                                          .source.fe                                               .source.fe                                          .source.fe                                           .source.fe                                           .source.fe                                                  .source.fe                                          .source.fe                                                .source.fe                                              .source.fe
                                             ature                                                       ature                                                ature                                               ature                                                    ature                                               ature                                                ature                                                ature                                                       ature                                               ature                                                     ature                                                   ature


                                                ...                                                       ...                                                  ...                                                 ...                                                      ...                                                 ...                                                  ...                                                  ...                                                         ...                                                 ...                                                       ...                                                        ...



                        tests               .tests                                     tests            .tests                             tests             .tests                             tests            .tests                                 tests             .tests                             tests            .tests                              tests            .tests                              tests            .tests                                     tests            .tests                             tests            .tests                                   tests            .tests                                tests                .tests



                                                ...                                                       ...                                                  ...                                                 ...                                                      ...                                                 ...                                                  ...                                                  ...                                                         ...                                                 ...                                                       ...                                                        ...


                         site                                                           site                                                site                                                 site                                                    site                                                 site                                                 site                                                 site                                                        site                                                site                                                      site                                                   site
General Layout
common   plugins      .core



                       .ui


                        ...


         features   .feature


                    .source.fe
                       ature


                        ...


          tests       .tests


                        ...


           site
General Layout
common   plugins      .core
                                 •module is a “releasable unit”
                       .ui


                        ...


         features   .feature


                    .source.fe
                       ature


                        ...


          tests       .tests


                        ...


           site
General Layout
common   plugins      .core
                                 •module is a “releasable unit”
                       .ui
                                 •pom.xml at each level
                        ...


         features   .feature


                    .source.fe
                       ature


                        ...


          tests       .tests


                        ...


           site
General Layout
common   plugins      .core
                                 •module is a “releasable unit”
                       .ui
                                 •pom.xml at each level
                        ...       •allows to build subparts very
         features   .feature
                                   easily
                    .source.fe
                       ature


                        ...


          tests       .tests


                        ...


           site
General Layout
common   plugins      .core
                                 •module is a “releasable unit”
                       .ui
                                 •pom.xml at each level
                        ...       •allows to build subparts very
         features   .feature
                                   easily
                    .source.fe
                                  •separate customization for
                       ature
                                   modules
                        ...


          tests       .tests


                        ...


           site
General Layout
common   plugins      .core
                                 •module is a “releasable unit”
                       .ui
                                 •pom.xml at each level
                        ...       •allows to build subparts very
         features   .feature
                                   easily
                    .source.fe
                                  •separate customization for
                       ature
                                   modules
                                 •Can use mvn version per module
                        ...


          tests       .tests


                        ...


           site
tycho-versions-plugin
common    plugins      .core


                        .ui


                         ...



          features   .feature


                     .source.fe
                        ature


                         ...



           tests       .tests


                         ...


            site
tycho-versions-plugin
common    plugins      .core
                                  1.0.2
2.0.1     2.0.1         .ui
                                  1.0.3
                         ...
                                  1.1.2
          features   .feature
                                  2.0.1
          2.0.1      .source.fe
                        ature     2.0.1
                         ...
                                  1.1.2
           tests       .tests     1.1.2
          2.0.1          ...      1.1.2
            site
                     1.1.3
tycho-versions-plugin
common    plugins      .core
                                  1.0.2
2.0.1     2.0.1         .ui
                                  1.0.3
                         ...
                                  1.1.2
                                          mvn org.eclipse.tycho:tycho-versions-
          features   .feature
                                  2.0.1   plugin:set-version -DnewVersion=2.0.2


          2.0.1      .source.fe
                        ature     2.0.1
                         ...
                                  1.1.2
           tests       .tests     1.1.2
          2.0.1          ...      1.1.2
            site
                     1.1.3
tycho-versions-plugin
common    plugins      .core
                                  1.0.2
2.0.2     2.0.2         .ui
                                  1.0.3
                         ...
                                  1.1.2
          features   .feature
                                  2.0.2
          2.0.2      .source.fe
                        ature     2.0.2
                         ...
                                  1.1.2
           tests       .tests     1.1.2
          2.0.2          ...      1.1.2
            site
                     1.1.3
tycho-versions-plugin
common    plugins      .core
                                  2.0.2
2.0.2     2.0.2         .ui
                                  2.0.2
                         ...
                                  2.0.2
          features   .feature
                                  2.0.2
          2.0.2      .source.fe
                        ature     2.0.2
                         ...
                                  2.0.2
           tests       .tests     2.0.2
          2.0.2          ...      2.0.2
            site
                     2.0.2
tycho-versions-plugin
common    plugins      .core
                                  2.0.2
2.0.2     2.0.2         .ui
                                  2.0.2
                         ...
                                  2.0.2
                                          mvn org.eclipse.tycho:tycho-versions-
          features   .feature
                                  2.0.2   plugin:set-version -DnewVersion=2.1.0


          2.0.2      .source.fe
                        ature     2.0.2
                         ...
                                  2.0.2
           tests       .tests     2.0.2
          2.0.2          ...      2.0.2
            site
                     2.0.2
tycho-versions-plugin
common    plugins      .core
                                  2.1.0
2.1.0     2.1.0         .ui
                                  2.1.0
                         ...
                                  2.1.0
          features   .feature
                                  2.1.0
          2.1.0      .source.fe
                        ature     2.1.0
                         ...
                                  2.1.0
           tests       .tests     2.1.0
          2.1.0          ...      2.1.0
            site
                     2.1.0
tycho-versions-plugin
common    plugins      .core
                                  1.7.3
2.1.0     2.1.0         .ui
                                  2.1.0
                         ...
                                  2.1.0
          features   .feature
                                  2.1.0
          2.1.0      .source.fe
                        ature     2.1.0
                         ...
                                  2.1.0
           tests       .tests     2.1.0
          2.1.0          ...      2.1.0
            site
                     2.1.0
tycho-versions-plugin
common    plugins      .core
                                  1.7.3
2.1.0     2.1.0         .ui
                                  2.1.0
                         ...
                                  2.1.0
                                          mvn org.eclipse.tycho:tycho-versions-
          features   .feature
                                  2.1.0   plugin:set-version -DnewVersion=2.1.1


          2.1.0      .source.fe
                        ature     2.1.0
                         ...
                                  2.1.0
           tests       .tests     2.1.0
          2.1.0          ...      2.1.0
            site
                     2.1.0
tycho-versions-plugin
common    plugins      .core
                                  1.7.3
2.1.1     2.1.1         .ui
                                  2.1.1
                         ...
                                  2.1.1
          features   .feature
                                  2.1.1
          2.1.1      .source.fe
                        ature     2.1.1
                         ...
                                  2.1.1
           tests       .tests     2.1.1
          2.1.1          ...      2.1.1
            site
                     2.1.1
tycho-versions-plugin
common    plugins      .core
                                  1.7.3
2.1.1     2.1.1         .ui
                                  2.1.1 •Easy update of versions in
                         ...
                                  2.1.1  •pom.xml
                                         •manifest.mf
          features   .feature
                                  2.1.1
                                         •feature.xml
          2.1.1      .source.fe
                        ature     2.1.1 •site.xml
                         ...
                                  2.1.1 •.product
           tests       .tests     2.1.1 •….
          2.1.1          ...      2.1.1 •Don’t Repeat Yourself
            site
                     2.1.1
Plugin A
 Require-Bundle:
   Z [1.2;2.0]



    Plugin B



    Plugin C
Require-Bundle: Z
    [1.7;2.0]



   Source
Plugin A
 Require-Bundle:
   Z [1.2;2.0]



    Plugin B



    Plugin C
Require-Bundle: Z
    [1.7;2.0]



   Source




                    ~/.m2/repository
Plugin A                           p2 repositories
 Require-Bundle:
   Z [1.2;2.0]

                                            Plugin Q 1.2.1
    Plugin B

                                       Plugin Z 1.7


                                                           Plugin Z 1.8
    Plugin C
Require-Bundle: Z
    [1.7;2.0]                               Plugin Z 2.0




   Source




                    ~/.m2/repository
Plugin A                                 p2 repositories
 Require-Bundle:
   Z [1.2;2.0]

                                                  Plugin Q 1.2.1
    Plugin B

                                             Plugin Z 1.7


                                                                 Plugin Z 1.8
    Plugin C
Require-Bundle: Z
    [1.7;2.0]                                     Plugin Z 2.0




   Source
                              Plugin Z 1.8




                    ~/.m2/repository
Plugin A                                     p2 repositories
 Require-Bundle:
   Z [1.2;2.0]

                                                      Plugin Q 1.2.1
    Plugin B

                                                 Plugin Z 1.7


                                                                     Plugin Z 1.8
    Plugin C
Require-Bundle: Z
    [1.7;2.0]                                         Plugin Z 2.0




   Source             Plugin B
                        1.2.3
                     Plugin C     Plugin Z 1.8
                      1.2.3
                       Plugin A
                         1.2.3


                    ~/.m2/repository
Plugin A                           p2 repositories
 Require-Bundle:
   Z [1.2;2.0]         Plugin Z 1.7
                         Plugin Q
                                            Plugin Q 1.2.1
    Plugin B

                    Target Definition   Plugin Z 1.7


                                                           Plugin Z 1.8
    Plugin C
Require-Bundle: Z
    [1.7;2.0]                               Plugin Z 2.0




   Source




                    ~/.m2/repository
Plugin A                                   p2 repositories
 Require-Bundle:
   Z [1.2;2.0]         Plugin Z 1.7
                         Plugin Q
                                                    Plugin Q 1.2.1
    Plugin B

                    Target Definition           Plugin Z 1.7


                                                                   Plugin Z 1.8
    Plugin C
Require-Bundle: Z
    [1.7;2.0]                                       Plugin Z 2.0




   Source                     Plugin Z 1.7


                              Plugin Q 1.2.1



                    ~/.m2/repository
Plugin A                                     p2 repositories
 Require-Bundle:
   Z [1.2;2.0]         Plugin Z 1.7
                         Plugin Q
                                                      Plugin Q 1.2.1
    Plugin B

                    Target Definition             Plugin Z 1.7


                                                                     Plugin Z 1.8
    Plugin C
Require-Bundle: Z
    [1.7;2.0]                                         Plugin Z 2.0




   Source             Plugin B
                                 Plugin Z 1.7
                        1.2.3
                     Plugin C
                      1.2.3
                       Plugin A
                                Plugin Q 1.2.1
                         1.2.3


                    ~/.m2/repository
Plugin A                                     p2 repositories
 Require-Bundle:
   Z [1.2;2.0]         Plugin Z 1.7
                         Plugin Q
                                                      Plugin Q 1.2.1
    Plugin B

                    Target Definition             Plugin Z 1.7


                                                                     Plugin Z 1.8
    Plugin C
Require-Bundle: Z
    [1.7;2.0]                                         Plugin Z 2.0




   Source             Plugin B
                                 Plugin Z 1.7
                        1.2.3
                     Plugin C
                      1.2.3
                       Plugin A
                                Plugin Q 1.2.1
                         1.2.3


                    ~/.m2/repository
Plugin A                                     p2 repositories
 Require-Bundle:
   Z [1.2;2.0]         Plugin Z 1.7
                         Plugin Q
                                                      Plugin Q 1.2.1
    Plugin B

                    Target Definition             Plugin Z 1.7


                                                                     Plugin Z 1.8
    Plugin C
Require-Bundle: Z
    [1.7;2.0]                                         Plugin Z 2.0




   Source             Plugin B
                                 Plugin Z 1.7
                        1.2.3
                     Plugin C                           Plugin B
                      1.2.3                               1.2.3
                       Plugin A
                                Plugin Q 1.2.1
                         1.2.3                           Plugin A
                                                           1.2.3

                    ~/.m2/repository
p2 repositories
                       Plugin Z 1.7
                         Plugin Q
                                            Plugin Q 1.2.1




    Plugin C
                    Target Definition   Plugin Z 1.7

Require-Bundle: Z                                          Plugin Z 1.8
    [1.7;2.0]
        B                                   Plugin Z 2.0




   Source
                                              Plugin B
                                                1.2.3

                                               Plugin A
                                                 1.2.3

                    ~/.m2/repository
p2 repositories
                       Plugin Z 1.7
                         Plugin Q
                                                       Plugin Q 1.2.1




    Plugin C
                    Target Definition              Plugin Z 1.7

Require-Bundle: Z                                                     Plugin Z 1.8
    [1.7;2.0]
        B                                              Plugin Z 2.0




   Source             Plugin B
                                 Plugin Z 1.7
                        1.2.3                            Plugin B
                                                           1.2.3
                                 Plugin Q 1.2.1
                                                          Plugin A
                                                            1.2.3

                    ~/.m2/repository
p2 repositories
                       Plugin Z 1.7
                         Plugin Q
                                                       Plugin Q 1.2.1




    Plugin C
                    Target Definition              Plugin Z 1.7

Require-Bundle: Z                                                     Plugin Z 1.8
    [1.7;2.0]
        B                                              Plugin Z 2.0




   Source             Plugin B
                                 Plugin Z 1.7
                        1.2.3                            Plugin B
                                                           1.2.3
                      Plugin C   Plugin Q 1.2.1
                        1.2.3                             Plugin A
                                                            1.2.3

                    ~/.m2/repository
! ! <format>'v'yyyyMMdd-HHmm'-${BID}'</format>
! ! <format>'v'yyyyMMdd-HHmm'-${BID}'</format>
! ! <format>'v'yyyyMMdd-HHmm'-${BID}'</format>
! ! <format>'v'yyyyMMdd-HHmm'-${BID}'</format>
! ! <format>'v'yyyyMMdd-HHmm'-${BID}'</format>
! ! <format>'v'yyyyMMdd-HHmm'-${BID}'</format>
0.13+


        ! ! <format>'v'yyyyMMdd-HHmm'-${BID}'</format>
Update Sites
common   plugins      .core      artifacts.jar
                                 content.jar
                       .ui
                                 features/org.jboss.tools.forge.feature_1.0.0.v20120327-0403-Beta3.jar
                        ...
                                 features/org.jboss.tools.forge.test.feature_1.0.0.v20120327-0403-Beta3.jar
         features   .feature


                    .source.fe   plugins/org.jboss.tools.forge.core.test_1.0.0.v20120327-0403-Beta3.jar
                       ature
                                 plugins/org.jboss.tools.forge.core_1.0.0.v20120327-0403-Beta3.jar
                        ...
                                 plugins/org.jboss.tools.forge.runtime.ext_1.0.0.v20120327-0403-Beta3.jar
          tests       .tests
                                 plugins/org.jboss.tools.forge.runtime_1.0.0.v20120327-0403-Beta3.jar
                        ...


           site
                                 plugins/org.jboss.tools.forge.ui.test_1.0.0.v20120327-0403-Beta3.jar
                                 plugins/org.jboss.tools.forge.ui_1.0.0.v20120327-0403-Beta3.jar
Source Features
common   plugins      .core


                       .ui


                        ...


         features   .feature


                    .source.fe
                       ature


                        ...


          tests       .tests


                        ...


           site
Source Features
                                 <plugins>
common   plugins      .core        <plugin>
                                     <groupId>org.eclipse.tycho.extras</groupId>
                                     <artifactId>tycho-source-feature-plugin</artifactId>
                       .ui           <version>${tychoVersion}</version>
                                     <executions>
                                      <execution>
                        ...              <id>source-feature</id>
                                        <phase>package</phase>
                                        <goals>
         features   .feature               <goal>source-feature</goal>
                                        </goals>
                                       </execution>
                    .source.fe       </executions>
                       ature
                                   </plugin>
                                   <plugin>
                        ...          <groupId>org.eclipse.tycho</groupId>
                                     <artifactId>tycho-p2-plugin</artifactId>
                                     <version>${tychoVersion}</version>
          tests       .tests
                                     <executions>
                                       <execution>
                                        <id>attached-p2-metadata</id>
                                        <phase>package</phase>
                        ...
                                        <goals>
                                           <goal>p2-metadata</goal>
           site                         </goals>
                                       </execution>
                                     </executions>
                                   </plugin>
                                 </plugins>
Source Features
                                 <plugins>
common   plugins      .core        <plugin>
                                     <groupId>org.eclipse.tycho.extras</groupId>
                                     <artifactId>tycho-source-feature-plugin</artifactId>
                       .ui           <version>${tychoVersion}</version>
                                     <executions>
                                      <execution>
                        ...              <id>source-feature</id>
                                        <phase>package</phase>
                                        <goals>
         features   .feature               <goal>source-feature</goal>
                                        </goals>
                                       </execution>
                    .source.fe       </executions>
                       ature
                                   </plugin>
                                   <plugin>
                        ...          <groupId>org.eclipse.tycho</groupId>
                                     <artifactId>tycho-p2-plugin</artifactId>
                                     <version>${tychoVersion}</version>
          tests       .tests
                                     <executions>
                                       <execution>
                                        <id>attached-p2-metadata</id>
                                        <phase>package</phase>
                        ...
                                        <goals>
                                           <goal>p2-metadata</goal>
           site                         </goals>
                                       </execution>

                                                                                            0.14+
                                     </executions>
                                   </plugin>
                                 </plugins>
Source Features
                                 <plugins>
common   plugins      .core        <plugin>
                                     <groupId>org.eclipse.tycho.extras</groupId>
                                     <artifactId>tycho-source-feature-plugin</artifactId>
                       .ui           <version>${tychoVersion}</version>
                                     <executions>
                                      <execution>
                        ...              <id>source-feature</id>
                                        <phase>package</phase>
                                        <goals>
         features   .feature               <goal>source-feature</goal>
                                        </goals>
                                       </execution>
                    .source.fe       </executions>
                       ature
                                   </plugin>
                                   <plugin>
                        ...          <groupId>org.eclipse.tycho</groupId>
                                     <artifactId>tycho-p2-plugin</artifactId>
                                     <version>${tychoVersion}</version>
          tests       .tests
                                     <executions>
                                       <execution>
                                        <id>attached-p2-metadata</id>
                                        <phase>package</phase>
                        ...
                                        <goals>
                                           <goal>p2-metadata</goal>
           site                         </goals>
                                       </execution>
                                     </executions>
                                   </plugin>
                                 </plugins>
Source Features
common   plugins      .core      artifacts.jar
                                 content.jar
                       .ui
                                 features/org.jboss.tools.forge.feature_1.0.0.v20120327-0403-Beta3.jar
                        ...
                                 features/org.jboss.tools.forge.test.feature_1.0.0.v20120327-0403-Beta3.jar
         features   .feature


                    .source.fe   plugins/org.jboss.tools.forge.core.test_1.0.0.v20120327-0403-Beta3.jar
                       ature
                                 plugins/org.jboss.tools.forge.core_1.0.0.v20120327-0403-Beta3.jar
                        ...
                                 plugins/org.jboss.tools.forge.runtime.ext_1.0.0.v20120327-0403-Beta3.jar
          tests       .tests
                                 plugins/org.jboss.tools.forge.runtime_1.0.0.v20120327-0403-Beta3.jar
                        ...


           site
                                 plugins/org.jboss.tools.forge.ui.test_1.0.0.v20120327-0403-Beta3.jar
                                 plugins/org.jboss.tools.forge.ui_1.0.0.v20120327-0403-Beta3.jar
Source Features
common   plugins      .core      artifacts.jar
                                 content.jar
                       .ui       features/org.jboss.tools.forge.feature.source_1.0.0.v20120327-0403-Beta3.jar
                                 features/org.jboss.tools.forge.feature_1.0.0.v20120327-0403-Beta3.jar
                        ...      features/org.jboss.tools.forge.test.feature.source_1.0.0.v20120327-0403-Beta3.
                                 features/org.jboss.tools.forge.test.feature_1.0.0.v20120327-0403-Beta3.jar
         features   .feature
                                 plugins/org.jboss.tools.forge.core.source_1.0.0.v20120327-0403-Beta3.jar
                                 plugins/org.jboss.tools.forge.core.test.source_1.0.0.v20120327-0403-Beta3.jar
                    .source.fe   plugins/org.jboss.tools.forge.core.test_1.0.0.v20120327-0403-Beta3.jar
                       ature
                                 plugins/org.jboss.tools.forge.core_1.0.0.v20120327-0403-Beta3.jar
                        ...
                                 plugins/org.jboss.tools.forge.runtime.ext.source_1.0.0.v20120327-0403-Beta3.ja
                                 plugins/org.jboss.tools.forge.runtime.ext_1.0.0.v20120327-0403-Beta3.jar
          tests       .tests
                                 plugins/org.jboss.tools.forge.runtime.source_1.0.0.v20120327-0403-Beta3.jar
                                 plugins/org.jboss.tools.forge.runtime_1.0.0.v20120327-0403-Beta3.jar
                                 plugins/org.jboss.tools.forge.ui.source_1.0.0.v20120327-0403-Beta3.jar
                        ...
                                 plugins/org.jboss.tools.forge.ui.test.source_1.0.0.v20120327-0403-Beta3.jar
           site
                                 plugins/org.jboss.tools.forge.ui.test_1.0.0.v20120327-0403-Beta3.jar
                                 plugins/org.jboss.tools.forge.ui_1.0.0.v20120327-0403-Beta3.jar
Concise, Large Ecosystem, improving,
    growing, versatile, responsive
       community, Just Works

Has had some nasty bugs - but they are
          fixed (0.13/0.14+)


       Need to understand
    Maven + OSGi + p2 (Speed?)
Tycho:
Tycho:
 just damn’good
Tycho:          Resources:

  http://wiki.eclipse.org/Category:Tycho

      http://wiki.eclipse.org/Tycho/
             Reference_Card

      http://wiki.eclipse.org/Tycho/          http://bit.ly/maxtycho
             Packaging_Types

“Coping with versions in large multi-module
   osgi projects” - http://bit.ly/rTWUsq
??
                                                   ?? ?
Tycho:          Resources:
                                                  ? ?
  http://wiki.eclipse.org/Category:Tycho

      http://wiki.eclipse.org/Tycho/
             Reference_Card

      http://wiki.eclipse.org/Tycho/          http://bit.ly/maxtycho
             Packaging_Types

“Coping with versions in large multi-module
   osgi projects” - http://bit.ly/rTWUsq
Tycho:
 http://bit.ly/maxtycho
??
                           ?? ?
Tycho:                    ? ?

 http://bit.ly/maxtycho

Contenu connexe

Tendances

Jenkinsプラグインの作り方
Jenkinsプラグインの作り方Jenkinsプラグインの作り方
Jenkinsプラグインの作り方Kiyotaka Oku
 
Jsf, facelets, spring, hibernate, maven2
Jsf, facelets, spring, hibernate, maven2Jsf, facelets, spring, hibernate, maven2
Jsf, facelets, spring, hibernate, maven2Raghavan Mohan
 
Maven 3 Overview
Maven 3  OverviewMaven 3  Overview
Maven 3 OverviewMike Ensor
 
Maven 3… so what?
Maven 3… so what?Maven 3… so what?
Maven 3… so what?Abel Muíño
 
Make use of Sonar for your mobile developments - It's easy and useful!
Make use of Sonar for your mobile developments - It's easy and useful!Make use of Sonar for your mobile developments - It's easy and useful!
Make use of Sonar for your mobile developments - It's easy and useful!cyrilpicat
 
Java build tool_comparison
Java build tool_comparisonJava build tool_comparison
Java build tool_comparisonManav Prasad
 
Java, Eclipse, Maven & JSF tutorial
Java, Eclipse, Maven & JSF tutorialJava, Eclipse, Maven & JSF tutorial
Java, Eclipse, Maven & JSF tutorialRaghavan Mohan
 
Hands On with Maven
Hands On with MavenHands On with Maven
Hands On with MavenSid Anand
 
Alpes Jug (29th March, 2010) - Apache Maven
Alpes Jug (29th March, 2010) - Apache MavenAlpes Jug (29th March, 2010) - Apache Maven
Alpes Jug (29th March, 2010) - Apache MavenArnaud Héritier
 
Geneva Jug (30th March, 2010) - Maven
Geneva Jug (30th March, 2010) - MavenGeneva Jug (30th March, 2010) - Maven
Geneva Jug (30th March, 2010) - MavenArnaud Héritier
 
From Ant to Maven to Gradle a tale of CI tools for JVM
From Ant to Maven to Gradle a tale of CI tools for JVMFrom Ant to Maven to Gradle a tale of CI tools for JVM
From Ant to Maven to Gradle a tale of CI tools for JVMBucharest Java User Group
 
[Spring Camp 2013] Java Configuration 없인 못살아!
[Spring Camp 2013] Java Configuration 없인 못살아![Spring Camp 2013] Java Configuration 없인 못살아!
[Spring Camp 2013] Java Configuration 없인 못살아!Arawn Park
 

Tendances (20)

Maven
MavenMaven
Maven
 
Jenkinsプラグインの作り方
Jenkinsプラグインの作り方Jenkinsプラグインの作り方
Jenkinsプラグインの作り方
 
Maven
MavenMaven
Maven
 
Maven
MavenMaven
Maven
 
Apache Maven 2 Part 2
Apache Maven 2 Part 2Apache Maven 2 Part 2
Apache Maven 2 Part 2
 
Jsf, facelets, spring, hibernate, maven2
Jsf, facelets, spring, hibernate, maven2Jsf, facelets, spring, hibernate, maven2
Jsf, facelets, spring, hibernate, maven2
 
Maven 3 Overview
Maven 3  OverviewMaven 3  Overview
Maven 3 Overview
 
Apache Maven
Apache MavenApache Maven
Apache Maven
 
Maven 3… so what?
Maven 3… so what?Maven 3… so what?
Maven 3… so what?
 
Make use of Sonar for your mobile developments - It's easy and useful!
Make use of Sonar for your mobile developments - It's easy and useful!Make use of Sonar for your mobile developments - It's easy and useful!
Make use of Sonar for your mobile developments - It's easy and useful!
 
Maven
Maven Maven
Maven
 
Django in the Real World
Django in the Real WorldDjango in the Real World
Django in the Real World
 
Java build tool_comparison
Java build tool_comparisonJava build tool_comparison
Java build tool_comparison
 
Java, Eclipse, Maven & JSF tutorial
Java, Eclipse, Maven & JSF tutorialJava, Eclipse, Maven & JSF tutorial
Java, Eclipse, Maven & JSF tutorial
 
Hands On with Maven
Hands On with MavenHands On with Maven
Hands On with Maven
 
Alpes Jug (29th March, 2010) - Apache Maven
Alpes Jug (29th March, 2010) - Apache MavenAlpes Jug (29th March, 2010) - Apache Maven
Alpes Jug (29th March, 2010) - Apache Maven
 
Geneva Jug (30th March, 2010) - Maven
Geneva Jug (30th March, 2010) - MavenGeneva Jug (30th March, 2010) - Maven
Geneva Jug (30th March, 2010) - Maven
 
Apache Maven for AT/QC
Apache Maven for AT/QCApache Maven for AT/QC
Apache Maven for AT/QC
 
From Ant to Maven to Gradle a tale of CI tools for JVM
From Ant to Maven to Gradle a tale of CI tools for JVMFrom Ant to Maven to Gradle a tale of CI tools for JVM
From Ant to Maven to Gradle a tale of CI tools for JVM
 
[Spring Camp 2013] Java Configuration 없인 못살아!
[Spring Camp 2013] Java Configuration 없인 못살아![Spring Camp 2013] Java Configuration 없인 못살아!
[Spring Camp 2013] Java Configuration 없인 못살아!
 

Similaire à Tycho - good, bad or ugly ?

IzPack at LyonJUG'11
IzPack at LyonJUG'11IzPack at LyonJUG'11
IzPack at LyonJUG'11julien.ponge
 
Maven: Managing Software Projects for Repeatable Results
Maven: Managing Software Projects for Repeatable ResultsMaven: Managing Software Projects for Repeatable Results
Maven: Managing Software Projects for Repeatable ResultsSteve Keener
 
SenchaCon 2016: Building Enterprise Ext JS Apps with Mavenized Sencha Cmd - F...
SenchaCon 2016: Building Enterprise Ext JS Apps with Mavenized Sencha Cmd - F...SenchaCon 2016: Building Enterprise Ext JS Apps with Mavenized Sencha Cmd - F...
SenchaCon 2016: Building Enterprise Ext JS Apps with Mavenized Sencha Cmd - F...Sencha
 
Soft shake 2013 - make use of sonar on your mobile developments
Soft shake 2013 - make use of sonar on your mobile developmentsSoft shake 2013 - make use of sonar on your mobile developments
Soft shake 2013 - make use of sonar on your mobile developmentsrfelden
 
Spring Web Service, Spring JMS, Eclipse & Maven tutorials
Spring Web Service, Spring JMS, Eclipse & Maven tutorialsSpring Web Service, Spring JMS, Eclipse & Maven tutorials
Spring Web Service, Spring JMS, Eclipse & Maven tutorialsRaghavan Mohan
 
How to create a skeleton of a Java console application
How to create a skeleton of a Java console applicationHow to create a skeleton of a Java console application
How to create a skeleton of a Java console applicationDmitri Pisarenko
 
Training in Android with Maven
Training in Android with MavenTraining in Android with Maven
Training in Android with MavenArcadian Learning
 
企业级软件的组件化和动态化开发实践
企业级软件的组件化和动态化开发实践企业级软件的组件化和动态化开发实践
企业级软件的组件化和动态化开发实践Jacky Chi
 
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)mfrancis
 
Apache Bigtop and ARM64 / AArch64 - Empowering Big Data Everywhere
Apache Bigtop and ARM64 / AArch64 - Empowering Big Data EverywhereApache Bigtop and ARM64 / AArch64 - Empowering Big Data Everywhere
Apache Bigtop and ARM64 / AArch64 - Empowering Big Data EverywhereGanesh Raju
 
JSF, Facelets, Spring-JSF & Maven
JSF, Facelets, Spring-JSF & MavenJSF, Facelets, Spring-JSF & Maven
JSF, Facelets, Spring-JSF & MavenRaghavan Mohan
 
Pom configuration java xml
Pom configuration java xmlPom configuration java xml
Pom configuration java xmlakmini
 
I Love APIs 2015: Continuous Integration the Virtuous Cycle
I Love APIs 2015: Continuous Integration the Virtuous CycleI Love APIs 2015: Continuous Integration the Virtuous Cycle
I Love APIs 2015: Continuous Integration the Virtuous CycleApigee | Google Cloud
 
Apache maven, a software project management tool
Apache maven, a software project management toolApache maven, a software project management tool
Apache maven, a software project management toolRenato Primavera
 
BMO - Intelligent Projects with Maven
BMO - Intelligent Projects with MavenBMO - Intelligent Projects with Maven
BMO - Intelligent Projects with MavenMert Çalışkan
 

Similaire à Tycho - good, bad or ugly ? (20)

IzPack at LyonJUG'11
IzPack at LyonJUG'11IzPack at LyonJUG'11
IzPack at LyonJUG'11
 
Maven: Managing Software Projects for Repeatable Results
Maven: Managing Software Projects for Repeatable ResultsMaven: Managing Software Projects for Repeatable Results
Maven: Managing Software Projects for Repeatable Results
 
Ant, Maven and Jenkins
Ant, Maven and JenkinsAnt, Maven and Jenkins
Ant, Maven and Jenkins
 
SenchaCon 2016: Building Enterprise Ext JS Apps with Mavenized Sencha Cmd - F...
SenchaCon 2016: Building Enterprise Ext JS Apps with Mavenized Sencha Cmd - F...SenchaCon 2016: Building Enterprise Ext JS Apps with Mavenized Sencha Cmd - F...
SenchaCon 2016: Building Enterprise Ext JS Apps with Mavenized Sencha Cmd - F...
 
Soft shake 2013 - make use of sonar on your mobile developments
Soft shake 2013 - make use of sonar on your mobile developmentsSoft shake 2013 - make use of sonar on your mobile developments
Soft shake 2013 - make use of sonar on your mobile developments
 
Spring Web Service, Spring JMS, Eclipse & Maven tutorials
Spring Web Service, Spring JMS, Eclipse & Maven tutorialsSpring Web Service, Spring JMS, Eclipse & Maven tutorials
Spring Web Service, Spring JMS, Eclipse & Maven tutorials
 
How to create a skeleton of a Java console application
How to create a skeleton of a Java console applicationHow to create a skeleton of a Java console application
How to create a skeleton of a Java console application
 
Training in Android with Maven
Training in Android with MavenTraining in Android with Maven
Training in Android with Maven
 
Maven
MavenMaven
Maven
 
企业级软件的组件化和动态化开发实践
企业级软件的组件化和动态化开发实践企业级软件的组件化和动态化开发实践
企业级软件的组件化和动态化开发实践
 
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)
 
Using Maven2
Using Maven2Using Maven2
Using Maven2
 
Apache Bigtop and ARM64 / AArch64 - Empowering Big Data Everywhere
Apache Bigtop and ARM64 / AArch64 - Empowering Big Data EverywhereApache Bigtop and ARM64 / AArch64 - Empowering Big Data Everywhere
Apache Bigtop and ARM64 / AArch64 - Empowering Big Data Everywhere
 
JSF, Facelets, Spring-JSF & Maven
JSF, Facelets, Spring-JSF & MavenJSF, Facelets, Spring-JSF & Maven
JSF, Facelets, Spring-JSF & Maven
 
Pom configuration java xml
Pom configuration java xmlPom configuration java xml
Pom configuration java xml
 
Pom
PomPom
Pom
 
I Love APIs 2015: Continuous Integration the Virtuous Cycle
I Love APIs 2015: Continuous Integration the Virtuous CycleI Love APIs 2015: Continuous Integration the Virtuous Cycle
I Love APIs 2015: Continuous Integration the Virtuous Cycle
 
Apache maven, a software project management tool
Apache maven, a software project management toolApache maven, a software project management tool
Apache maven, a software project management tool
 
intellimeet
intellimeetintellimeet
intellimeet
 
BMO - Intelligent Projects with Maven
BMO - Intelligent Projects with MavenBMO - Intelligent Projects with Maven
BMO - Intelligent Projects with Maven
 

Plus de Max Andersen

Quarkus Denmark 2019
Quarkus Denmark 2019Quarkus Denmark 2019
Quarkus Denmark 2019Max Andersen
 
Docker Tooling for Eclipse
Docker Tooling for EclipseDocker Tooling for Eclipse
Docker Tooling for EclipseMax Andersen
 
OpenShift: Java EE in the clouds
OpenShift: Java EE in the cloudsOpenShift: Java EE in the clouds
OpenShift: Java EE in the cloudsMax Andersen
 
Case study: JBoss Developer Studio, an IDE for Web, Mobile and Cloud applicat...
Case study: JBoss Developer Studio, an IDE for Web, Mobile and Cloud applicat...Case study: JBoss Developer Studio, an IDE for Web, Mobile and Cloud applicat...
Case study: JBoss Developer Studio, an IDE for Web, Mobile and Cloud applicat...Max Andersen
 
Red Hat and Oracle: Delivering on the Promise of Interoperability in Java EE 7
Red Hat and Oracle: Delivering on the Promise of Interoperability in Java EE 7Red Hat and Oracle: Delivering on the Promise of Interoperability in Java EE 7
Red Hat and Oracle: Delivering on the Promise of Interoperability in Java EE 7Max Andersen
 
Google analytics for Eclipse Plugins
Google analytics for Eclipse PluginsGoogle analytics for Eclipse Plugins
Google analytics for Eclipse PluginsMax Andersen
 
Ceylon - the language and its tools
Ceylon - the language and its toolsCeylon - the language and its tools
Ceylon - the language and its toolsMax Andersen
 
Making Examples Accessible
Making Examples AccessibleMaking Examples Accessible
Making Examples AccessibleMax Andersen
 
OpenShift Express Intro
OpenShift Express IntroOpenShift Express Intro
OpenShift Express IntroMax Andersen
 
JBoss AS 7 from a user perspective
JBoss AS 7 from a user perspectiveJBoss AS 7 from a user perspective
JBoss AS 7 from a user perspectiveMax Andersen
 
JBoss Asylum Podcast Live from JUDCon 2010
JBoss Asylum Podcast Live from JUDCon 2010JBoss Asylum Podcast Live from JUDCon 2010
JBoss Asylum Podcast Live from JUDCon 2010Max Andersen
 
How To Make A Framework Plugin That Does Not Suck
How To Make A Framework Plugin That Does Not SuckHow To Make A Framework Plugin That Does Not Suck
How To Make A Framework Plugin That Does Not SuckMax Andersen
 

Plus de Max Andersen (13)

Quarkus Denmark 2019
Quarkus Denmark 2019Quarkus Denmark 2019
Quarkus Denmark 2019
 
Docker Tooling for Eclipse
Docker Tooling for EclipseDocker Tooling for Eclipse
Docker Tooling for Eclipse
 
OpenShift: Java EE in the clouds
OpenShift: Java EE in the cloudsOpenShift: Java EE in the clouds
OpenShift: Java EE in the clouds
 
Case study: JBoss Developer Studio, an IDE for Web, Mobile and Cloud applicat...
Case study: JBoss Developer Studio, an IDE for Web, Mobile and Cloud applicat...Case study: JBoss Developer Studio, an IDE for Web, Mobile and Cloud applicat...
Case study: JBoss Developer Studio, an IDE for Web, Mobile and Cloud applicat...
 
Red Hat and Oracle: Delivering on the Promise of Interoperability in Java EE 7
Red Hat and Oracle: Delivering on the Promise of Interoperability in Java EE 7Red Hat and Oracle: Delivering on the Promise of Interoperability in Java EE 7
Red Hat and Oracle: Delivering on the Promise of Interoperability in Java EE 7
 
Google analytics for Eclipse Plugins
Google analytics for Eclipse PluginsGoogle analytics for Eclipse Plugins
Google analytics for Eclipse Plugins
 
Ceylon - the language and its tools
Ceylon - the language and its toolsCeylon - the language and its tools
Ceylon - the language and its tools
 
Making Examples Accessible
Making Examples AccessibleMaking Examples Accessible
Making Examples Accessible
 
OpenShift Express Intro
OpenShift Express IntroOpenShift Express Intro
OpenShift Express Intro
 
JBoss AS 7 from a user perspective
JBoss AS 7 from a user perspectiveJBoss AS 7 from a user perspective
JBoss AS 7 from a user perspective
 
JBoss Asylum Podcast Live from JUDCon 2010
JBoss Asylum Podcast Live from JUDCon 2010JBoss Asylum Podcast Live from JUDCon 2010
JBoss Asylum Podcast Live from JUDCon 2010
 
How To Make A Framework Plugin That Does Not Suck
How To Make A Framework Plugin That Does Not SuckHow To Make A Framework Plugin That Does Not Suck
How To Make A Framework Plugin That Does Not Suck
 
Kickstart Jpa
Kickstart JpaKickstart Jpa
Kickstart Jpa
 

Dernier

Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Kaya Weers
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observabilityitnewsafrica
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Nikki Chapple
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxfnnc6jmgwh
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integrationmarketing932765
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesBernd Ruecker
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkPixlogix Infotech
 

Dernier (20)

Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architectures
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App Framework
 

Tycho - good, bad or ugly ?

  • 1. Tycho: Max Rydahl Andersen Red Hat at EclipseCon 2012
  • 2. Tycho: Max Rydahl Andersen Red Hat at EclipseCon 2012
  • 3. •Plugins for JBoss and related technology •AS, JSF, CDI, Seam, Portal, Birt, Maven, … •Top ~5 plugin on Eclipse Market Place
  • 4. 1.200.000 starts of JBoss Tools January-March 2012
  • 5.
  • 6. •45 modules •~8 year old •222 plugins •PDE Ant Build •76 features •36 test features •154 test plugins
  • 7. •45 modules •~8 year old •222 plugins •PDE Ant Build •76 features •36 test features •154 test plugins a.k.a. The “Big Ass” Project that moved to Tycho
  • 8. PDE/Ant Build common plugins .core .ui ... features .feature .source.fe ature ... tests .tests ... site
  • 9. PDE/Tycho common plugins .core .ui ... features .feature .source.fe ature ... tests .tests ... site
  • 10. PDE/Tycho common plugins .core <?xml version="1.0" encoding="UTF-8"?> <project> <modelVersion>4.0.0</modelVersion> .ui <parent> <groupId>org.jboss.tools.common</groupId> ... <artifactId>plugins</artifactId> <version>3.3.0-SNAPSHOT</version> </parent> features .feature <groupId>org.jboss.tools.common.plugins</groupId> .source.fe <artifactId>org.jboss.tools.common</artifactId> ature <packaging>eclipse-plugin</packaging> </project> ... tests .tests ... site
  • 11. PDE/Tycho common plugins .core <?xml version="1.0" encoding="UTF-8"?> <project> <modelVersion>4.0.0</modelVersion> .ui <parent> <groupId>org.jboss.tools.common</groupId> ... <artifactId>plugins</artifactId> <version>3.3.0-SNAPSHOT</version> </parent> features .feature <groupId>org.jboss.tools.common.plugins</groupId> .source.fe <artifactId>org.jboss.tools.common</artifactId> ature <packaging>eclipse-plugin</packaging> </project> ... <packaging>eclipse-test-plugin</packaging> <packaging>eclipse-feature</packaging> tests .tests <packaging>eclipse-repository</packaging> <packaging>eclipse-application</packaging> ... site
  • 12. common plugins .core ”Big Ass” .ui ... features .feature .source.fe ature ... tests .tests ... site
  • 13. common plugins .core hibernate CDI ”Big Ass” plugins .core JSF plugins .core ... plugins .core ... plugins .core plugins .core seam plugins .core .ui .ui .ui .ui .ui .ui .ui ... ... ... ... ... features .feature ... ... .source.fe features .feature features .feature ature features .feature features .feature features .feature features .feature ... .source.fe ature .source.fe ature .source.fe .source.fe .source.fe tests .tests .source.fe ature ature ature ... ature ... ... ... ... ... tests .tests site ... tests .tests ... tests .tests tests .tests tests .tests tests .tests ... site ... site ... ... ... site site site site ... plugins .core ... plugins .core ... plugins .core ... plugins .core ... plugins .core ... plugins .core ... plugins .core ... plugins .core ... plugins .core ... plugins .core ... plugins .core ... plugins .core .ui .ui .ui .ui .ui .ui .ui .ui .ui .ui .ui .ui ... ... ... ... ... ... ... ... ... ... ... ... features .feature features .feature features .feature features .feature features .feature features .feature features .feature features .feature features .feature features .feature features .feature features .feature .source.fe .source.fe .source.fe .source.fe .source.fe .source.fe .source.fe .source.fe .source.fe .source.fe .source.fe .source.fe ature ature ature ature ature ature ature ature ature ature ature ature ... plugins .core ... plugins .core ... plugins .core ... plugins .core ... plugins .core ... plugins .core ... plugins .core ... plugins .core ... plugins .core ... plugins .core ... plugins .core ... plugins .core ... ... ... ... ... ... ... ... ... ... ... ... .ui .ui .ui .ui .ui .ui .ui .ui .ui .ui .ui .ui tests .tests tests .tests tests .tests tests .tests tests .tests tests .tests tests .tests tests .tests tests .tests tests .tests tests .tests tests .tests ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... features .feature features .feature features .feature features .feature features .feature features .feature features .feature features .feature features .feature features .feature features .feature features .feature site site site site site site site site site site site site .source.fe .source.fe .source.fe .source.fe .source.fe .source.fe .source.fe .source.fe .source.fe .source.fe .source.fe .source.fe ature ature ature ature ature ature ature ature ature ature ature ature ... ... ... ... ... ... ... ... ... ... ... ... tests .tests tests .tests tests .tests tests .tests tests .tests tests .tests tests .tests tests .tests tests .tests tests .tests tests .tests tests .tests ... plugins .core ... plugins .core ... plugins .core ... plugins .core ... plugins .core ... plugins .core ... plugins .core ... plugins .core ... plugins .core ... plugins .core ... plugins .core ... plugins .core ... ... ... ... ... ... ... ... ... ... ... ... .ui .ui .ui .ui .ui .ui .ui .ui .ui .ui .ui .ui site site site site site site site site site site site site ... ... ... ... ... ... ... ... ... ... ... ... features .feature features .feature features .feature features .feature features .feature features .feature features .feature features .feature features .feature features .feature features .feature features .feature .source.fe .source.fe .source.fe .source.fe .source.fe .source.fe .source.fe .source.fe .source.fe .source.fe .source.fe .source.fe ature ature ature ature ature ature ature ature ature ature ature ature ... ... ... ... ... ... ... ... ... ... ... ... tests .tests tests .tests tests .tests tests .tests tests .tests tests .tests tests .tests tests .tests tests .tests tests .tests tests .tests tests .tests ... ... ... ... ... ... ... ... ... ... ... ... site site site site site site site site site site site site
  • 14. General Layout common plugins .core .ui ... features .feature .source.fe ature ... tests .tests ... site
  • 15. General Layout common plugins .core •module is a “releasable unit” .ui ... features .feature .source.fe ature ... tests .tests ... site
  • 16. General Layout common plugins .core •module is a “releasable unit” .ui •pom.xml at each level ... features .feature .source.fe ature ... tests .tests ... site
  • 17. General Layout common plugins .core •module is a “releasable unit” .ui •pom.xml at each level ... •allows to build subparts very features .feature easily .source.fe ature ... tests .tests ... site
  • 18. General Layout common plugins .core •module is a “releasable unit” .ui •pom.xml at each level ... •allows to build subparts very features .feature easily .source.fe •separate customization for ature modules ... tests .tests ... site
  • 19. General Layout common plugins .core •module is a “releasable unit” .ui •pom.xml at each level ... •allows to build subparts very features .feature easily .source.fe •separate customization for ature modules •Can use mvn version per module ... tests .tests ... site
  • 20. tycho-versions-plugin common plugins .core .ui ... features .feature .source.fe ature ... tests .tests ... site
  • 21. tycho-versions-plugin common plugins .core 1.0.2 2.0.1 2.0.1 .ui 1.0.3 ... 1.1.2 features .feature 2.0.1 2.0.1 .source.fe ature 2.0.1 ... 1.1.2 tests .tests 1.1.2 2.0.1 ... 1.1.2 site 1.1.3
  • 22. tycho-versions-plugin common plugins .core 1.0.2 2.0.1 2.0.1 .ui 1.0.3 ... 1.1.2 mvn org.eclipse.tycho:tycho-versions- features .feature 2.0.1 plugin:set-version -DnewVersion=2.0.2 2.0.1 .source.fe ature 2.0.1 ... 1.1.2 tests .tests 1.1.2 2.0.1 ... 1.1.2 site 1.1.3
  • 23. tycho-versions-plugin common plugins .core 1.0.2 2.0.2 2.0.2 .ui 1.0.3 ... 1.1.2 features .feature 2.0.2 2.0.2 .source.fe ature 2.0.2 ... 1.1.2 tests .tests 1.1.2 2.0.2 ... 1.1.2 site 1.1.3
  • 24. tycho-versions-plugin common plugins .core 2.0.2 2.0.2 2.0.2 .ui 2.0.2 ... 2.0.2 features .feature 2.0.2 2.0.2 .source.fe ature 2.0.2 ... 2.0.2 tests .tests 2.0.2 2.0.2 ... 2.0.2 site 2.0.2
  • 25. tycho-versions-plugin common plugins .core 2.0.2 2.0.2 2.0.2 .ui 2.0.2 ... 2.0.2 mvn org.eclipse.tycho:tycho-versions- features .feature 2.0.2 plugin:set-version -DnewVersion=2.1.0 2.0.2 .source.fe ature 2.0.2 ... 2.0.2 tests .tests 2.0.2 2.0.2 ... 2.0.2 site 2.0.2
  • 26. tycho-versions-plugin common plugins .core 2.1.0 2.1.0 2.1.0 .ui 2.1.0 ... 2.1.0 features .feature 2.1.0 2.1.0 .source.fe ature 2.1.0 ... 2.1.0 tests .tests 2.1.0 2.1.0 ... 2.1.0 site 2.1.0
  • 27. tycho-versions-plugin common plugins .core 1.7.3 2.1.0 2.1.0 .ui 2.1.0 ... 2.1.0 features .feature 2.1.0 2.1.0 .source.fe ature 2.1.0 ... 2.1.0 tests .tests 2.1.0 2.1.0 ... 2.1.0 site 2.1.0
  • 28. tycho-versions-plugin common plugins .core 1.7.3 2.1.0 2.1.0 .ui 2.1.0 ... 2.1.0 mvn org.eclipse.tycho:tycho-versions- features .feature 2.1.0 plugin:set-version -DnewVersion=2.1.1 2.1.0 .source.fe ature 2.1.0 ... 2.1.0 tests .tests 2.1.0 2.1.0 ... 2.1.0 site 2.1.0
  • 29. tycho-versions-plugin common plugins .core 1.7.3 2.1.1 2.1.1 .ui 2.1.1 ... 2.1.1 features .feature 2.1.1 2.1.1 .source.fe ature 2.1.1 ... 2.1.1 tests .tests 2.1.1 2.1.1 ... 2.1.1 site 2.1.1
  • 30. tycho-versions-plugin common plugins .core 1.7.3 2.1.1 2.1.1 .ui 2.1.1 •Easy update of versions in ... 2.1.1 •pom.xml •manifest.mf features .feature 2.1.1 •feature.xml 2.1.1 .source.fe ature 2.1.1 •site.xml ... 2.1.1 •.product tests .tests 2.1.1 •…. 2.1.1 ... 2.1.1 •Don’t Repeat Yourself site 2.1.1
  • 31. Plugin A Require-Bundle: Z [1.2;2.0] Plugin B Plugin C Require-Bundle: Z [1.7;2.0] Source
  • 32. Plugin A Require-Bundle: Z [1.2;2.0] Plugin B Plugin C Require-Bundle: Z [1.7;2.0] Source ~/.m2/repository
  • 33. Plugin A p2 repositories Require-Bundle: Z [1.2;2.0] Plugin Q 1.2.1 Plugin B Plugin Z 1.7 Plugin Z 1.8 Plugin C Require-Bundle: Z [1.7;2.0] Plugin Z 2.0 Source ~/.m2/repository
  • 34. Plugin A p2 repositories Require-Bundle: Z [1.2;2.0] Plugin Q 1.2.1 Plugin B Plugin Z 1.7 Plugin Z 1.8 Plugin C Require-Bundle: Z [1.7;2.0] Plugin Z 2.0 Source Plugin Z 1.8 ~/.m2/repository
  • 35. Plugin A p2 repositories Require-Bundle: Z [1.2;2.0] Plugin Q 1.2.1 Plugin B Plugin Z 1.7 Plugin Z 1.8 Plugin C Require-Bundle: Z [1.7;2.0] Plugin Z 2.0 Source Plugin B 1.2.3 Plugin C Plugin Z 1.8 1.2.3 Plugin A 1.2.3 ~/.m2/repository
  • 36. Plugin A p2 repositories Require-Bundle: Z [1.2;2.0] Plugin Z 1.7 Plugin Q Plugin Q 1.2.1 Plugin B Target Definition Plugin Z 1.7 Plugin Z 1.8 Plugin C Require-Bundle: Z [1.7;2.0] Plugin Z 2.0 Source ~/.m2/repository
  • 37. Plugin A p2 repositories Require-Bundle: Z [1.2;2.0] Plugin Z 1.7 Plugin Q Plugin Q 1.2.1 Plugin B Target Definition Plugin Z 1.7 Plugin Z 1.8 Plugin C Require-Bundle: Z [1.7;2.0] Plugin Z 2.0 Source Plugin Z 1.7 Plugin Q 1.2.1 ~/.m2/repository
  • 38. Plugin A p2 repositories Require-Bundle: Z [1.2;2.0] Plugin Z 1.7 Plugin Q Plugin Q 1.2.1 Plugin B Target Definition Plugin Z 1.7 Plugin Z 1.8 Plugin C Require-Bundle: Z [1.7;2.0] Plugin Z 2.0 Source Plugin B Plugin Z 1.7 1.2.3 Plugin C 1.2.3 Plugin A Plugin Q 1.2.1 1.2.3 ~/.m2/repository
  • 39. Plugin A p2 repositories Require-Bundle: Z [1.2;2.0] Plugin Z 1.7 Plugin Q Plugin Q 1.2.1 Plugin B Target Definition Plugin Z 1.7 Plugin Z 1.8 Plugin C Require-Bundle: Z [1.7;2.0] Plugin Z 2.0 Source Plugin B Plugin Z 1.7 1.2.3 Plugin C 1.2.3 Plugin A Plugin Q 1.2.1 1.2.3 ~/.m2/repository
  • 40. Plugin A p2 repositories Require-Bundle: Z [1.2;2.0] Plugin Z 1.7 Plugin Q Plugin Q 1.2.1 Plugin B Target Definition Plugin Z 1.7 Plugin Z 1.8 Plugin C Require-Bundle: Z [1.7;2.0] Plugin Z 2.0 Source Plugin B Plugin Z 1.7 1.2.3 Plugin C Plugin B 1.2.3 1.2.3 Plugin A Plugin Q 1.2.1 1.2.3 Plugin A 1.2.3 ~/.m2/repository
  • 41. p2 repositories Plugin Z 1.7 Plugin Q Plugin Q 1.2.1 Plugin C Target Definition Plugin Z 1.7 Require-Bundle: Z Plugin Z 1.8 [1.7;2.0] B Plugin Z 2.0 Source Plugin B 1.2.3 Plugin A 1.2.3 ~/.m2/repository
  • 42. p2 repositories Plugin Z 1.7 Plugin Q Plugin Q 1.2.1 Plugin C Target Definition Plugin Z 1.7 Require-Bundle: Z Plugin Z 1.8 [1.7;2.0] B Plugin Z 2.0 Source Plugin B Plugin Z 1.7 1.2.3 Plugin B 1.2.3 Plugin Q 1.2.1 Plugin A 1.2.3 ~/.m2/repository
  • 43. p2 repositories Plugin Z 1.7 Plugin Q Plugin Q 1.2.1 Plugin C Target Definition Plugin Z 1.7 Require-Bundle: Z Plugin Z 1.8 [1.7;2.0] B Plugin Z 2.0 Source Plugin B Plugin Z 1.7 1.2.3 Plugin B 1.2.3 Plugin C Plugin Q 1.2.1 1.2.3 Plugin A 1.2.3 ~/.m2/repository
  • 50. 0.13+ ! ! <format>'v'yyyyMMdd-HHmm'-${BID}'</format>
  • 51. Update Sites common plugins .core artifacts.jar content.jar .ui features/org.jboss.tools.forge.feature_1.0.0.v20120327-0403-Beta3.jar ... features/org.jboss.tools.forge.test.feature_1.0.0.v20120327-0403-Beta3.jar features .feature .source.fe plugins/org.jboss.tools.forge.core.test_1.0.0.v20120327-0403-Beta3.jar ature plugins/org.jboss.tools.forge.core_1.0.0.v20120327-0403-Beta3.jar ... plugins/org.jboss.tools.forge.runtime.ext_1.0.0.v20120327-0403-Beta3.jar tests .tests plugins/org.jboss.tools.forge.runtime_1.0.0.v20120327-0403-Beta3.jar ... site plugins/org.jboss.tools.forge.ui.test_1.0.0.v20120327-0403-Beta3.jar plugins/org.jboss.tools.forge.ui_1.0.0.v20120327-0403-Beta3.jar
  • 52. Source Features common plugins .core .ui ... features .feature .source.fe ature ... tests .tests ... site
  • 53. Source Features <plugins> common plugins .core <plugin> <groupId>org.eclipse.tycho.extras</groupId> <artifactId>tycho-source-feature-plugin</artifactId> .ui <version>${tychoVersion}</version> <executions> <execution> ... <id>source-feature</id> <phase>package</phase> <goals> features .feature <goal>source-feature</goal> </goals> </execution> .source.fe </executions> ature </plugin> <plugin> ... <groupId>org.eclipse.tycho</groupId> <artifactId>tycho-p2-plugin</artifactId> <version>${tychoVersion}</version> tests .tests <executions> <execution> <id>attached-p2-metadata</id> <phase>package</phase> ... <goals> <goal>p2-metadata</goal> site </goals> </execution> </executions> </plugin> </plugins>
  • 54. Source Features <plugins> common plugins .core <plugin> <groupId>org.eclipse.tycho.extras</groupId> <artifactId>tycho-source-feature-plugin</artifactId> .ui <version>${tychoVersion}</version> <executions> <execution> ... <id>source-feature</id> <phase>package</phase> <goals> features .feature <goal>source-feature</goal> </goals> </execution> .source.fe </executions> ature </plugin> <plugin> ... <groupId>org.eclipse.tycho</groupId> <artifactId>tycho-p2-plugin</artifactId> <version>${tychoVersion}</version> tests .tests <executions> <execution> <id>attached-p2-metadata</id> <phase>package</phase> ... <goals> <goal>p2-metadata</goal> site </goals> </execution> 0.14+ </executions> </plugin> </plugins>
  • 55. Source Features <plugins> common plugins .core <plugin> <groupId>org.eclipse.tycho.extras</groupId> <artifactId>tycho-source-feature-plugin</artifactId> .ui <version>${tychoVersion}</version> <executions> <execution> ... <id>source-feature</id> <phase>package</phase> <goals> features .feature <goal>source-feature</goal> </goals> </execution> .source.fe </executions> ature </plugin> <plugin> ... <groupId>org.eclipse.tycho</groupId> <artifactId>tycho-p2-plugin</artifactId> <version>${tychoVersion}</version> tests .tests <executions> <execution> <id>attached-p2-metadata</id> <phase>package</phase> ... <goals> <goal>p2-metadata</goal> site </goals> </execution> </executions> </plugin> </plugins>
  • 56. Source Features common plugins .core artifacts.jar content.jar .ui features/org.jboss.tools.forge.feature_1.0.0.v20120327-0403-Beta3.jar ... features/org.jboss.tools.forge.test.feature_1.0.0.v20120327-0403-Beta3.jar features .feature .source.fe plugins/org.jboss.tools.forge.core.test_1.0.0.v20120327-0403-Beta3.jar ature plugins/org.jboss.tools.forge.core_1.0.0.v20120327-0403-Beta3.jar ... plugins/org.jboss.tools.forge.runtime.ext_1.0.0.v20120327-0403-Beta3.jar tests .tests plugins/org.jboss.tools.forge.runtime_1.0.0.v20120327-0403-Beta3.jar ... site plugins/org.jboss.tools.forge.ui.test_1.0.0.v20120327-0403-Beta3.jar plugins/org.jboss.tools.forge.ui_1.0.0.v20120327-0403-Beta3.jar
  • 57. Source Features common plugins .core artifacts.jar content.jar .ui features/org.jboss.tools.forge.feature.source_1.0.0.v20120327-0403-Beta3.jar features/org.jboss.tools.forge.feature_1.0.0.v20120327-0403-Beta3.jar ... features/org.jboss.tools.forge.test.feature.source_1.0.0.v20120327-0403-Beta3. features/org.jboss.tools.forge.test.feature_1.0.0.v20120327-0403-Beta3.jar features .feature plugins/org.jboss.tools.forge.core.source_1.0.0.v20120327-0403-Beta3.jar plugins/org.jboss.tools.forge.core.test.source_1.0.0.v20120327-0403-Beta3.jar .source.fe plugins/org.jboss.tools.forge.core.test_1.0.0.v20120327-0403-Beta3.jar ature plugins/org.jboss.tools.forge.core_1.0.0.v20120327-0403-Beta3.jar ... plugins/org.jboss.tools.forge.runtime.ext.source_1.0.0.v20120327-0403-Beta3.ja plugins/org.jboss.tools.forge.runtime.ext_1.0.0.v20120327-0403-Beta3.jar tests .tests plugins/org.jboss.tools.forge.runtime.source_1.0.0.v20120327-0403-Beta3.jar plugins/org.jboss.tools.forge.runtime_1.0.0.v20120327-0403-Beta3.jar plugins/org.jboss.tools.forge.ui.source_1.0.0.v20120327-0403-Beta3.jar ... plugins/org.jboss.tools.forge.ui.test.source_1.0.0.v20120327-0403-Beta3.jar site plugins/org.jboss.tools.forge.ui.test_1.0.0.v20120327-0403-Beta3.jar plugins/org.jboss.tools.forge.ui_1.0.0.v20120327-0403-Beta3.jar
  • 58.
  • 59. Concise, Large Ecosystem, improving, growing, versatile, responsive community, Just Works Has had some nasty bugs - but they are fixed (0.13/0.14+) Need to understand Maven + OSGi + p2 (Speed?)
  • 62. Tycho: Resources: http://wiki.eclipse.org/Category:Tycho http://wiki.eclipse.org/Tycho/ Reference_Card http://wiki.eclipse.org/Tycho/ http://bit.ly/maxtycho Packaging_Types “Coping with versions in large multi-module osgi projects” - http://bit.ly/rTWUsq
  • 63. ?? ?? ? Tycho: Resources: ? ? http://wiki.eclipse.org/Category:Tycho http://wiki.eclipse.org/Tycho/ Reference_Card http://wiki.eclipse.org/Tycho/ http://bit.ly/maxtycho Packaging_Types “Coping with versions in large multi-module osgi projects” - http://bit.ly/rTWUsq
  • 65. ?? ?? ? Tycho: ? ? http://bit.ly/maxtycho

Notes de l'éditeur

  1. I&amp;#x2019;m here to talk about the good, bad and ugly sides of Tycho.\nMy name is Max Andersen I work for Red Hat and I work on the project named...\n
  2. I&amp;#x2019;m here to talk about the good, bad and ugly sides of Tycho.\nMy name is Max Andersen I work for Red Hat and I work on the project named...\n
  3. ...JBoss Tools. JBoss Tools is a set of plugins which focus on JBoss and related technology to make development experience around JBoss better. Tech such as AS it self, JSF, CDI, Seam, Birt, Maven etc. and we are in the top on eclipse market place for usage.\n
  4. Which means we are used all around the world - these are showing the last 3 months &amp;#x201C;pings&amp;#x201D; to our usage plugin showing the distribution of a million startups. One of my favorite slides :)\n
  5. But i&amp;#x2019;m here to talk about jboss tools in context of builds - and we are an old project, almost as old as eclipse it self and we&amp;#x2019;ve seen all the various build techs come and go but until Tycho came around we stayed with PDE ant build. Our project is rather big - a lot of modules, plugins and features whick makes us a.ka. the Big Ass project that moved to Tycho\n
  6. But i&amp;#x2019;m here to talk about jboss tools in context of builds - and we are an old project, almost as old as eclipse it self and we&amp;#x2019;ve seen all the various build techs come and go but until Tycho came around we stayed with PDE ant build. Our project is rather big - a lot of modules, plugins and features whick makes us a.ka. the Big Ass project that moved to Tycho\n
  7. But i&amp;#x2019;m here to talk about jboss tools in context of builds - and we are an old project, almost as old as eclipse it self and we&amp;#x2019;ve seen all the various build techs come and go but until Tycho came around we stayed with PDE ant build. Our project is rather big - a lot of modules, plugins and features whick makes us a.ka. the Big Ass project that moved to Tycho\n
  8. So lets take a look at how our module(s) looked like when we used PDE/Ant Build. We had a root for each module, under here plugins/features/tests and site with their respective bundles/plugins/content. So what happens with this when moving to Tycho...?\n
  9. ..absolutely nothing. And this is the reason why Tycho was able to get us off PDE ant build! Thank you! Of course we did have to add a pom.xml here and there...\n
  10. ..actually everywhere ;) each level in that structure has a pom.xml but thankfully they are for most very concise. You simply just state the GAV (group,artifact,version) for you artifact and then the packaging. in this case it is eclipse-plugin but &lt;click&gt; there is also a packaging for every other important eclipse packaging. Great stuff! This structure is our general layout..\n
  11. ..actually everywhere ;) each level in that structure has a pom.xml but thankfully they are for most very concise. You simply just state the GAV (group,artifact,version) for you artifact and then the packaging. in this case it is eclipse-plugin but &lt;click&gt; there is also a packaging for every other important eclipse packaging. Great stuff! This structure is our general layout..\n
  12. ..actually everywhere ;) each level in that structure has a pom.xml but thankfully they are for most very concise. You simply just state the GAV (group,artifact,version) for you artifact and then the packaging. in this case it is eclipse-plugin but &lt;click&gt; there is also a packaging for every other important eclipse packaging. Great stuff! This structure is our general layout..\n
  13. ..actually everywhere ;) each level in that structure has a pom.xml but thankfully they are for most very concise. You simply just state the GAV (group,artifact,version) for you artifact and then the packaging. in this case it is eclipse-plugin but &lt;click&gt; there is also a packaging for every other important eclipse packaging. Great stuff! This structure is our general layout..\n
  14. ..and is used with everyone of our modules ...and &lt;click&gt; ...there is alot of them. and when I say Alot I mean alot. I didn&amp;#x2019;t call it Big Ass for nothing.\n
  15. ..and is used with everyone of our modules ...and &lt;click&gt; ...there is alot of them. and when I say Alot I mean alot. I didn&amp;#x2019;t call it Big Ass for nothing.\n
  16. ..and is used with everyone of our modules ...and &lt;click&gt; ...there is alot of them. and when I say Alot I mean alot. I didn&amp;#x2019;t call it Big Ass for nothing.\n
  17. ..and is used with everyone of our modules ...and &lt;click&gt; ...there is alot of them. and when I say Alot I mean alot. I didn&amp;#x2019;t call it Big Ass for nothing.\n
  18. ..and is used with everyone of our modules ...and &lt;click&gt; ...there is alot of them. and when I say Alot I mean alot. I didn&amp;#x2019;t call it Big Ass for nothing.\n
  19. ..and is used with everyone of our modules ...and &lt;click&gt; ...there is alot of them. and when I say Alot I mean alot. I didn&amp;#x2019;t call it Big Ass for nothing.\n
  20. ..and is used with everyone of our modules ...and &lt;click&gt; ...there is alot of them. and when I say Alot I mean alot. I didn&amp;#x2019;t call it Big Ass for nothing.\n
  21. ..and is used with everyone of our modules ...and &lt;click&gt; ...there is alot of them. and when I say Alot I mean alot. I didn&amp;#x2019;t call it Big Ass for nothing.\n
  22. ..and is used with everyone of our modules ...and &lt;click&gt; ...there is alot of them. and when I say Alot I mean alot. I didn&amp;#x2019;t call it Big Ass for nothing.\n
  23. ..and is used with everyone of our modules ...and &lt;click&gt; ...there is alot of them. and when I say Alot I mean alot. I didn&amp;#x2019;t call it Big Ass for nothing.\n
  24. ..and is used with everyone of our modules ...and &lt;click&gt; ...there is alot of them. and when I say Alot I mean alot. I didn&amp;#x2019;t call it Big Ass for nothing.\n
  25. ..and is used with everyone of our modules ...and &lt;click&gt; ...there is alot of them. and when I say Alot I mean alot. I didn&amp;#x2019;t call it Big Ass for nothing.\n
  26. ..and is used with everyone of our modules ...and &lt;click&gt; ...there is alot of them. and when I say Alot I mean alot. I didn&amp;#x2019;t call it Big Ass for nothing.\n
  27. ..and is used with everyone of our modules ...and &lt;click&gt; ...there is alot of them. and when I say Alot I mean alot. I didn&amp;#x2019;t call it Big Ass for nothing.\n
  28. ..and is used with everyone of our modules ...and &lt;click&gt; ...there is alot of them. and when I say Alot I mean alot. I didn&amp;#x2019;t call it Big Ass for nothing.\n
  29. ..and is used with everyone of our modules ...and &lt;click&gt; ...there is alot of them. and when I say Alot I mean alot. I didn&amp;#x2019;t call it Big Ass for nothing.\n
  30. ..and is used with everyone of our modules ...and &lt;click&gt; ...there is alot of them. and when I say Alot I mean alot. I didn&amp;#x2019;t call it Big Ass for nothing.\n
  31. ..and is used with everyone of our modules ...and &lt;click&gt; ...there is alot of them. and when I say Alot I mean alot. I didn&amp;#x2019;t call it Big Ass for nothing.\n
  32. ..and is used with everyone of our modules ...and &lt;click&gt; ...there is alot of them. and when I say Alot I mean alot. I didn&amp;#x2019;t call it Big Ass for nothing.\n
  33. ..and is used with everyone of our modules ...and &lt;click&gt; ...there is alot of them. and when I say Alot I mean alot. I didn&amp;#x2019;t call it Big Ass for nothing.\n
  34. ..and is used with everyone of our modules ...and &lt;click&gt; ...there is alot of them. and when I say Alot I mean alot. I didn&amp;#x2019;t call it Big Ass for nothing.\n
  35. ..and is used with everyone of our modules ...and &lt;click&gt; ...there is alot of them. and when I say Alot I mean alot. I didn&amp;#x2019;t call it Big Ass for nothing.\n
  36. ..and is used with everyone of our modules ...and &lt;click&gt; ...there is alot of them. and when I say Alot I mean alot. I didn&amp;#x2019;t call it Big Ass for nothing.\n
  37. ..and is used with everyone of our modules ...and &lt;click&gt; ...there is alot of them. and when I say Alot I mean alot. I didn&amp;#x2019;t call it Big Ass for nothing.\n
  38. ..and is used with everyone of our modules ...and &lt;click&gt; ...there is alot of them. and when I say Alot I mean alot. I didn&amp;#x2019;t call it Big Ass for nothing.\n
  39. ..and is used with everyone of our modules ...and &lt;click&gt; ...there is alot of them. and when I say Alot I mean alot. I didn&amp;#x2019;t call it Big Ass for nothing.\n
  40. ..and is used with everyone of our modules ...and &lt;click&gt; ...there is alot of them. and when I say Alot I mean alot. I didn&amp;#x2019;t call it Big Ass for nothing.\n
  41. ..and is used with everyone of our modules ...and &lt;click&gt; ...there is alot of them. and when I say Alot I mean alot. I didn&amp;#x2019;t call it Big Ass for nothing.\n
  42. ..and is used with everyone of our modules ...and &lt;click&gt; ...there is alot of them. and when I say Alot I mean alot. I didn&amp;#x2019;t call it Big Ass for nothing.\n
  43. ..and is used with everyone of our modules ...and &lt;click&gt; ...there is alot of them. and when I say Alot I mean alot. I didn&amp;#x2019;t call it Big Ass for nothing.\n
  44. ..and is used with everyone of our modules ...and &lt;click&gt; ...there is alot of them. and when I say Alot I mean alot. I didn&amp;#x2019;t call it Big Ass for nothing.\n
  45. ..and is used with everyone of our modules ...and &lt;click&gt; ...there is alot of them. and when I say Alot I mean alot. I didn&amp;#x2019;t call it Big Ass for nothing.\n
  46. ..and is used with everyone of our modules ...and &lt;click&gt; ...there is alot of them. and when I say Alot I mean alot. I didn&amp;#x2019;t call it Big Ass for nothing.\n
  47. ..and is used with everyone of our modules ...and &lt;click&gt; ...there is alot of them. and when I say Alot I mean alot. I didn&amp;#x2019;t call it Big Ass for nothing.\n
  48. ..and is used with everyone of our modules ...and &lt;click&gt; ...there is alot of them. and when I say Alot I mean alot. I didn&amp;#x2019;t call it Big Ass for nothing.\n
  49. ..and is used with everyone of our modules ...and &lt;click&gt; ...there is alot of them. and when I say Alot I mean alot. I didn&amp;#x2019;t call it Big Ass for nothing.\n
  50. ..and is used with everyone of our modules ...and &lt;click&gt; ...there is alot of them. and when I say Alot I mean alot. I didn&amp;#x2019;t call it Big Ass for nothing.\n
  51. ..and is used with everyone of our modules ...and &lt;click&gt; ...there is alot of them. and when I say Alot I mean alot. I didn&amp;#x2019;t call it Big Ass for nothing.\n
  52. ..and is used with everyone of our modules ...and &lt;click&gt; ...there is alot of them. and when I say Alot I mean alot. I didn&amp;#x2019;t call it Big Ass for nothing.\n
  53. ..and is used with everyone of our modules ...and &lt;click&gt; ...there is alot of them. and when I say Alot I mean alot. I didn&amp;#x2019;t call it Big Ass for nothing.\n
  54. ..and is used with everyone of our modules ...and &lt;click&gt; ...there is alot of them. and when I say Alot I mean alot. I didn&amp;#x2019;t call it Big Ass for nothing.\n
  55. ..and is used with everyone of our modules ...and &lt;click&gt; ...there is alot of them. and when I say Alot I mean alot. I didn&amp;#x2019;t call it Big Ass for nothing.\n
  56. ...this general layout which I actually don&amp;#x2019;t know from where we got it actually turned out to be pretty good for us. It allows us to &lt;click&gt; think about each module as a releasable unit (we don&amp;#x2019;t use that alot yet, but for build setup its very nice). A downside is the extra pom&amp;#x2019;s at each level but the great thing is that it allow us to &lt;click&gt; build subparts very easily and something we hadn&amp;#x2019;t thought about upfront was that it actually gave a nice natural place for modules to &lt;click&gt; customize their testing setup if need be or if a module had special needs compared to what is defined in the maven parent. And something that I&amp;#x2019;ve learned to love &lt;click&gt; is that because there now is a structure defined across the whole module we can use mvn tools such as mvn version plugins to manage all this stuff. Something that pde ant never did.\n
  57. ...this general layout which I actually don&amp;#x2019;t know from where we got it actually turned out to be pretty good for us. It allows us to &lt;click&gt; think about each module as a releasable unit (we don&amp;#x2019;t use that alot yet, but for build setup its very nice). A downside is the extra pom&amp;#x2019;s at each level but the great thing is that it allow us to &lt;click&gt; build subparts very easily and something we hadn&amp;#x2019;t thought about upfront was that it actually gave a nice natural place for modules to &lt;click&gt; customize their testing setup if need be or if a module had special needs compared to what is defined in the maven parent. And something that I&amp;#x2019;ve learned to love &lt;click&gt; is that because there now is a structure defined across the whole module we can use mvn tools such as mvn version plugins to manage all this stuff. Something that pde ant never did.\n
  58. ...this general layout which I actually don&amp;#x2019;t know from where we got it actually turned out to be pretty good for us. It allows us to &lt;click&gt; think about each module as a releasable unit (we don&amp;#x2019;t use that alot yet, but for build setup its very nice). A downside is the extra pom&amp;#x2019;s at each level but the great thing is that it allow us to &lt;click&gt; build subparts very easily and something we hadn&amp;#x2019;t thought about upfront was that it actually gave a nice natural place for modules to &lt;click&gt; customize their testing setup if need be or if a module had special needs compared to what is defined in the maven parent. And something that I&amp;#x2019;ve learned to love &lt;click&gt; is that because there now is a structure defined across the whole module we can use mvn tools such as mvn version plugins to manage all this stuff. Something that pde ant never did.\n
  59. ...this general layout which I actually don&amp;#x2019;t know from where we got it actually turned out to be pretty good for us. It allows us to &lt;click&gt; think about each module as a releasable unit (we don&amp;#x2019;t use that alot yet, but for build setup its very nice). A downside is the extra pom&amp;#x2019;s at each level but the great thing is that it allow us to &lt;click&gt; build subparts very easily and something we hadn&amp;#x2019;t thought about upfront was that it actually gave a nice natural place for modules to &lt;click&gt; customize their testing setup if need be or if a module had special needs compared to what is defined in the maven parent. And something that I&amp;#x2019;ve learned to love &lt;click&gt; is that because there now is a structure defined across the whole module we can use mvn tools such as mvn version plugins to manage all this stuff. Something that pde ant never did.\n
  60. ...this general layout which I actually don&amp;#x2019;t know from where we got it actually turned out to be pretty good for us. It allows us to &lt;click&gt; think about each module as a releasable unit (we don&amp;#x2019;t use that alot yet, but for build setup its very nice). A downside is the extra pom&amp;#x2019;s at each level but the great thing is that it allow us to &lt;click&gt; build subparts very easily and something we hadn&amp;#x2019;t thought about upfront was that it actually gave a nice natural place for modules to &lt;click&gt; customize their testing setup if need be or if a module had special needs compared to what is defined in the maven parent. And something that I&amp;#x2019;ve learned to love &lt;click&gt; is that because there now is a structure defined across the whole module we can use mvn tools such as mvn version plugins to manage all this stuff. Something that pde ant never did.\n
  61. ...so to explain this here you see the layout for one of our modules - this time with versions - in this setup everything is all over the map, something some project is ok with others not so much since they release the whole module not individual parts of it. So lets try use the mvn version plugin on this stuff. &lt;click&gt; We start by wanting to bump 2.0.1 to 2.0.2&amp;#x2026; \n
  62. ...so to explain this here you see the layout for one of our modules - this time with versions - in this setup everything is all over the map, something some project is ok with others not so much since they release the whole module not individual parts of it. So lets try use the mvn version plugin on this stuff. &lt;click&gt; We start by wanting to bump 2.0.1 to 2.0.2&amp;#x2026; \n
  63. ...so to explain this here you see the layout for one of our modules - this time with versions - in this setup everything is all over the map, something some project is ok with others not so much since they release the whole module not individual parts of it. So lets try use the mvn version plugin on this stuff. &lt;click&gt; We start by wanting to bump 2.0.1 to 2.0.2&amp;#x2026; \n
  64. ...so to explain this here you see the layout for one of our modules - this time with versions - in this setup everything is all over the map, something some project is ok with others not so much since they release the whole module not individual parts of it. So lets try use the mvn version plugin on this stuff. &lt;click&gt; We start by wanting to bump 2.0.1 to 2.0.2&amp;#x2026; \n
  65. ...so to explain this here you see the layout for one of our modules - this time with versions - in this setup everything is all over the map, something some project is ok with others not so much since they release the whole module not individual parts of it. So lets try use the mvn version plugin on this stuff. &lt;click&gt; We start by wanting to bump 2.0.1 to 2.0.2&amp;#x2026; \n
  66. ...so to explain this here you see the layout for one of our modules - this time with versions - in this setup everything is all over the map, something some project is ok with others not so much since they release the whole module not individual parts of it. So lets try use the mvn version plugin on this stuff. &lt;click&gt; We start by wanting to bump 2.0.1 to 2.0.2&amp;#x2026; \n
  67. ...so to explain this here you see the layout for one of our modules - this time with versions - in this setup everything is all over the map, something some project is ok with others not so much since they release the whole module not individual parts of it. So lets try use the mvn version plugin on this stuff. &lt;click&gt; We start by wanting to bump 2.0.1 to 2.0.2&amp;#x2026; \n
  68. ...so to explain this here you see the layout for one of our modules - this time with versions - in this setup everything is all over the map, something some project is ok with others not so much since they release the whole module not individual parts of it. So lets try use the mvn version plugin on this stuff. &lt;click&gt; We start by wanting to bump 2.0.1 to 2.0.2&amp;#x2026; \n
  69. ...so to explain this here you see the layout for one of our modules - this time with versions - in this setup everything is all over the map, something some project is ok with others not so much since they release the whole module not individual parts of it. So lets try use the mvn version plugin on this stuff. &lt;click&gt; We start by wanting to bump 2.0.1 to 2.0.2&amp;#x2026; \n
  70. ...so to explain this here you see the layout for one of our modules - this time with versions - in this setup everything is all over the map, something some project is ok with others not so much since they release the whole module not individual parts of it. So lets try use the mvn version plugin on this stuff. &lt;click&gt; We start by wanting to bump 2.0.1 to 2.0.2&amp;#x2026; \n
  71. ...so to explain this here you see the layout for one of our modules - this time with versions - in this setup everything is all over the map, something some project is ok with others not so much since they release the whole module not individual parts of it. So lets try use the mvn version plugin on this stuff. &lt;click&gt; We start by wanting to bump 2.0.1 to 2.0.2&amp;#x2026; \n
  72. ...so to explain this here you see the layout for one of our modules - this time with versions - in this setup everything is all over the map, something some project is ok with others not so much since they release the whole module not individual parts of it. So lets try use the mvn version plugin on this stuff. &lt;click&gt; We start by wanting to bump 2.0.1 to 2.0.2&amp;#x2026; \n
  73. ...so to explain this here you see the layout for one of our modules - this time with versions - in this setup everything is all over the map, something some project is ok with others not so much since they release the whole module not individual parts of it. So lets try use the mvn version plugin on this stuff. &lt;click&gt; We start by wanting to bump 2.0.1 to 2.0.2&amp;#x2026; \n
  74. ...so to explain this here you see the layout for one of our modules - this time with versions - in this setup everything is all over the map, something some project is ok with others not so much since they release the whole module not individual parts of it. So lets try use the mvn version plugin on this stuff. &lt;click&gt; We start by wanting to bump 2.0.1 to 2.0.2&amp;#x2026; \n
  75. ...mvn tycho will now go through all the pom&amp;#x2019;s/manifest/feature etc. where it can safely do the bump and you end up with something like this&amp;#x2026;.still alot of manual maintanence and for many of our plugins alot of manual tweaking.\n
  76. ..thus we&amp;#x2019;ve made it so we just have the version listed in the top module root and now &lt;click&gt; when we bump versions with tycho it actually bumps them all.\n
  77. ...it might be hard for you guys to appreciate the impact of this but we have over 645 versionable artifact (for good and some bad reasons) and having this kind of automation is awesome.\n
  78. ...some don&amp;#x2019;t like this approach and here I just have to point out that you can of course if you project needs it have parts of your module that is versioned very strictly and still benefit from this on the artifacts where the version is more tied to the overall release.&lt;click&gt;\n
  79. to sum up - the fact we moved to tycho gave us maven, which despite its reputation actually does provide great value to us because its possible to have tools work on the more powerful project model it provides over plain PDE build setups. Beyond the easy update of versions in all these artifacts - the fact I don&amp;#x2019;t have to see us repeat our self with respect to versions makes me happy...and remember version plugin is just one of them. code coverage, sonar, build setup etc. is others - I just took this one since its a not well knwon feature of tycho.\n
  80. to sum up - the fact we moved to tycho gave us maven, which despite its reputation actually does provide great value to us because its possible to have tools work on the more powerful project model it provides over plain PDE build setups. Beyond the easy update of versions in all these artifacts - the fact I don&amp;#x2019;t have to see us repeat our self with respect to versions makes me happy...and remember version plugin is just one of them. code coverage, sonar, build setup etc. is others - I just took this one since its a not well knwon feature of tycho.\n
  81. to sum up - the fact we moved to tycho gave us maven, which despite its reputation actually does provide great value to us because its possible to have tools work on the more powerful project model it provides over plain PDE build setups. Beyond the easy update of versions in all these artifacts - the fact I don&amp;#x2019;t have to see us repeat our self with respect to versions makes me happy...and remember version plugin is just one of them. code coverage, sonar, build setup etc. is others - I just took this one since its a not well knwon feature of tycho.\n
  82. to sum up - the fact we moved to tycho gave us maven, which despite its reputation actually does provide great value to us because its possible to have tools work on the more powerful project model it provides over plain PDE build setups. Beyond the easy update of versions in all these artifacts - the fact I don&amp;#x2019;t have to see us repeat our self with respect to versions makes me happy...and remember version plugin is just one of them. code coverage, sonar, build setup etc. is others - I just took this one since its a not well knwon feature of tycho.\n
  83. to sum up - the fact we moved to tycho gave us maven, which despite its reputation actually does provide great value to us because its possible to have tools work on the more powerful project model it provides over plain PDE build setups. Beyond the easy update of versions in all these artifacts - the fact I don&amp;#x2019;t have to see us repeat our self with respect to versions makes me happy...and remember version plugin is just one of them. code coverage, sonar, build setup etc. is others - I just took this one since its a not well knwon feature of tycho.\n
  84. to sum up - the fact we moved to tycho gave us maven, which despite its reputation actually does provide great value to us because its possible to have tools work on the more powerful project model it provides over plain PDE build setups. Beyond the easy update of versions in all these artifacts - the fact I don&amp;#x2019;t have to see us repeat our self with respect to versions makes me happy...and remember version plugin is just one of them. code coverage, sonar, build setup etc. is others - I just took this one since its a not well knwon feature of tycho.\n
  85. to sum up - the fact we moved to tycho gave us maven, which despite its reputation actually does provide great value to us because its possible to have tools work on the more powerful project model it provides over plain PDE build setups. Beyond the easy update of versions in all these artifacts - the fact I don&amp;#x2019;t have to see us repeat our self with respect to versions makes me happy...and remember version plugin is just one of them. code coverage, sonar, build setup etc. is others - I just took this one since its a not well knwon feature of tycho.\n
  86. to sum up - the fact we moved to tycho gave us maven, which despite its reputation actually does provide great value to us because its possible to have tools work on the more powerful project model it provides over plain PDE build setups. Beyond the easy update of versions in all these artifacts - the fact I don&amp;#x2019;t have to see us repeat our self with respect to versions makes me happy...and remember version plugin is just one of them. code coverage, sonar, build setup etc. is others - I just took this one since its a not well knwon feature of tycho.\n
  87. Another aspect of tycho is the whole &amp;#x201C;getting and resolving dependencies mechanism&amp;#x201D;. something that you in PDE had to do manually and in many time machine specific ways. With tycho you have your source and since it uses mvn an .m2 repository local on disk. Here the build will fail because of the missing Plugin Z - and thus you &lt;click&gt; would go and add a p2 repository (or more) to your build. Now with that repository available tycho can create an implicit target platform by getting the missing Z from the repo and then &lt;click&gt; build A,B and C. Easy stuff - but what if what you actually wanted was Plugin Z 1.7 ? what happens if you p2 repo gets a new 1.9 version ? Your build will be affected by it!\n
  88. Another aspect of tycho is the whole &amp;#x201C;getting and resolving dependencies mechanism&amp;#x201D;. something that you in PDE had to do manually and in many time machine specific ways. With tycho you have your source and since it uses mvn an .m2 repository local on disk. Here the build will fail because of the missing Plugin Z - and thus you &lt;click&gt; would go and add a p2 repository (or more) to your build. Now with that repository available tycho can create an implicit target platform by getting the missing Z from the repo and then &lt;click&gt; build A,B and C. Easy stuff - but what if what you actually wanted was Plugin Z 1.7 ? what happens if you p2 repo gets a new 1.9 version ? Your build will be affected by it!\n
  89. Another aspect of tycho is the whole &amp;#x201C;getting and resolving dependencies mechanism&amp;#x201D;. something that you in PDE had to do manually and in many time machine specific ways. With tycho you have your source and since it uses mvn an .m2 repository local on disk. Here the build will fail because of the missing Plugin Z - and thus you &lt;click&gt; would go and add a p2 repository (or more) to your build. Now with that repository available tycho can create an implicit target platform by getting the missing Z from the repo and then &lt;click&gt; build A,B and C. Easy stuff - but what if what you actually wanted was Plugin Z 1.7 ? what happens if you p2 repo gets a new 1.9 version ? Your build will be affected by it!\n
  90. Another aspect of tycho is the whole &amp;#x201C;getting and resolving dependencies mechanism&amp;#x201D;. something that you in PDE had to do manually and in many time machine specific ways. With tycho you have your source and since it uses mvn an .m2 repository local on disk. Here the build will fail because of the missing Plugin Z - and thus you &lt;click&gt; would go and add a p2 repository (or more) to your build. Now with that repository available tycho can create an implicit target platform by getting the missing Z from the repo and then &lt;click&gt; build A,B and C. Easy stuff - but what if what you actually wanted was Plugin Z 1.7 ? what happens if you p2 repo gets a new 1.9 version ? Your build will be affected by it!\n
  91. Another aspect of tycho is the whole &amp;#x201C;getting and resolving dependencies mechanism&amp;#x201D;. something that you in PDE had to do manually and in many time machine specific ways. With tycho you have your source and since it uses mvn an .m2 repository local on disk. Here the build will fail because of the missing Plugin Z - and thus you &lt;click&gt; would go and add a p2 repository (or more) to your build. Now with that repository available tycho can create an implicit target platform by getting the missing Z from the repo and then &lt;click&gt; build A,B and C. Easy stuff - but what if what you actually wanted was Plugin Z 1.7 ? what happens if you p2 repo gets a new 1.9 version ? Your build will be affected by it!\n
  92. Another aspect of tycho is the whole &amp;#x201C;getting and resolving dependencies mechanism&amp;#x201D;. something that you in PDE had to do manually and in many time machine specific ways. With tycho you have your source and since it uses mvn an .m2 repository local on disk. Here the build will fail because of the missing Plugin Z - and thus you &lt;click&gt; would go and add a p2 repository (or more) to your build. Now with that repository available tycho can create an implicit target platform by getting the missing Z from the repo and then &lt;click&gt; build A,B and C. Easy stuff - but what if what you actually wanted was Plugin Z 1.7 ? what happens if you p2 repo gets a new 1.9 version ? Your build will be affected by it!\n
  93. ...to help on that Tycho supports target definitions - here I can specify the Z plugin specific version and I can even add other plugins to the target platform which might not be explicitly needed by the plugin but might be relevant for actually running tests for this build. Same approach again &lt;click&gt; tycho gets the plugin Z but now uses 1.7 and it also grabs the Q to do the build and after that &lt;click&gt; Tycho can again build A,B and C.\n
  94. ...to help on that Tycho supports target definitions - here I can specify the Z plugin specific version and I can even add other plugins to the target platform which might not be explicitly needed by the plugin but might be relevant for actually running tests for this build. Same approach again &lt;click&gt; tycho gets the plugin Z but now uses 1.7 and it also grabs the Q to do the build and after that &lt;click&gt; Tycho can again build A,B and C.\n
  95. ...to help on that Tycho supports target definitions - here I can specify the Z plugin specific version and I can even add other plugins to the target platform which might not be explicitly needed by the plugin but might be relevant for actually running tests for this build. Same approach again &lt;click&gt; tycho gets the plugin Z but now uses 1.7 and it also grabs the Q to do the build and after that &lt;click&gt; Tycho can again build A,B and C.\n
  96. ...to help on that Tycho supports target definitions - here I can specify the Z plugin specific version and I can even add other plugins to the target platform which might not be explicitly needed by the plugin but might be relevant for actually running tests for this build. Same approach again &lt;click&gt; tycho gets the plugin Z but now uses 1.7 and it also grabs the Q to do the build and after that &lt;click&gt; Tycho can again build A,B and C.\n
  97. ...to help on that Tycho supports target definitions - here I can specify the Z plugin specific version and I can even add other plugins to the target platform which might not be explicitly needed by the plugin but might be relevant for actually running tests for this build. Same approach again &lt;click&gt; tycho gets the plugin Z but now uses 1.7 and it also grabs the Q to do the build and after that &lt;click&gt; Tycho can again build A,B and C.\n
  98. Now what if I wanted to build C on its own - do I still need to check out A &amp; B to build ? no, you can actually &lt;click&gt;publish your results to a p2 repository (in reality its just a directory on an http server) and you as a user can do that or your hudson build can do it and other builds can now pick it up.\n
  99. Now what if I wanted to build C on its own - do I still need to check out A &amp; B to build ? no, you can actually &lt;click&gt;publish your results to a p2 repository (in reality its just a directory on an http server) and you as a user can do that or your hudson build can do it and other builds can now pick it up.\n
  100. Now what if I wanted to build C on its own - do I still need to check out A &amp; B to build ? no, you can actually &lt;click&gt;publish your results to a p2 repository (in reality its just a directory on an http server) and you as a user can do that or your hudson build can do it and other builds can now pick it up.\n
  101. ...so how does that work ? well you just have your C plugin checked out and for this example i stated that C needs Z and B. Now because my latest builds are available in the p2 repositories tycho &lt;click&gt; is again able to create a target platform &lt;click&gt; that allows me to build C&amp;#x2026;.so we used this setup but it actually gave us a lesson in time.\n
  102. ...so how does that work ? well you just have your C plugin checked out and for this example i stated that C needs Z and B. Now because my latest builds are available in the p2 repositories tycho &lt;click&gt; is again able to create a target platform &lt;click&gt; that allows me to build C&amp;#x2026;.so we used this setup but it actually gave us a lesson in time.\n
  103. ...so how does that work ? well you just have your C plugin checked out and for this example i stated that C needs Z and B. Now because my latest builds are available in the p2 repositories tycho &lt;click&gt; is again able to create a target platform &lt;click&gt; that allows me to build C&amp;#x2026;.so we used this setup but it actually gave us a lesson in time.\n
  104. ...so how does that work ? well you just have your C plugin checked out and for this example i stated that C needs Z and B. Now because my latest builds are available in the p2 repositories tycho &lt;click&gt; is again able to create a target platform &lt;click&gt; that allows me to build C&amp;#x2026;.so we used this setup but it actually gave us a lesson in time.\n
  105. Tycho is very good at matching how PDE/p2 is normally used by having .qualifiers and replace it with a real qualifier. its default a timestamp but you can also override it as shown here. the timpestamp is what caught us offguard since we have &lt;click&gt; a build server in eastern us - our hudson instance lives there...and our team and community builds against it from all over the world. Now what happend is that tycho had a bug that made the build look as they were always done &amp;#x201C;back in time&amp;#x201D; and thus users local builds in Eu/Asia was hornored first, but those living behind that red line saw their builds sometime pickup old stuff because the timestamp was &amp;#x201C;ahead of time&amp;#x201D;.\n
  106. Tycho is very good at matching how PDE/p2 is normally used by having .qualifiers and replace it with a real qualifier. its default a timestamp but you can also override it as shown here. the timpestamp is what caught us offguard since we have &lt;click&gt; a build server in eastern us - our hudson instance lives there...and our team and community builds against it from all over the world. Now what happend is that tycho had a bug that made the build look as they were always done &amp;#x201C;back in time&amp;#x201D; and thus users local builds in Eu/Asia was hornored first, but those living behind that red line saw their builds sometime pickup old stuff because the timestamp was &amp;#x201C;ahead of time&amp;#x201D;.\n
  107. Tycho is very good at matching how PDE/p2 is normally used by having .qualifiers and replace it with a real qualifier. its default a timestamp but you can also override it as shown here. the timpestamp is what caught us offguard since we have &lt;click&gt; a build server in eastern us - our hudson instance lives there...and our team and community builds against it from all over the world. Now what happend is that tycho had a bug that made the build look as they were always done &amp;#x201C;back in time&amp;#x201D; and thus users local builds in Eu/Asia was hornored first, but those living behind that red line saw their builds sometime pickup old stuff because the timestamp was &amp;#x201C;ahead of time&amp;#x201D;.\n
  108. Tycho is very good at matching how PDE/p2 is normally used by having .qualifiers and replace it with a real qualifier. its default a timestamp but you can also override it as shown here. the timpestamp is what caught us offguard since we have &lt;click&gt; a build server in eastern us - our hudson instance lives there...and our team and community builds against it from all over the world. Now what happend is that tycho had a bug that made the build look as they were always done &amp;#x201C;back in time&amp;#x201D; and thus users local builds in Eu/Asia was hornored first, but those living behind that red line saw their builds sometime pickup old stuff because the timestamp was &amp;#x201C;ahead of time&amp;#x201D;.\n
  109. Tycho is very good at matching how PDE/p2 is normally used by having .qualifiers and replace it with a real qualifier. its default a timestamp but you can also override it as shown here. the timpestamp is what caught us offguard since we have &lt;click&gt; a build server in eastern us - our hudson instance lives there...and our team and community builds against it from all over the world. Now what happend is that tycho had a bug that made the build look as they were always done &amp;#x201C;back in time&amp;#x201D; and thus users local builds in Eu/Asia was hornored first, but those living behind that red line saw their builds sometime pickup old stuff because the timestamp was &amp;#x201C;ahead of time&amp;#x201D;.\n
  110. Tycho is very good at matching how PDE/p2 is normally used by having .qualifiers and replace it with a real qualifier. its default a timestamp but you can also override it as shown here. the timpestamp is what caught us offguard since we have &lt;click&gt; a build server in eastern us - our hudson instance lives there...and our team and community builds against it from all over the world. Now what happend is that tycho had a bug that made the build look as they were always done &amp;#x201C;back in time&amp;#x201D; and thus users local builds in Eu/Asia was hornored first, but those living behind that red line saw their builds sometime pickup old stuff because the timestamp was &amp;#x201C;ahead of time&amp;#x201D;.\n
  111. Tycho is very good at matching how PDE/p2 is normally used by having .qualifiers and replace it with a real qualifier. its default a timestamp but you can also override it as shown here. the timpestamp is what caught us offguard since we have &lt;click&gt; a build server in eastern us - our hudson instance lives there...and our team and community builds against it from all over the world. Now what happend is that tycho had a bug that made the build look as they were always done &amp;#x201C;back in time&amp;#x201D; and thus users local builds in Eu/Asia was hornored first, but those living behind that red line saw their builds sometime pickup old stuff because the timestamp was &amp;#x201C;ahead of time&amp;#x201D;.\n
  112. Tycho is very good at matching how PDE/p2 is normally used by having .qualifiers and replace it with a real qualifier. its default a timestamp but you can also override it as shown here. the timpestamp is what caught us offguard since we have &lt;click&gt; a build server in eastern us - our hudson instance lives there...and our team and community builds against it from all over the world. Now what happend is that tycho had a bug that made the build look as they were always done &amp;#x201C;back in time&amp;#x201D; and thus users local builds in Eu/Asia was hornored first, but those living behind that red line saw their builds sometime pickup old stuff because the timestamp was &amp;#x201C;ahead of time&amp;#x201D;.\n
  113. Tycho is very good at matching how PDE/p2 is normally used by having .qualifiers and replace it with a real qualifier. its default a timestamp but you can also override it as shown here. the timpestamp is what caught us offguard since we have &lt;click&gt; a build server in eastern us - our hudson instance lives there...and our team and community builds against it from all over the world. Now what happend is that tycho had a bug that made the build look as they were always done &amp;#x201C;back in time&amp;#x201D; and thus users local builds in Eu/Asia was hornored first, but those living behind that red line saw their builds sometime pickup old stuff because the timestamp was &amp;#x201C;ahead of time&amp;#x201D;.\n
  114. Tycho is very good at matching how PDE/p2 is normally used by having .qualifiers and replace it with a real qualifier. its default a timestamp but you can also override it as shown here. the timpestamp is what caught us offguard since we have &lt;click&gt; a build server in eastern us - our hudson instance lives there...and our team and community builds against it from all over the world. Now what happend is that tycho had a bug that made the build look as they were always done &amp;#x201C;back in time&amp;#x201D; and thus users local builds in Eu/Asia was hornored first, but those living behind that red line saw their builds sometime pickup old stuff because the timestamp was &amp;#x201C;ahead of time&amp;#x201D;.\n
  115. Tycho is very good at matching how PDE/p2 is normally used by having .qualifiers and replace it with a real qualifier. its default a timestamp but you can also override it as shown here. the timpestamp is what caught us offguard since we have &lt;click&gt; a build server in eastern us - our hudson instance lives there...and our team and community builds against it from all over the world. Now what happend is that tycho had a bug that made the build look as they were always done &amp;#x201C;back in time&amp;#x201D; and thus users local builds in Eu/Asia was hornored first, but those living behind that red line saw their builds sometime pickup old stuff because the timestamp was &amp;#x201C;ahead of time&amp;#x201D;.\n
  116. Tycho is very good at matching how PDE/p2 is normally used by having .qualifiers and replace it with a real qualifier. its default a timestamp but you can also override it as shown here. the timpestamp is what caught us offguard since we have &lt;click&gt; a build server in eastern us - our hudson instance lives there...and our team and community builds against it from all over the world. Now what happend is that tycho had a bug that made the build look as they were always done &amp;#x201C;back in time&amp;#x201D; and thus users local builds in Eu/Asia was hornored first, but those living behind that red line saw their builds sometime pickup old stuff because the timestamp was &amp;#x201C;ahead of time&amp;#x201D;.\n
  117. Tycho is very good at matching how PDE/p2 is normally used by having .qualifiers and replace it with a real qualifier. its default a timestamp but you can also override it as shown here. the timpestamp is what caught us offguard since we have &lt;click&gt; a build server in eastern us - our hudson instance lives there...and our team and community builds against it from all over the world. Now what happend is that tycho had a bug that made the build look as they were always done &amp;#x201C;back in time&amp;#x201D; and thus users local builds in Eu/Asia was hornored first, but those living behind that red line saw their builds sometime pickup old stuff because the timestamp was &amp;#x201C;ahead of time&amp;#x201D;.\n
  118. luckily in 0.13 they fixed this and just like traditional mvn this qualifier is now generated with an UTC timestamp and not a local one! So at least use 0.13 if you are in a world wide team.\n
  119. Another great thing about Tycho is that it generates updatesites just as easy as it builds plugins - since it has all the right metadata to do this based on the existing PDE build.properties and manifest.mf files it just works....but some things are missing in this picture...and that is...&lt;click&gt;\n
  120. Source features - I want our technical users to be able to see how we build the features they are using and let them contribute back easily. For that we need source Eclipse features. This before tycho required a lot of templating code and tedius setup and repetition.&lt;click&gt; in tycho it just requires a bunch of xml noise.&lt;click&gt;p.s. all this only work in 0.14+ &lt;click&gt;\n
  121. Source features - I want our technical users to be able to see how we build the features they are using and let them contribute back easily. For that we need source Eclipse features. This before tycho required a lot of templating code and tedius setup and repetition.&lt;click&gt; in tycho it just requires a bunch of xml noise.&lt;click&gt;p.s. all this only work in 0.14+ &lt;click&gt;\n
  122. The interesting part are that you just need to enable source-feature packaging and enable a p2-metadata generation of these during packaging.\nWhat are we getting for adding this bunch of xml ?\n
  123. Before we had the updatesite as we were used to it...\n
  124. Now we have source features in there - all nicely installable and reusable. Greatness! Just one of the many upsides of marrying maven and p2; it might not be perfect in the beginning but generally the end result is so much worth it.\n
  125. ...but time is short and its time to try and sum up what is good, bad and ugly about Tycho &lt;click&gt;. The good is that this stuff just works - the additional metadata is concise and opens up to use all the great stuff happening in the mvn ecosystem. And something I haven&amp;#x2019;t highlighted here is that the guys from sonatype and SAP and others are very active on the mailing list to help figure out the tricky corners and fix bugs you helped identify. The Bad side is that there are bugs and there have been some nasty ones but luckily most of these are fixed in 0.13 and onwards and I hope at tonight BOF&amp;#x2019;s we can tackle some of the left over issues&amp;#x2026; and if there is one ugly thing I should say about these is that to setup Tycho you need to understand mvn, osgi and P2 - and that is a challenge...but the same challenge also existed with PDE/Build and the power of tycho is that because it is much more strict it actually helped us to cleanup things we ignored or didnt realize was true problems for p2/osgi until Tycho told us differently.\n
  126. ...but time is short and its time to try and sum up what is good, bad and ugly about Tycho &lt;click&gt;. The good is that this stuff just works - the additional metadata is concise and opens up to use all the great stuff happening in the mvn ecosystem. And something I haven&amp;#x2019;t highlighted here is that the guys from sonatype and SAP and others are very active on the mailing list to help figure out the tricky corners and fix bugs you helped identify. The Bad side is that there are bugs and there have been some nasty ones but luckily most of these are fixed in 0.13 and onwards and I hope at tonight BOF&amp;#x2019;s we can tackle some of the left over issues&amp;#x2026; and if there is one ugly thing I should say about these is that to setup Tycho you need to understand mvn, osgi and P2 - and that is a challenge...but the same challenge also existed with PDE/Build and the power of tycho is that because it is much more strict it actually helped us to cleanup things we ignored or didnt realize was true problems for p2/osgi until Tycho told us differently.\n
  127. ...but time is short and its time to try and sum up what is good, bad and ugly about Tycho &lt;click&gt;. The good is that this stuff just works - the additional metadata is concise and opens up to use all the great stuff happening in the mvn ecosystem. And something I haven&amp;#x2019;t highlighted here is that the guys from sonatype and SAP and others are very active on the mailing list to help figure out the tricky corners and fix bugs you helped identify. The Bad side is that there are bugs and there have been some nasty ones but luckily most of these are fixed in 0.13 and onwards and I hope at tonight BOF&amp;#x2019;s we can tackle some of the left over issues&amp;#x2026; and if there is one ugly thing I should say about these is that to setup Tycho you need to understand mvn, osgi and P2 - and that is a challenge...but the same challenge also existed with PDE/Build and the power of tycho is that because it is much more strict it actually helped us to cleanup things we ignored or didnt realize was true problems for p2/osgi until Tycho told us differently.\n
  128. ...so in overall Tycho is mostly just damn good :)\n
  129. ...so in overall Tycho is mostly just damn good :)\n
  130. ...and that actually concludes my talk and I&amp;#x2019;ve put some resource links here to what I&amp;#x2019;ve used to track/learn tycho and also the blog I&amp;#x2019;ve written about our tycho versions plugin for those that are interested...and with that I open up for questions.\n
  131. ...and that actually concludes my talk and I&amp;#x2019;ve put some resource links here to what I&amp;#x2019;ve used to track/learn tycho and also the blog I&amp;#x2019;ve written about our tycho versions plugin for those that are interested...and with that I open up for questions.\n
  132. ...and that actually concludes my talk and I&amp;#x2019;ve put some resource links here to what I&amp;#x2019;ve used to track/learn tycho and also the blog I&amp;#x2019;ve written about our tycho versions plugin for those that are interested...and with that I open up for questions.\n
  133. ...and that actually concludes my talk and I&amp;#x2019;ve put some resource links here to what I&amp;#x2019;ve used to track/learn tycho and also the blog I&amp;#x2019;ve written about our tycho versions plugin for those that are interested...and with that I open up for questions.\n
  134. ...and that actually concludes my talk and I&amp;#x2019;ve put some resource links here to what I&amp;#x2019;ve used to track/learn tycho and also the blog I&amp;#x2019;ve written about our tycho versions plugin for those that are interested...and with that I open up for questions.\n
  135. ...and that actually concludes my talk and I&amp;#x2019;ve put some resource links here to what I&amp;#x2019;ve used to track/learn tycho and also the blog I&amp;#x2019;ve written about our tycho versions plugin for those that are interested...and with that I open up for questions.\n
  136. ...and that actually concludes my talk and I&amp;#x2019;ve put some resource links here to what I&amp;#x2019;ve used to track/learn tycho and also the blog I&amp;#x2019;ve written about our tycho versions plugin for those that are interested...and with that I open up for questions.\n
  137. Thank you - and Please go to this URL to vote on this talk! thank you!\n
  138. Thank you - and Please go to this URL to vote on this talk! thank you!\n
  139. Thank you - and Please go to this URL to vote on this talk! thank you!\n
  140. Thank you - and Please go to this URL to vote on this talk! thank you!\n
  141. Thank you - and Please go to this URL to vote on this talk! thank you!\n
  142. Thank you - and Please go to this URL to vote on this talk! thank you!\n
  143. Thank you - and Please go to this URL to vote on this talk! thank you!\n