@@ -38,6 +38,7 @@ type ProjectCreateCmdValues struct {
38
38
force bool
39
39
isOBRProjectRequired bool
40
40
featureNamesCommaSeparated string
41
+ manager string
41
42
useMaven bool
42
43
useGradle bool
43
44
isDevelopmentProjectCreate bool
@@ -118,7 +119,8 @@ func (cmd *ProjectCreateCommand) createCobraCommand(
118
119
119
120
projectCreateCmd .Flags ().BoolVar (& cmd .values .force , "force" , false , "Force-overwrite files which already exist." )
120
121
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" ,
122
124
"A comma-separated list of features you are testing. " +
123
125
"These must be able to form parts of a java package name. " +
124
126
"For example: \" payee,account\" " )
@@ -151,6 +153,7 @@ func (cmd *ProjectCreateCommand) executeCreateProject(factory spi.Factory, rootC
151
153
err = createProject (fileSystem ,
152
154
cmd .values .packageName ,
153
155
cmd .values .featureNamesCommaSeparated ,
156
+ cmd .values .manager ,
154
157
cmd .values .isOBRProjectRequired ,
155
158
cmd .values .force ,
156
159
cmd .values .useMaven ,
@@ -201,14 +204,15 @@ func createProject(
201
204
fileSystem spi.FileSystem ,
202
205
packageName string ,
203
206
featureNamesCommaSeparated string ,
207
+ manager string ,
204
208
isOBRProjectRequired bool ,
205
209
forceOverwrite bool ,
206
210
useMaven bool ,
207
211
useGradle bool ,
208
212
isDevelopment bool ,
209
213
) error {
210
214
211
- log .Printf ("Creating project using packageName:%s\n " , packageName )
215
+ log .Printf ("Hello my name Creating project using packageName:%s\n " , packageName )
212
216
213
217
var err error
214
218
@@ -240,7 +244,7 @@ func createProject(
240
244
}
241
245
242
246
if err == nil {
243
- err = createTestProjects (fileGenerator , packageName , featureNames , forceOverwrite ,
247
+ err = createTestProjects (fileGenerator , packageName , featureNames , manager , forceOverwrite ,
244
248
useMaven , useGradle , isDevelopment )
245
249
if err == nil {
246
250
if isOBRProjectRequired {
@@ -433,6 +437,7 @@ func createTestProjects(
433
437
fileGenerator * utils.FileGenerator ,
434
438
packageName string ,
435
439
featureNames []string ,
440
+ manager string ,
436
441
forceOverwrite bool ,
437
442
useMaven bool ,
438
443
useGradle bool ,
@@ -446,6 +451,7 @@ func createTestProjects(
446
451
break
447
452
}
448
453
}
454
+ err = createTestManager (fileGenerator , packageName , manager , forceOverwrite , useMaven , useGradle , isDevelopment )
449
455
return err
450
456
}
451
457
@@ -489,6 +495,40 @@ func createTestProject(
489
495
return err
490
496
}
491
497
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
+
492
532
func createOBRProject (
493
533
fileGenerator * utils.FileGenerator ,
494
534
packageName string ,
@@ -660,6 +700,48 @@ func createTestFolderGradle(fileGenerator *utils.FileGenerator, targetTestFolder
660
700
return err
661
701
}
662
702
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
+
663
745
// Creates a pom.xml file in an OBR project directory.
664
746
func createOBRFolderPom (fileGenerator * utils.FileGenerator , targetOBRFolderPath string , packageName string ,
665
747
featureNames []string , forceOverwrite bool ) error {
0 commit comments