Next Generation Development Infrastructure€¦ · Tycho uses the OSGi state resolver is used to...

23
Next Generation Development Infrastructure Jason van Zyl - http://twitter.com/jvanzyl SONATYPE Wednesday, January 27th, 2010 Wednesday, January 27, 2010

Transcript of Next Generation Development Infrastructure€¦ · Tycho uses the OSGi state resolver is used to...

Page 1: Next Generation Development Infrastructure€¦ · Tycho uses the OSGi state resolver is used to make sure the resolution that occurs during build-time matches what you will need

Next Generation Development InfrastructureJason van Zyl - http://twitter.com/jvanzyl

SONATYPEWednesday, January 27th, 2010

Wednesday, January 27, 2010

Page 2: Next Generation Development Infrastructure€¦ · Tycho uses the OSGi state resolver is used to make sure the resolution that occurs during build-time matches what you will need

0

175,000

350,000

525,000

700,000

Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec

667,708646,600

588,141557,734

514,589502,899512,165514,924

475,643470,237

362,893

315,970

Maven Central 2009: Unique IPs / Month

Uni

que

IPs

2008 Total Unique IPs: 1,836,7092009 Total Unique IPs: 3,978,964

Wednesday, January 27, 2010

Page 3: Next Generation Development Infrastructure€¦ · Tycho uses the OSGi state resolver is used to make sure the resolution that occurs during build-time matches what you will need

Hudson

Maven

NAR

Tycho

M2Eclipse Pro

Git

NexusP2

OBR

Gems

MavenFlexMojos

EC2vCloud

Proviso

Zeus

Clojure

Scala

GroovyRuby

Polyglot Maven

Equinox

Shiro

Enunciate

Guice

Peaberry

Maven Shell

m-b-pMaven Stack

InfrastructureMaven Stack

Implementation

Wednesday, January 27, 2010

Page 4: Next Generation Development Infrastructure€¦ · Tycho uses the OSGi state resolver is used to make sure the resolution that occurs during build-time matches what you will need

Apache Shiro

Wednesday, January 27, 2010

Page 5: Next Generation Development Infrastructure€¦ · Tycho uses the OSGi state resolver is used to make sure the resolution that occurs during build-time matches what you will need

Hudson

Maven

NAR

Tycho

M2Eclipse Pro

Git

NexusP2

OBR

Gems

MavenFlexMojos

EC2vCloud

Proviso

Zeus

Clojure

Scala

GroovyRuby

Polyglot Maven

Equinox

Shiro

Enunciate

Guice

Peaberry

Maven Shell

m-b-pMaven Stack

InfrastructureMaven Stack

Implementation

Wednesday, January 27, 2010

Page 6: Next Generation Development Infrastructure€¦ · Tycho uses the OSGi state resolver is used to make sure the resolution that occurs during build-time matches what you will need

TychoTycho attempts to be a complete replacement for PDE headless build, Buckminster, and everything else that attempts to build OSGi bundles and Eclipse plugins in a MANIFEST.MF-first way.

Tycho already uses Eclipse/OSGi metadata to resolve project dependencies by OSGi rules and injects these dependencies into maven project model dynamically, at build time.

Tycho uses JDT to make sure modularity rules are applied.

Tycho uses the OSGi state resolver is used to make sure the resolution that occurs during build-time matches what you will need at runtime.

Tycho supports bundles, fragments, features and update sites, as well as RCP applications.

Tycho knows how to run JUnit test plugins using the OSGi runtime.

Tycho has support for P2 repositories, Update Sites and Maven repositories.

Tycho supports POM-first OSGi bundles.

M2Eclipse has support for importing Tycho projects as Eclipse PDE projects.

Wednesday, January 27, 2010

Page 7: Next Generation Development Infrastructure€¦ · Tycho uses the OSGi state resolver is used to make sure the resolution that occurs during build-time matches what you will need

Hudson

Maven

NAR

Tycho

M2Eclipse Pro

Git

NexusP2

OBR

Gems

MavenFlexMojos

EC2vCloud

Proviso

Zeus

Clojure

Scala

GroovyRuby

Polyglot Maven

Equinox

Shiro

Enunciate

Guice

Peaberry

Maven Shell

m-b-pMaven Stack

InfrastructureMaven Stack

Implementation

Wednesday, January 27, 2010

Page 8: Next Generation Development Infrastructure€¦ · Tycho uses the OSGi state resolver is used to make sure the resolution that occurs during build-time matches what you will need

m2eclipse + configuration

framework

Automation & Maven

Humans & Eclipse

WTP AJDT

JDT Flex

Turn Eclipse mumbo-jumbointo Maven talk

Turn Maven mumbo-jumbointo Eclipse talk

m2eclipse Configuration Framework

Wednesday, January 27, 2010

Page 9: Next Generation Development Infrastructure€¦ · Tycho uses the OSGi state resolver is used to make sure the resolution that occurs during build-time matches what you will need

m2eclipse + configuration

framework

Automation & Maven

Humans & Eclipse

WTP AJDT

JDT Flex

Turn Eclipse mumbo-jumbointo Maven talk

Turn Maven mumbo-jumbointo Eclipse talk

m2eclipse Configuration Framework

Wednesday, January 27, 2010

Page 10: Next Generation Development Infrastructure€¦ · Tycho uses the OSGi state resolver is used to make sure the resolution that occurs during build-time matches what you will need

Hudson

Maven

NAR

Tycho

M2Eclipse Pro

Git

NexusP2

OBR

Gems

MavenFlexMojos

EC2vCloud

Proviso

Zeus

Clojure

Scala

GroovyRuby

Polyglot Maven

Equinox

Shiro

Enunciate

Guice

Peaberry

Maven Shell

m-b-pMaven Stack

InfrastructureMaven Stack

Implementation

Wednesday, January 27, 2010

Page 11: Next Generation Development Infrastructure€¦ · Tycho uses the OSGi state resolver is used to make sure the resolution that occurs during build-time matches what you will need

Hudson

Maven

NAR

Tycho

M2Eclipse Pro

Git

NexusP2

OBR

Gems

MavenFlexMojos

EC2vCloud

Proviso

Zeus

Clojure

Scala

GroovyRuby

Polyglot Maven

Equinox

Shiro

Enunciate

Guice

Peaberry

Maven Shell

m-b-pMaven Stack

InfrastructureMaven Stack

Implementation

Wednesday, January 27, 2010

Page 12: Next Generation Development Infrastructure€¦ · Tycho uses the OSGi state resolver is used to make sure the resolution that occurs during build-time matches what you will need

Nexus

Apache

Codehaus

JBoss

Terracotta

Dev

Test

QAProduction

Open Source Ghetto

Precious

DevelopersYour Ghetto

Configuration management

- bad POMs- repositories in POMs (bad dog!)- mixed snapshot and release repositories- incorrect optional dependencies

World

Unified indicesfor m2e

One repositoryconfiguration!

Just kidding, your dev environment is probably perfect

Group

Wednesday, January 27, 2010

Page 13: Next Generation Development Infrastructure€¦ · Tycho uses the OSGi state resolver is used to make sure the resolution that occurs during build-time matches what you will need

Hudson

Maven

NAR

Tycho

M2Eclipse Pro

Git

NexusP2

OBR

Gems

MavenFlexMojos

EC2vCloud

Proviso

Zeus

Clojure

Scala

GroovyRuby

Polyglot Maven

Equinox

Shiro

Enunciate

Guice

Peaberry

Maven Shell

m-b-pMaven Stack

InfrastructureMaven Stack

Implementation

Wednesday, January 27, 2010

Page 14: Next Generation Development Infrastructure€¦ · Tycho uses the OSGi state resolver is used to make sure the resolution that occurs during build-time matches what you will need

Hudson

Maven

NAR

Tycho

M2Eclipse Pro

Git

NexusP2

OBR

Gems

MavenFlexMojos

EC2vCloud

Proviso

Zeus

Clojure

Scala

GroovyRuby

Polyglot Maven

Equinox

Shiro

Enunciate

Guice

Peaberry

Maven Shell

m-b-pMaven Stack

InfrastructureMaven Stack

Implementation

Wednesday, January 27, 2010

Page 15: Next Generation Development Infrastructure€¦ · Tycho uses the OSGi state resolver is used to make sure the resolution that occurs during build-time matches what you will need

Hudson

Maven

NAR

Tycho

M2Eclipse Pro

Git

NexusP2

OBR

Gems

MavenFlexMojos

EC2vCloud

Proviso

Zeus

Clojure

Scala

GroovyRuby

Polyglot Maven

Equinox

Shiro

Enunciate

Guice

Peaberry

Maven Shell

m-b-pMaven Stack

InfrastructureMaven Stack

Implementation

Wednesday, January 27, 2010

Page 17: Next Generation Development Infrastructure€¦ · Tycho uses the OSGi state resolver is used to make sure the resolution that occurs during build-time matches what you will need

The Java community needs anotherbuild infrastructure like a ...

Wednesday, January 27, 2010

Page 18: Next Generation Development Infrastructure€¦ · Tycho uses the OSGi state resolver is used to make sure the resolution that occurs during build-time matches what you will need

The Java community needs anotherbuild infrastructure like a ...

Wednesday, January 27, 2010

Page 19: Next Generation Development Infrastructure€¦ · Tycho uses the OSGi state resolver is used to make sure the resolution that occurs during build-time matches what you will need

Wednesday, January 27, 2010

Page 20: Next Generation Development Infrastructure€¦ · Tycho uses the OSGi state resolver is used to make sure the resolution that occurs during build-time matches what you will need

Wednesday, January 27, 2010

Page 21: Next Generation Development Infrastructure€¦ · Tycho uses the OSGi state resolver is used to make sure the resolution that occurs during build-time matches what you will need

Wednesday, January 27, 2010

Page 22: Next Generation Development Infrastructure€¦ · Tycho uses the OSGi state resolver is used to make sure the resolution that occurs during build-time matches what you will need

Wednesday, January 27, 2010

Page 23: Next Generation Development Infrastructure€¦ · Tycho uses the OSGi state resolver is used to make sure the resolution that occurs during build-time matches what you will need

Suck less. Use Maven.

Wednesday, January 27, 2010