Skip to content

Commit

Permalink
Merge pull request #59 from paketo-buildpacks/api/0.5
Browse files Browse the repository at this point in the history
Buildpack API 0.5
  • Loading branch information
ekcasey authored Feb 2, 2021
2 parents ac0a241 + 880da19 commit 0f167ed
Show file tree
Hide file tree
Showing 8 changed files with 58 additions and 37 deletions.
9 changes: 6 additions & 3 deletions boot/build.go
Original file line number Diff line number Diff line change
Expand Up @@ -131,9 +131,10 @@ func (b Build) Build(context libcnb.BuildContext) (libcnb.BuildResult, error) {
if err != nil {
return libcnb.BuildResult{}, fmt.Errorf("unable to generate dependencies from %s\n%w", context.Application.Path, err)
}
result.Plan.Entries = append(result.Plan.Entries, libcnb.BuildpackPlanEntry{
result.BOM.Entries = append(result.BOM.Entries, libcnb.BOMEntry{
Name: "dependencies",
Metadata: map[string]interface{}{"layer": "application", "dependencies": d},
Launch: true,
})

gv, err := NewGenerationValidator(filepath.Join(context.Buildpack.Path, "spring-generations.toml"))
Expand Down Expand Up @@ -166,9 +167,10 @@ func (b Build) Build(context libcnb.BuildContext) (libcnb.BuildResult, error) {
return libcnb.BuildResult{}, fmt.Errorf("unable to create WebApplicationTypeResolver\n%w", err)
}

h := libpak.NewHelperLayerContributor(context.Buildpack, result.Plan, "spring-cloud-bindings")
h, be := libpak.NewHelperLayer(context.Buildpack, "spring-cloud-bindings")
h.Logger = b.Logger
result.Layers = append(result.Layers, h)
result.BOM.Entries = append(result.BOM.Entries, be)

at, err := NewWebApplicationType(context.Application.Path, wr)
if err != nil {
Expand All @@ -182,9 +184,10 @@ func (b Build) Build(context libcnb.BuildContext) (libcnb.BuildResult, error) {
return libcnb.BuildResult{}, fmt.Errorf("unable to find dependency\n%w", err)
}

bindingsLayer := NewSpringCloudBindings(filepath.Join(context.Application.Path, lib), dep, dc, result.Plan)
bindingsLayer, be := NewSpringCloudBindings(filepath.Join(context.Application.Path, lib), dep, dc)
bindingsLayer.Logger = b.Logger
result.Layers = append(result.Layers, bindingsLayer)
result.BOM.Entries = append(result.BOM.Entries, be)

if index, ok := manifest.Get("Spring-Boot-Layers-Index"); ok {
b.Logger.Header("Creating slices from layers index")
Expand Down
15 changes: 13 additions & 2 deletions boot/build_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,7 @@ Implementation-Version: 2.2.2
}))
})

it("contributes dependencies plan entry", func() {
it("contributes dependencies bom entry", func() {
Expect(ioutil.WriteFile(filepath.Join(ctx.Application.Path, "META-INF", "MANIFEST.MF"), []byte(`
Spring-Boot-Version: 1.1.1
Spring-Boot-Classes: BOOT-INF/classes
Expand All @@ -172,7 +172,7 @@ Spring-Boot-Lib: BOOT-INF/lib
result, err := build.Build(ctx)
Expect(err).NotTo(HaveOccurred())

Expect(result.Plan.Entries).To(ContainElement(libcnb.BuildpackPlanEntry{
Expect(result.BOM.Entries).To(ContainElement(libcnb.BOMEntry{
Name: "dependencies",
Metadata: map[string]interface{}{
"layer": "application",
Expand All @@ -184,6 +184,8 @@ Spring-Boot-Lib: BOOT-INF/lib
},
},
},
Build: false,
Launch: true,
}))
})

Expand All @@ -202,6 +204,15 @@ Spring-Boot-Lib: BOOT-INF/lib
Expect(result.Layers[0].(libpak.HelperLayerContributor).Names).To(Equal([]string{"spring-cloud-bindings"}))
Expect(result.Layers[1].Name()).To(Equal("web-application-type"))
Expect(result.Layers[2].Name()).To(Equal("spring-cloud-bindings"))

Expect(result.BOM.Entries).To(HaveLen(3))
Expect(result.BOM.Entries[0].Name).To(Equal("dependencies"))
Expect(result.BOM.Entries[1].Name).To(Equal("helper"))
Expect(result.BOM.Entries[1].Launch).To(BeTrue())
Expect(result.BOM.Entries[1].Build).To(BeFalse())
Expect(result.BOM.Entries[2].Name).To(Equal("spring-cloud-bindings"))
Expect(result.BOM.Entries[2].Launch).To(BeTrue())
Expect(result.BOM.Entries[2].Build).To(BeFalse())
})

it("contributes slices from layers index", func() {
Expand Down
13 changes: 7 additions & 6 deletions boot/spring_cloud_bindings.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,14 +34,15 @@ type SpringCloudBindings struct {
SpringBootLib string
}

func NewSpringCloudBindings(springBootLib string, dependency libpak.BuildpackDependency, cache libpak.DependencyCache,
plan *libcnb.BuildpackPlan) SpringCloudBindings {

func NewSpringCloudBindings(springBootLib string, dependency libpak.BuildpackDependency, cache libpak.DependencyCache) (SpringCloudBindings, libcnb.BOMEntry) {
contributor, entry := libpak.NewDependencyLayer(dependency, cache, libcnb.LayerTypes{
Launch: true,
})
return SpringCloudBindings{
Dependency: dependency,
LayerContributor: libpak.NewDependencyLayerContributor(dependency, cache, plan),
LayerContributor: contributor,
SpringBootLib: springBootLib,
}
}, entry
}

func (s SpringCloudBindings) Contribute(layer libcnb.Layer) (libcnb.Layer, error) {
Expand All @@ -57,7 +58,7 @@ func (s SpringCloudBindings) Contribute(layer libcnb.Layer) (libcnb.Layer, error
}

return layer, nil
}, libpak.LaunchLayer)
})
if err != nil {
return libcnb.Layer{}, fmt.Errorf("unable to contribute spring-cloud-bindings layer\n%w", err)
}
Expand Down
2 changes: 1 addition & 1 deletion boot/spring_cloud_bindings_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ func testSpringCloudBindings(t *testing.T, context spec.G, it spec.S) {
}
dc := libpak.DependencyCache{CachePath: "testdata"}

s := boot.NewSpringCloudBindings(filepath.Join(ctx.Application.Path, "test-lib"), dep, dc, &libcnb.BuildpackPlan{})
s, _ := boot.NewSpringCloudBindings(filepath.Join(ctx.Application.Path, "test-lib"), dep, dc)
layer, err := ctx.Layers.Layer("test-layer")
Expect(err).NotTo(HaveOccurred())

Expand Down
11 changes: 9 additions & 2 deletions boot/web_application_type.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,15 @@ func NewWebApplicationType(applicationPath string, resolver WebApplicationTypeRe
return WebApplicationType{}, fmt.Errorf("unable to create file listing for %s\n%w", applicationPath, err)
}

contributor := libpak.NewLayerContributor(
"Web Application Type",
expected,
libcnb.LayerTypes{
Launch: true,
},
)
return WebApplicationType{
LayerContributor: libpak.NewLayerContributor("Web Application Type", expected),
LayerContributor: contributor,
Resolver: resolver,
}, nil
}
Expand All @@ -63,7 +70,7 @@ func (w WebApplicationType) Contribute(layer libcnb.Layer) (libcnb.Layer, error)
}

return layer, nil
}, libpak.LaunchLayer)
})
}

func (WebApplicationType) Name() string {
Expand Down
2 changes: 1 addition & 1 deletion buildpack.toml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.

api = "0.4"
api = "0.5"

[buildpack]
id = "paketo-buildpacks/spring-boot"
Expand Down
8 changes: 4 additions & 4 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@ go 1.15

require (
github.com/Masterminds/semver/v3 v3.1.1
github.com/buildpacks/libcnb v1.18.1
github.com/buildpacks/libcnb v1.19.0
github.com/heroku/color v0.0.6
github.com/magiconair/properties v1.8.4
github.com/onsi/gomega v1.10.4
github.com/paketo-buildpacks/libjvm v1.25.0
github.com/paketo-buildpacks/libpak v1.50.1
github.com/onsi/gomega v1.10.5
github.com/paketo-buildpacks/libjvm v1.26.0
github.com/paketo-buildpacks/libpak v1.51.0
github.com/pelletier/go-toml v1.8.1
github.com/sclevine/spec v1.4.0
gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776
Expand Down
35 changes: 17 additions & 18 deletions go.sum
Original file line number Diff line number Diff line change
@@ -1,11 +1,9 @@
github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ=
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
github.com/Masterminds/semver/v3 v3.1.0 h1:Y2lUDsFKVRSYGojLJ1yLxSXdMmMYTYls0rCvoqmMUQk=
github.com/Masterminds/semver/v3 v3.1.0/go.mod h1:VPu/7SZ7ePZ3QOrcuXROw5FAcLl4a0cBrbBpGY/8hQs=
github.com/Masterminds/semver/v3 v3.1.1 h1:hLg3sBzpNErnxhQtUy/mmLR2I9foDujNK030IGemrRc=
github.com/Masterminds/semver/v3 v3.1.1/go.mod h1:VPu/7SZ7ePZ3QOrcuXROw5FAcLl4a0cBrbBpGY/8hQs=
github.com/buildpacks/libcnb v1.18.1 h1:NcAqtyLmSkpcgIOl83GOHY5Mk2ltBFiAI8mmAvavvEs=
github.com/buildpacks/libcnb v1.18.1/go.mod h1:ozKZYold67tlck+1cobg11YhGmJqkQr8bMAH5gSvEvw=
github.com/buildpacks/libcnb v1.19.0 h1:7Frn3qErlVmQydk95YXmHtpmf5bZ1l7h4rK/C+SKAmY=
github.com/buildpacks/libcnb v1.19.0/go.mod h1:slnOsywO4mNdkShkwX1GYR+kQF1tH2F9Urfr66lWGQs=
github.com/creack/pty v1.1.11/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
Expand Down Expand Up @@ -33,27 +31,28 @@ github.com/magiconair/properties v1.8.4 h1:8KGKTcQQGm0Kv7vEbKFErAoAOFyyacLStRtQS
github.com/magiconair/properties v1.8.4/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60=
github.com/mattn/go-colorable v0.1.2 h1:/bC9yWikZXAL9uJdulbSfyVNIR3n3trXl+v8+1sx8mU=
github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=
github.com/mattn/go-colorable v0.1.8 h1:c1ghPdyEDarC70ftn0y+A/Ee++9zz8ljHG1b13eJ0s8=
github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
github.com/mattn/go-isatty v0.0.8 h1:HLtExJ+uU2HOZ+wI0Tt5DtUDrx8yhUqDcp7fYERX4CE=
github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
github.com/mattn/go-shellwords v1.0.10 h1:Y7Xqm8piKOO3v10Thp7Z36h4FYFjt5xB//6XvOrs2Gw=
github.com/mattn/go-shellwords v1.0.10/go.mod h1:EZzvwXDESEeg03EKmM+RmDnNOPKG4lLtQsUlTZDWQ8Y=
github.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHXY=
github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
github.com/mattn/go-shellwords v1.0.11/go.mod h1:EZzvwXDESEeg03EKmM+RmDnNOPKG4lLtQsUlTZDWQ8Y=
github.com/miekg/dns v1.1.35/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM=
github.com/nxadm/tail v1.4.4 h1:DQuhQpB1tVlglWS2hLQ5OV6B5r8aGxSrPc5Qo6uTN78=
github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A=
github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
github.com/onsi/ginkgo v1.12.1 h1:mFwc4LvZ0xpSvDZ3E+k8Yte0hLOMxXUlP+yXtJqkYfQ=
github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk=
github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY=
github.com/onsi/gomega v1.10.3 h1:gph6h/qe9GSUw1NhH1gp+qb+h8rXD8Cy60Z32Qw3ELA=
github.com/onsi/gomega v1.10.3/go.mod h1:V9xEwhxec5O8UDM77eCW8vLymOMltsqPVYWrpDsH8xc=
github.com/onsi/gomega v1.10.4 h1:NiTx7EEvBzu9sFOD1zORteLSt3o8gnlvZZwSE9TnY9U=
github.com/onsi/gomega v1.10.4/go.mod h1:g/HbgYopi++010VEqkFgJHKC09uJiW9UkXvMUuKHUCQ=
github.com/paketo-buildpacks/libjvm v1.25.0 h1:MUmBm+5b7921oYt4q8KDcqIul/0PkNvdjxfZi/4SLMY=
github.com/paketo-buildpacks/libjvm v1.25.0/go.mod h1:hKunbEe0sAhl6Ot62eH1QImmYCuLR7lR0mV5ER3if7o=
github.com/paketo-buildpacks/libpak v1.50.0 h1:o+KmJFWgLI/ygd4Nru8A1EuE3xJ1a0BuhsWUIVB8BPI=
github.com/paketo-buildpacks/libpak v1.50.0/go.mod h1:0JfeM5G7dtsan6yDjL8X60L+Jdiz6REVnxgkBVRp+ho=
github.com/paketo-buildpacks/libpak v1.50.1 h1:FumhbCg/sY3xzCyTj7je+0c4aQsVBU9T5ZJIBCexu9M=
github.com/paketo-buildpacks/libpak v1.50.1/go.mod h1:8EpJg+Lju6Vqb21ot4FXxTJbX8h6p0+xRWPF3uu5jPo=
github.com/onsi/gomega v1.10.5 h1:7n6FEkpFmfCoo2t+YYqXH0evK+a9ICQz0xcAy9dYcaQ=
github.com/onsi/gomega v1.10.5/go.mod h1:gza4q3jKQJijlu05nKWRCW/GavJumGt8aNRxWg7mt48=
github.com/paketo-buildpacks/libjvm v1.26.0 h1:2C675B/Ym/OUcFzk0ekR2p91gmFnd6cb50a4QPWyDJI=
github.com/paketo-buildpacks/libjvm v1.26.0/go.mod h1:yYkaIASJu7/Frmu4J/C56tXsfSwbQD+W8+PX5EkdMdU=
github.com/paketo-buildpacks/libpak v1.51.0 h1:l9qhxIAn0K4KkcrScR4cnu8sNk5h+j9MynX6bbcCwHY=
github.com/paketo-buildpacks/libpak v1.51.0/go.mod h1:HPC3yyLkRW1P4ObNt3fxpFxldFrS1J0AkxpoFkqyB/Y=
github.com/pavel-v-chernykh/keystore-go/v4 v4.1.0 h1:xKxUVGoB9VJU+lgQLPN0KURjw+XCVVSpHfQEeyxk3zo=
github.com/pavel-v-chernykh/keystore-go/v4 v4.1.0/go.mod h1:2ejgys4qY+iNVW1IittZhyRYA6MNv8TgM6VHqojbB9g=
github.com/pelletier/go-toml v1.8.1 h1:1Nf83orprkJyknT6h7zbuEGUEjcyVlCxSUGTENmNCRM=
Expand All @@ -65,8 +64,6 @@ github.com/sclevine/spec v1.4.0/go.mod h1:LvpgJaFyvQzRvc1kaDs0bulYwzC70PbiYjC4Qn
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
github.com/stretchr/objx v0.1.0 h1:4G4v2dO3VZwixGIRoQ5Lfboy6nUhCyYzaqnIAPPhYs4=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0=
github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/xi2/xz v0.0.0-20171230120015-48954b6210f8 h1:nIPpBwaJSVYIxUFsDv3M8ofmx9yWTog9BfvIu0q41lo=
Expand All @@ -79,8 +76,6 @@ golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73r
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20201006153459-a7d1128ccaa0 h1:wBouT66WTYFXdxfVdz9sVWARVd/2vfGcmI45D2gj45M=
golang.org/x/net v0.0.0-20201006153459-a7d1128ccaa0/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb h1:eBmm0M9fYhWpKZLjQUUKka/LtIxf46G4fxeEz5KJr9U=
golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
Expand All @@ -92,8 +87,12 @@ golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7w
golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f h1:+Nyd8tzPX9R7BWHguqsrbFdRx3WQ/1ib8I44HXV5yTA=
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c h1:VwygUrnw9jn88c4u8GD3rZQbqrP/tgas88tPUbBxQrk=
golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
Expand Down

0 comments on commit 0f167ed

Please sign in to comment.