From d8a1927a36dd7bc57fc90da91db5edfa0eee270c Mon Sep 17 00:00:00 2001 From: Dave Syer Date: Wed, 24 Aug 2016 11:58:39 +0100 Subject: [PATCH] Add optional links to a dependency See gh-163 --- .../initializr/metadata/Dependency.groovy | 4 ++- .../io/spring/initializr/metadata/Link.groovy | 31 +++++++++++++++++++ .../DependencyMetadataV21JsonMapper.groovy | 3 ++ .../InitializrMetadataV21JsonMapper.groovy | 3 ++ .../initializr/web/ui/UiController.groovy | 4 +++ 5 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 initializr-generator/src/main/groovy/io/spring/initializr/metadata/Link.groovy diff --git a/initializr-generator/src/main/groovy/io/spring/initializr/metadata/Dependency.groovy b/initializr-generator/src/main/groovy/io/spring/initializr/metadata/Dependency.groovy index 20a45fa1..ebcd7e93 100644 --- a/initializr-generator/src/main/groovy/io/spring/initializr/metadata/Dependency.groovy +++ b/initializr-generator/src/main/groovy/io/spring/initializr/metadata/Dependency.groovy @@ -84,13 +84,15 @@ class Dependency extends MetadataElement { @JsonIgnore String versionRequirement - + private VersionRange range String bom String repository + List links = [] + @JsonInclude(JsonInclude.Include.NON_DEFAULT) int weight diff --git a/initializr-generator/src/main/groovy/io/spring/initializr/metadata/Link.groovy b/initializr-generator/src/main/groovy/io/spring/initializr/metadata/Link.groovy new file mode 100644 index 00000000..afa54bc3 --- /dev/null +++ b/initializr-generator/src/main/groovy/io/spring/initializr/metadata/Link.groovy @@ -0,0 +1,31 @@ +/* + * Copyright 2012-2015 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.spring.initializr.metadata + +/** + * @author Dave Syer + * + */ +class Link { + + String id + + URL url + + String description + +} diff --git a/initializr-web/src/main/groovy/io/spring/initializr/web/mapper/DependencyMetadataV21JsonMapper.groovy b/initializr-web/src/main/groovy/io/spring/initializr/web/mapper/DependencyMetadataV21JsonMapper.groovy index afc0b09d..a1049b1f 100644 --- a/initializr-web/src/main/groovy/io/spring/initializr/web/mapper/DependencyMetadataV21JsonMapper.groovy +++ b/initializr-web/src/main/groovy/io/spring/initializr/web/mapper/DependencyMetadataV21JsonMapper.groovy @@ -57,6 +57,9 @@ class DependencyMetadataV21JsonMapper implements DependencyMetadataJsonMapper { if (dep.repository) { result.repository = dep.repository } + if (dep.links) { + result.links = dep.links + } result } diff --git a/initializr-web/src/main/groovy/io/spring/initializr/web/mapper/InitializrMetadataV21JsonMapper.groovy b/initializr-web/src/main/groovy/io/spring/initializr/web/mapper/InitializrMetadataV21JsonMapper.groovy index b00c2be1..618adc4b 100644 --- a/initializr-web/src/main/groovy/io/spring/initializr/web/mapper/InitializrMetadataV21JsonMapper.groovy +++ b/initializr-web/src/main/groovy/io/spring/initializr/web/mapper/InitializrMetadataV21JsonMapper.groovy @@ -52,6 +52,9 @@ class InitializrMetadataV21JsonMapper extends InitializrMetadataV2JsonMapper { if (dependency.versionRange) { content['versionRange'] = dependency.versionRange } + if (dependency.links) { + content.links = dependency.links + } content } diff --git a/initializr-web/src/main/groovy/io/spring/initializr/web/ui/UiController.groovy b/initializr-web/src/main/groovy/io/spring/initializr/web/ui/UiController.groovy index 4bc97cc4..ff5f3c9f 100644 --- a/initializr-web/src/main/groovy/io/spring/initializr/web/ui/UiController.groovy +++ b/initializr-web/src/main/groovy/io/spring/initializr/web/ui/UiController.groovy @@ -82,6 +82,10 @@ class UiController { if (d.description) { result.description = d.description } + if (d.links) { + result.url = d.links[0].url + result.links = d.links + } if (d.weight) { result.weight = d.weight }