Skip to content

Commit ed8cd80

Browse files
added project --manager module
1 parent 6ac4d3a commit ed8cd80

File tree

1 file changed

+85
-3
lines changed

1 file changed

+85
-3
lines changed

pkg/cmd/projectCreate.go

+85-3
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ type ProjectCreateCmdValues struct {
3838
force bool
3939
isOBRProjectRequired bool
4040
featureNamesCommaSeparated string
41+
manager string
4142
useMaven bool
4243
useGradle bool
4344
isDevelopmentProjectCreate bool
@@ -118,7 +119,8 @@ func (cmd *ProjectCreateCommand) createCobraCommand(
118119

119120
projectCreateCmd.Flags().BoolVar(&cmd.values.force, "force", false, "Force-overwrite files which already exist.")
120121
projectCreateCmd.Flags().BoolVar(&cmd.values.isOBRProjectRequired, "obr", false, "An OSGi Object Bundle Resource (OBR) project is needed.")
121-
projectCreateCmd.Flags().StringVar(&cmd.values.featureNamesCommaSeparated, "features", "feature1",
122+
projectCreateCmd.Flags().StringVar(&cmd.values.manager, "manager", "", "manager to create manager")
123+
projectCreateCmd.Flags().StringVar(&cmd.values.featureNamesCommaSeparated, "features", "feature1",
122124
"A comma-separated list of features you are testing. "+
123125
"These must be able to form parts of a java package name. "+
124126
"For example: \"payee,account\"")
@@ -151,6 +153,7 @@ func (cmd *ProjectCreateCommand) executeCreateProject(factory spi.Factory, rootC
151153
err = createProject(fileSystem,
152154
cmd.values.packageName,
153155
cmd.values.featureNamesCommaSeparated,
156+
cmd.values.manager,
154157
cmd.values.isOBRProjectRequired,
155158
cmd.values.force,
156159
cmd.values.useMaven,
@@ -201,14 +204,15 @@ func createProject(
201204
fileSystem spi.FileSystem,
202205
packageName string,
203206
featureNamesCommaSeparated string,
207+
manager string,
204208
isOBRProjectRequired bool,
205209
forceOverwrite bool,
206210
useMaven bool,
207211
useGradle bool,
208212
isDevelopment bool,
209213
) error {
210214

211-
log.Printf("Creating project using packageName:%s\n", packageName)
215+
log.Printf("Hello my name Creating project using packageName:%s\n", packageName)
212216

213217
var err error
214218

@@ -240,7 +244,7 @@ func createProject(
240244
}
241245

242246
if err == nil {
243-
err = createTestProjects(fileGenerator, packageName, featureNames, forceOverwrite,
247+
err = createTestProjects(fileGenerator, packageName, featureNames, manager, forceOverwrite,
244248
useMaven, useGradle, isDevelopment)
245249
if err == nil {
246250
if isOBRProjectRequired {
@@ -433,6 +437,7 @@ func createTestProjects(
433437
fileGenerator *utils.FileGenerator,
434438
packageName string,
435439
featureNames []string,
440+
manager string,
436441
forceOverwrite bool,
437442
useMaven bool,
438443
useGradle bool,
@@ -446,6 +451,7 @@ func createTestProjects(
446451
break
447452
}
448453
}
454+
err = createTestManager(fileGenerator, packageName, manager, forceOverwrite, useMaven, useGradle, isDevelopment)
449455
return err
450456
}
451457

@@ -489,6 +495,40 @@ func createTestProject(
489495
return err
490496
}
491497

498+
// createTestProject - creates a single project to contain tests which test a feature.
499+
func createTestManager(
500+
fileGenerator *utils.FileGenerator,
501+
packageName string,
502+
manager string,
503+
forceOverwrite bool,
504+
useMaven bool,
505+
useGradle bool,
506+
isDevelopment bool,
507+
) error {
508+
509+
targetFolderPath := packageName + "/" + packageName + "." + manager
510+
log.Printf("Creating tests project %s\n", targetFolderPath)
511+
512+
// Create the base test folder
513+
err := fileGenerator.CreateFolder(targetFolderPath)
514+
if err == nil {
515+
if useMaven {
516+
err = createTestFolderPom(fileGenerator, targetFolderPath, packageName, manager, forceOverwrite)
517+
}
518+
519+
err = createTestFolderGradle(fileGenerator, targetFolderPath, packageName, manager, forceOverwrite, isDevelopment)
520+
}
521+
522+
err = createJavaSourceFolder(fileGenerator, targetFolderPath, packageName, manager, forceOverwrite)
523+
524+
err = createTestResourceFolder(fileGenerator, targetFolderPath, forceOverwrite)
525+
526+
if err == nil {
527+
log.Printf("Tests project %s created OK.", targetFolderPath)
528+
}
529+
return err
530+
}
531+
492532
func createOBRProject(
493533
fileGenerator *utils.FileGenerator,
494534
packageName string,
@@ -660,6 +700,48 @@ func createTestFolderGradle(fileGenerator *utils.FileGenerator, targetTestFolder
660700
return err
661701
}
662702

703+
// Creates a build.gradle and a bnd.bnd file in a Gradle test project directory.
704+
func createTestFolderManager(fileGenerator *utils.FileGenerator, targetTestFolderPath string,
705+
packageName string, featureName string, forceOverwrite bool, isDevelopment bool) error {
706+
707+
type TestGradleParameters struct {
708+
Parent GradleCoordinates
709+
Coordinates GradleCoordinates
710+
// Version of Galasa we are targetting
711+
GalasaVersion string
712+
IsDevelopment bool
713+
}
714+
715+
galasaVersion, err := embedded.GetGalasaVersion()
716+
717+
if err == nil {
718+
gradleProjectTemplateParameters := TestGradleParameters{
719+
Parent: GradleCoordinates{GroupId: packageName, Name: packageName},
720+
Coordinates: GradleCoordinates{GroupId: packageName, Name: packageName + "." + featureName},
721+
GalasaVersion: galasaVersion,
722+
IsDevelopment: isDevelopment}
723+
724+
buildGradleFile := utils.GeneratedFileDef{
725+
FileType: "gradle",
726+
TargetFilePath: targetTestFolderPath + "/build.gradle",
727+
EmbeddedTemplateFilePath: "templates/projectCreate/parent-project/test-project/build.gradle.template",
728+
TemplateParameters: gradleProjectTemplateParameters}
729+
730+
err = fileGenerator.CreateFile(buildGradleFile, forceOverwrite, true)
731+
732+
if err == nil {
733+
bndFile := utils.GeneratedFileDef{
734+
FileType: "bnd",
735+
TargetFilePath: targetTestFolderPath + "/bnd.bnd",
736+
EmbeddedTemplateFilePath: "templates/projectCreate/parent-project/test-project/bnd.bnd",
737+
TemplateParameters: gradleProjectTemplateParameters}
738+
err = fileGenerator.CreateFile(bndFile, forceOverwrite, true)
739+
}
740+
}
741+
742+
return err
743+
}
744+
663745
// Creates a pom.xml file in an OBR project directory.
664746
func createOBRFolderPom(fileGenerator *utils.FileGenerator, targetOBRFolderPath string, packageName string,
665747
featureNames []string, forceOverwrite bool) error {

0 commit comments

Comments
 (0)