Skip to content

Commit efb3ba4

Browse files
committed
Add optional assembly descriptor to manifests
1 parent d822dee commit efb3ba4

File tree

4 files changed

+77
-46
lines changed

4 files changed

+77
-46
lines changed

cmd/dump_project.go

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package cmd
22

33
import (
4+
"fmt"
45
"github.com/Graylog2/graylog-project-cli/config"
56
"github.com/Graylog2/graylog-project-cli/logger"
67
"github.com/Graylog2/graylog-project-cli/project"
@@ -32,11 +33,23 @@ var parseManifestCmd = &cobra.Command{
3233
logger.Println(spew.Sdump(project.MavenDependencies(projectData)))
3334
logger.Println("")
3435
logger.Println("#### Maven Assemblies ####")
35-
logger.Println(spew.Sdump(project.MavenAssemblies(projectData)))
36+
logger.Println(spew.Sdump(dumpMavenAssemblies(projectData)))
3637
logger.Println("")
3738
},
3839
}
3940

41+
func dumpMavenAssemblies(p project.Project) []string {
42+
dependencies := make([]string, 0)
43+
44+
project.ForEachModuleOrSubmodules(p, func(module project.Module) {
45+
if module.IsMavenModule() && module.Assembly {
46+
dependencies = append(dependencies, fmt.Sprintf("%s:%s", module.GroupId(), module.ArtifactId()))
47+
}
48+
})
49+
50+
return dependencies
51+
}
52+
4053
func init() {
4154
RootCmd.AddCommand(parseManifestCmd)
4255
}

manifest/manifest.go

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,15 @@ type Manifest struct {
1919
}
2020

2121
type ManifestModule struct {
22-
Repository string `json:"repository,omitempty"`
23-
Revision string `json:"revision,omitempty"`
24-
Maven string `json:"maven,omitempty"`
25-
Path string `json:"path,omitempty"`
26-
Assembly bool `json:"assembly,omitempty"`
27-
Server bool `json:"server,omitempty"`
28-
SubModules []ManifestModule `json:"submodules,omitempty"`
29-
Apply ManifestApply `json:"apply,omitempty"`
22+
Repository string `json:"repository,omitempty"`
23+
Revision string `json:"revision,omitempty"`
24+
Maven string `json:"maven,omitempty"`
25+
Path string `json:"path,omitempty"`
26+
Assembly bool `json:"assembly,omitempty"`
27+
AssemblyDescriptor string `json:"assembly_descriptor,omitempty"`
28+
Server bool `json:"server,omitempty"`
29+
SubModules []ManifestModule `json:"submodules,omitempty"`
30+
Apply ManifestApply `json:"apply,omitempty"`
3031
}
3132

3233
func (mod ManifestModule) HasSubmodules() bool {

project/project.go

Lines changed: 25 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package project
22

33
import (
4-
"fmt"
54
"path/filepath"
65
"strings"
76

@@ -26,15 +25,16 @@ type Apply struct {
2625
}
2726

2827
type Module struct {
29-
Name string
30-
Path string
31-
Repository string
32-
Revision string
33-
Assembly bool
34-
Server bool
35-
Submodules []Module
36-
apply Apply
37-
ApplyExecute bool
28+
Name string
29+
Path string
30+
Repository string
31+
Revision string
32+
Assembly bool
33+
AssemblyDescriptor string
34+
Server bool
35+
Submodules []Module
36+
apply Apply
37+
ApplyExecute bool
3838
}
3939

4040
func (module *Module) IsMavenModule() bool {
@@ -155,11 +155,12 @@ func New(config config.Config, manifestFiles []string, options ...projectOption)
155155
}
156156

157157
submodules = append(submodules, Module{
158-
Name: name,
159-
Path: path,
160-
Repository: moduleRepository,
161-
Revision: module.Revision,
162-
Assembly: submodule.Assembly,
158+
Name: name,
159+
Path: path,
160+
Repository: moduleRepository,
161+
Revision: module.Revision,
162+
Assembly: submodule.Assembly,
163+
AssemblyDescriptor: module.AssemblyDescriptor,
163164
})
164165
}
165166
}
@@ -181,14 +182,15 @@ func New(config config.Config, manifestFiles []string, options ...projectOption)
181182
mergo.Merge(&moduleApply, defaultApply)
182183

183184
newModule := Module{
184-
Name: name,
185-
Path: path,
186-
Repository: moduleRepository,
187-
Revision: module.Revision,
188-
Assembly: module.Assembly,
189-
Server: module.Server,
190-
Submodules: submodules,
191-
apply: moduleApply,
185+
Name: name,
186+
Path: path,
187+
Repository: moduleRepository,
188+
Revision: module.Revision,
189+
Assembly: module.Assembly,
190+
AssemblyDescriptor: module.AssemblyDescriptor,
191+
Server: module.Server,
192+
Submodules: submodules,
193+
apply: moduleApply,
192194
}
193195

194196
// Set execute flag if the manifest should be applied if it contains apply config
@@ -291,18 +293,6 @@ func MavenDependencies(project Project) []Module {
291293
return dependencies
292294
}
293295

294-
func MavenAssemblies(project Project) []string {
295-
dependencies := make([]string, 0)
296-
297-
ForEachModuleOrSubmodules(project, func(module Module) {
298-
if module.IsMavenModule() && module.Assembly {
299-
dependencies = append(dependencies, fmt.Sprintf("%s:%s", module.GroupId(), module.ArtifactId()))
300-
}
301-
})
302-
303-
return dependencies
304-
}
305-
306296
func forEachModule(modules []Module, callback func(Module)) {
307297
for _, module := range modules {
308298
callback(module)

xmltemplate/xmltemplate.go

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package xmltemplate
22

33
import (
44
"bytes"
5+
"fmt"
56
"github.com/Graylog2/graylog-project-cli/config"
67
"github.com/Graylog2/graylog-project-cli/logger"
78
p "github.com/Graylog2/graylog-project-cli/project"
@@ -13,7 +14,33 @@ type TemplateInventory struct {
1314
Server p.Module
1415
Modules []p.Module
1516
Dependencies []p.Module
16-
Assemblies []string
17+
Assemblies []Assembly
18+
}
19+
20+
type Assembly struct {
21+
GroupId string
22+
ArtifactId string
23+
Descriptor string
24+
}
25+
26+
func (a Assembly) String() string {
27+
return fmt.Sprintf("%s:%s", a.GroupId, a.ArtifactId)
28+
}
29+
30+
func mavenAssemblies(project p.Project) []Assembly {
31+
dependencies := make([]Assembly, 0)
32+
33+
p.ForEachModuleOrSubmodules(project, func(module p.Module) {
34+
if module.IsMavenModule() && module.Assembly {
35+
dependencies = append(dependencies, Assembly{
36+
GroupId: module.GroupId(),
37+
ArtifactId: module.ArtifactId(),
38+
Descriptor: module.AssemblyDescriptor,
39+
})
40+
}
41+
})
42+
43+
return dependencies
1744
}
1845

1946
func WriteXmlFile(config config.Config, project p.Project, templateFile string, outputFile string) {
@@ -32,7 +59,7 @@ func WriteXmlFile(config config.Config, project p.Project, templateFile string,
3259
Server: project.Server,
3360
Modules: project.Modules,
3461
Dependencies: p.MavenDependencies(project),
35-
Assemblies: p.MavenAssemblies(project),
62+
Assemblies: mavenAssemblies(project),
3663
}
3764

3865
var buf bytes.Buffer

0 commit comments

Comments
 (0)