Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

1595 extend uprader to upgrade from monolithic structure to template set.xml #1611

Open
wants to merge 257 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
257 commits
Select commit Hold shift + click to select a range
a1ca29a
1511 enable custom template set group ids for lookup (#1525)
mdukhan May 11, 2022
6c61401
1511 enable custom template set group ids for lookup (#1535)
mdukhan May 13, 2022
882013e
#1509 Ignore extractTemplatesWithOldCinfiguration (#1536)
mdukhan Jun 7, 2022
103ed1c
#1519 added possible Log warning places for CLI (#1538)
mdukhan Jun 14, 2022
28cb652
Merged master into template-set-deployables feature branch (#1543)
jan-vcapgemini Jun 21, 2022
54f0bca
1465 template set documentation (#1546)
jan-vcapgemini Jun 24, 2022
51af790
1502 config upgrade (#1528)
EduardKrieger Jul 4, 2022
b5a2577
#1531 Handle CLI Exception (#1544)
mdukhan Jul 5, 2022
7b6bf79
1551 merge master into template_set_deployables (#1552)
jan-vcapgemini Jul 5, 2022
3dcfcb1
1516 document new configuration structure (#1565)
Zylesto Aug 29, 2022
f95f041
# 1521 Attached Template-set plugin for deployment (#1562)
Ali7223 Sep 4, 2022
2ee15d3
1510 allow template sets to be installed (#1554)
EduardKrieger Sep 7, 2022
f20d731
#1529 added first implementation of extensible artifact search REST A…
jan-vcapgemini Sep 14, 2022
9b96780
Merge branch 'master' into template-set-deployables
maybeec Sep 20, 2022
9bd84b8
fixed merge errors
maybeec Sep 20, 2022
7a3b6e4
fix merge error (#1581)
EduardKrieger Sep 21, 2022
5f79726
1518 automatically ask for upgrade on reading monolithic templates fr…
mdukhan Oct 27, 2022
7daa568
1580 rework test application using entity class (#1603)
leonie19s Nov 18, 2022
ae25fa7
Read templates.xml file during upgrade from templates to templateSets
Lur1an Nov 24, 2022
14b9455
template-set.xml is correctly generated from merge of templates.xml a…
Lur1an Nov 24, 2022
690ec60
Set version of TemplatesConfiguration to "5.0"
Lur1an Nov 25, 2022
f80c9bd
Adapted TemplateSetUpgraderTest to work with new template-set.xml
Lur1an Nov 25, 2022
e40a451
Merge branch 'devonfw:master' into 1595_extend_uprader_to_upgradeupgr…
quantumfate Nov 30, 2022
9a8dc56
changed perfrom nextupgradestep to work with template sets
EduardKrieger Dec 1, 2022
5dbf5a0
removed a wrong approach
EduardKrieger Dec 2, 2022
c84c554
changed schema so we dont have to add namespace to old configuration …
EduardKrieger Dec 2, 2022
ee7f4e7
testing the packages
EduardKrieger Dec 2, 2022
08876fe
testing schmema namespaces
EduardKrieger Dec 15, 2022
6648b6d
test
quantumfate Dec 15, 2022
c95a9df
1517 discovery of template sets (#1585)
Zylesto Dec 16, 2022
0176c1a
#1619 cleanup docs
maybeec Jan 2, 2023
edaed0e
#1619 upgrade all sources to jdk 11
maybeec Jan 2, 2023
0ddc3bc
#1619 fix plugins build to run on jdk 11
maybeec Jan 2, 2023
f4794fd
Merge branch 'master' into template-set-deployables
maybeec Jan 2, 2023
f1ad8d7
Merge branch 'master' into template-set-deployables
maybeec Jan 3, 2023
0d61fda
spelling corrections
maybeec Jan 3, 2023
1d8997a
Merge branch 'master' into template-set-deployables
maybeec Jan 3, 2023
efd512e
Added correct settings URL for cobigen setup
maybeec Jan 3, 2023
5e1a7e3
Merge branch 'master' into template-set-deployables
maybeec Jan 3, 2023
f73d720
Fix merge error
maybeec Jan 3, 2023
9769489
Merge branch 'template-set-deployables' into 1595_extend_uprader_to_u…
maybeec Jan 4, 2023
4f9da87
Removed xvfb-action
maybeec Jan 4, 2023
fbb5331
trying to fix strange execution problem in GHA
maybeec Jan 4, 2023
1ded60f
Also resolve and cache dependencies for tycho
maybeec Jan 4, 2023
dc72408
fix build on windows
maybeec Jan 4, 2023
b597945
fixed 2018-12 target + fixed eclipse test + fixed M2E compatibility
maybeec Jan 4, 2023
e4f9a00
removed unnecessary junit headless dependency failing on sonar run
maybeec Jan 5, 2023
efdc183
upgraded openapi parser to latest version of networknt
maybeec Jan 5, 2023
b76c231
upgraded openapi parser to latest version of networknt
maybeec Jan 5, 2023
9dbe233
Revert "upgraded openapi parser to latest version of networknt"
maybeec Jan 5, 2023
9aed99a
Revert "upgraded openapi parser to latest version of networknt"
maybeec Jan 5, 2023
eb8c1c1
Merge branch 'master' into template-set-deployables
maybeec Jan 5, 2023
03d219b
removed stupid non-used testdata
maybeec Jan 6, 2023
49ae604
store workflow status for sonar analysis
maybeec Jan 6, 2023
556cff8
store workflow status for sonar analysis
maybeec Jan 6, 2023
199c84d
fix workflow
maybeec Jan 6, 2023
4e097f8
added maven repository cache for faster execution (#1625)
EduardKrieger Jan 6, 2023
e7ad216
trying to flatten CI/CD to speed up
maybeec Jan 7, 2023
8ab4a8d
fixing dependency caching + fixing build component script + fixing ma…
maybeec Jan 7, 2023
f4a9ebc
fix dependency caching
maybeec Jan 7, 2023
f339117
fix build script
maybeec Jan 7, 2023
81e95c3
automatically enable debug mode + better matrix parameter view on git…
maybeec Jan 8, 2023
2c1db7f
fixing detection of GHA debug mode
maybeec Jan 8, 2023
72d89a8
debug test execution
maybeec Jan 9, 2023
86122c8
enabled new enableCrossOsArchive of github cache
maybeec Jan 9, 2023
357a938
Workaround for actions/cache#1059
maybeec Jan 9, 2023
d939f03
fix workflow
maybeec Jan 9, 2023
81c4d15
fix workflow
maybeec Jan 9, 2023
e6a2a72
fix workflow
maybeec Jan 9, 2023
e8e0ce4
set java 17 for windows build
maybeec Jan 9, 2023
fc6fc18
actions/cache#1059 workaround - trying to locate m2 repo in working d…
maybeec Jan 11, 2023
35ac03e
add logging out env to understand temporary debug mode detection
maybeec Jan 11, 2023
f854bf1
fixed automated maven debug log on runner debug + trying to fix maven…
maybeec Jan 11, 2023
fbda14e
try to fix maven cache location consolidation accross OS
maybeec Jan 11, 2023
9f686e1
Merge branch 'devonfw:master' into 1595_extend_uprader_to_upgrade_fro…
quantumfate Jan 12, 2023
28cbe55
upgrade process with ContextConfiguration upgrader working from 2.1 t…
EduardKrieger Jan 12, 2023
16aec8a
Merge branch '1595_extend_uprader_to_upgrade_from_monolithic_structur…
EduardKrieger Jan 12, 2023
67fdce9
trying different local repository setting
maybeec Jan 12, 2023
dd94bab
fixing cache mismatches
maybeec Jan 12, 2023
e28e03b
fixing checkout on windows
maybeec Jan 12, 2023
8918a9f
more cache debugging!
maybeec Jan 12, 2023
3e655e1
more cache debugging!
maybeec Jan 12, 2023
67de615
more cache debugging
maybeec Jan 12, 2023
0fbb14c
fixing odd cache path
maybeec Jan 12, 2023
c10ccce
new try for cross-os build-config
maybeec Jan 12, 2023
a6949e0
new try for cross-os build-config
maybeec Jan 12, 2023
715a962
new try for cross-os build-config
maybeec Jan 12, 2023
ed9670c
new try for cross-os build-config
maybeec Jan 12, 2023
be0cd10
new try for cross-os build-config
maybeec Jan 12, 2023
f9e8152
trying to fix maven repo cache
maybeec Jan 12, 2023
d9758cb
splitting dependency resolution and plugin resolution
maybeec Jan 12, 2023
033d462
enabling batch processing and fixing maven settings
maybeec Jan 12, 2023
e4843bd
built just once on linux + restore also p2 for tests + removed debugging
maybeec Jan 12, 2023
65891b7
trying to fix tests by providing test settings.xml in home folder
maybeec Jan 12, 2023
b498c23
Fix settings overwriting
maybeec Jan 12, 2023
b971f77
enable xvfb run for linux for eclipse tests + fixing settings.xml ove…
maybeec Jan 13, 2023
c8c7898
fix settings.xml overwriting
maybeec Jan 13, 2023
9ff3ba5
try fixing settings.xml rewrite
maybeec Jan 13, 2023
10ffe53
Merge branch 'master' into template-set-deployables
maybeec Jan 23, 2023
1140415
Merge branch 'template-set-deployables' into flattened-cicd
maybeec Jan 23, 2023
8e435a4
changing path to be static on cache declaration
maybeec Jan 23, 2023
2208391
removed coverage report to be executed everytime
maybeec Jan 23, 2023
c66cdab
fixing m-m-m NlsBundle Exception on CLI tests
maybeec Jan 24, 2023
3e65ddf
fixing -h option for right color coding
maybeec Jan 24, 2023
40bd436
fixing p2 compiler issues
maybeec Jan 24, 2023
62eb061
debugging + cleanup
maybeec Jan 25, 2023
85e44ba
workaround for https://github.com/m-m-m/code/issues/43
maybeec Jan 26, 2023
94cd277
disabled debug logging + readme update
maybeec Jan 27, 2023
2260ee6
fixed a bug in findTemplates (#1630)
EduardKrieger Jan 27, 2023
5f0588b
try fixing unnecessary timeout on windows
maybeec Jan 27, 2023
b2b328e
Merge branch 'master' into template-set-deployables
maybeec Mar 13, 2023
514b1e6
#1495 Combine template and configuration files into template set file…
KHucklenbroich Mar 13, 2023
340b569
added TODO
jan-vcapgemini Mar 16, 2023
a53b75d
added TODO
jan-vcapgemini Mar 16, 2023
39b3593
Merge branch 'Cobigen_template-set-deployables' into 1595_extend_upra…
EduardKrieger Mar 16, 2023
485d5a4
fixed eclipse tests freezes
jan-vcapgemini Mar 17, 2023
9148d62
1622 Restore and fixed adaptTemplatesTest on eclipse (#1641)
cedricarnauld123 Mar 17, 2023
2e794bd
#1622 fixed eclipse adapt monolithic templates test
jan-vcapgemini Mar 17, 2023
a01765e
added TODO
jan-vcapgemini Mar 17, 2023
faee4f1
added TODO
jan-vcapgemini Mar 17, 2023
a32120b
temporarily disabled upgrader test in eclipse
jan-vcapgemini Mar 17, 2023
cd38c95
added TODO
jan-vcapgemini Mar 17, 2023
2b1360d
applied proper reformat
jan-vcapgemini Mar 17, 2023
ead77d6
applied proper reformat
jan-vcapgemini Mar 17, 2023
3b92e6f
applied proper reformat
jan-vcapgemini Mar 17, 2023
8318b2a
applied proper reformat
jan-vcapgemini Mar 17, 2023
e15f077
applied proper reformat
jan-vcapgemini Mar 17, 2023
587f983
added method to change CobiGen home
jan-vcapgemini Mar 17, 2023
5ca8f21
added TODO
jan-vcapgemini Mar 17, 2023
177f9d3
adjusted javadoc
jan-vcapgemini Mar 17, 2023
f41220b
added TODO
jan-vcapgemini Mar 17, 2023
694b0c9
applied proper reformat
jan-vcapgemini Mar 17, 2023
bfb5536
refactored AbstractContextConfigurationReader
jan-vcapgemini Mar 17, 2023
f75dfe7
made fields private
jan-vcapgemini Mar 17, 2023
91edfcc
made fields private
jan-vcapgemini Mar 17, 2023
2c440e2
added TODO
jan-vcapgemini Mar 17, 2023
9d7ca6d
cleanup
jan-vcapgemini Mar 17, 2023
21b3f71
removed unused interfaces
jan-vcapgemini Mar 17, 2023
167a978
adjusted template set documentation
jan-vcapgemini Mar 17, 2023
35f5d1a
updated google guava to 31.1-jre
jan-vcapgemini Mar 17, 2023
472ea6e
made CobiGenFactory tests functional
jan-vcapgemini Mar 17, 2023
b3dc966
moved template-set.xml into correct folder
jan-vcapgemini Mar 17, 2023
9112b26
applied proper reformat
jan-vcapgemini Mar 17, 2023
65b988e
added test path check to CobiGenPaths
jan-vcapgemini Mar 20, 2023
acdc21b
Merge branch 'Cobigen_template-set-deployables' into 1595_extend_upra…
EduardKrieger Mar 21, 2023
9625a53
added TODO
jan-vcapgemini Mar 21, 2023
f251ea3
applied proper reformat
jan-vcapgemini Mar 21, 2023
edc17c7
removed unused test resource files
jan-vcapgemini Mar 21, 2023
7c1c6af
cleanup of ConfigurationFinder
jan-vcapgemini Mar 21, 2023
0f8b48b
moved method beneath constructor
jan-vcapgemini Mar 21, 2023
654499f
adjusted javadocs
jan-vcapgemini Mar 21, 2023
b264377
removed unused files
jan-vcapgemini Mar 21, 2023
d522e05
fixed PostPoneUtil tests
jan-vcapgemini Mar 22, 2023
abbac3e
removed extra isZipFile check
jan-vcapgemini Mar 22, 2023
28d91bc
cleanup
jan-vcapgemini Mar 22, 2023
0b79b14
adjusted template set upgrade documentation
jan-vcapgemini Mar 22, 2023
af182c4
1495 fixed working branch adapt templates feature (#1645)
quantumfate Mar 22, 2023
ef61c78
added missing test resource file
jan-vcapgemini Mar 24, 2023
61b3a52
#1595 reworked the context configuration and template set upgrader te…
EduardKrieger Mar 24, 2023
cd5a294
#1638 implemented download jar process (from properties) (#1653)
jan-vcapgemini Mar 28, 2023
c298f45
#1595 changed the template set initial version from 6 to 1. Relocated…
EduardKrieger Mar 28, 2023
9f31845
fixed template installation tests
jan-vcapgemini Mar 29, 2023
fcfc0e8
adjusted javadoc of test
jan-vcapgemini Mar 29, 2023
3314e71
removed unnecessary test and resources
jan-vcapgemini Mar 29, 2023
151698e
renamed method and adjusted javadoc
jan-vcapgemini Mar 29, 2023
0c07125
adjusted javadoc
jan-vcapgemini Mar 29, 2023
fb9ba81
adjusted javadoc
jan-vcapgemini Mar 29, 2023
540abee
removed empty newline
jan-vcapgemini Mar 29, 2023
39aa279
applied rest of refactoring
jan-vcapgemini Mar 29, 2023
0c28780
added fallback if no repositories were found
jan-vcapgemini Mar 30, 2023
54c446d
Merge branch 'template-set-deployables' into 1595_extend_uprader_to_u…
EduardKrieger Mar 30, 2023
da1f980
added issue links to TODOs
jan-vcapgemini Mar 31, 2023
52f4f85
fixed template set file tree
jan-vcapgemini Mar 31, 2023
bc64317
adjusted javadoc of ConfigurationFinder
jan-vcapgemini Mar 31, 2023
d68fc46
adjusted javadocs
jan-vcapgemini Mar 31, 2023
4bf5ca9
added issue to TODO
jan-vcapgemini Mar 31, 2023
217c8a4
added issue to TODO
jan-vcapgemini Mar 31, 2023
beb7248
removed unused fields
jan-vcapgemini Mar 31, 2023
1a081e2
added javadoc descriptions for constants
jan-vcapgemini Mar 31, 2023
f163973
added issue to TODO
jan-vcapgemini Mar 31, 2023
64683ab
adjusted javadocs
jan-vcapgemini Mar 31, 2023
27dced6
added issue to TODO
jan-vcapgemini Mar 31, 2023
07e7ad8
fixed download by properties
jan-vcapgemini Mar 31, 2023
b045ea2
removed unused class variable
jan-vcapgemini Mar 31, 2023
b34d7e6
prepared template set version conflict test
jan-vcapgemini Mar 31, 2023
82d0ad4
cleanup of unnecessary condition
jan-vcapgemini Mar 31, 2023
ac2efa9
Simple fixes
NelsonNew Apr 1, 2023
e79d214
applied requested changes
jan-vcapgemini Apr 3, 2023
a5757ff
added TODO and link to issue
jan-vcapgemini Apr 3, 2023
75adfe4
implemented requested changes
jan-vcapgemini Apr 3, 2023
a51ee91
implemented requested changes
jan-vcapgemini Apr 3, 2023
b5574a1
added issue to TODO
jan-vcapgemini Apr 3, 2023
c5e9d33
removed unused field
jan-vcapgemini Apr 3, 2023
b98e202
moved getters under constructor
jan-vcapgemini Apr 3, 2023
ae0c108
Typo fix
NelsonNew Apr 3, 2023
0611e0f
Finished sentence
NelsonNew Apr 3, 2023
5113482
#1667 Made template set root directories accessible for the reader
jan-vcapgemini Apr 3, 2023
b421049
added TODOs with linked issues
jan-vcapgemini Apr 3, 2023
a25b371
implemented requested changes
jan-vcapgemini Apr 3, 2023
01ef924
implemented requested changes
jan-vcapgemini Apr 3, 2023
950aaa7
implemented requested changes
jan-vcapgemini Apr 3, 2023
28f53b0
#1670 hotfix
jan-vcapgemini Apr 4, 2023
6a1e6f9
added TODO with link to issue
jan-vcapgemini Apr 4, 2023
ad76aea
#1668 added issue to TODO
jan-vcapgemini Apr 4, 2023
980e893
#1671 added link to issue to TODO
jan-vcapgemini Apr 4, 2023
02bdb62
adjusted javadoc
jan-vcapgemini Apr 4, 2023
26b6c2c
added issue to TODOs
jan-vcapgemini Apr 5, 2023
2012d11
sonatype-lift fixes
jan-vcapgemini Apr 5, 2023
28ce188
removed commented code
jan-vcapgemini Apr 5, 2023
f54e6c3
added TODO with link to issue
jan-vcapgemini Apr 5, 2023
e3469e8
added TODO with link to issue
jan-vcapgemini Apr 5, 2023
f3de717
added TODO with link to issue
jan-vcapgemini Apr 5, 2023
f7f16ec
added TODO with link to issue
jan-vcapgemini Apr 5, 2023
677ea7c
sonatype-lift changes
jan-vcapgemini Apr 6, 2023
4d728ba
sonatype-lift changes
jan-vcapgemini Apr 6, 2023
f3a4399
sonatype-lift changes
jan-vcapgemini Apr 6, 2023
ed156b2
added comment
jan-vcapgemini Apr 6, 2023
79f94e8
added TODO and link to issue
jan-vcapgemini Apr 6, 2023
587b2e9
fixed typo
jan-vcapgemini Apr 6, 2023
08e7892
sonatype-lift changes, hotfix
jan-vcapgemini Apr 6, 2023
5af0844
fixed openapi-parser version
jan-vcapgemini Apr 6, 2023
1b49fb0
added TODO and link to issue
jan-vcapgemini Apr 6, 2023
c4ce99d
adjusted javadoc
jan-vcapgemini Apr 6, 2023
6ae0954
added missing javadocs
jan-vcapgemini Apr 6, 2023
3ef6f64
added TODO and link to issue
jan-vcapgemini Apr 6, 2023
deb68b6
removed unused files
jan-vcapgemini Apr 6, 2023
ee90c8b
adjusted javadoc
jan-vcapgemini Apr 6, 2023
5983e65
added TODO and link to issue
jan-vcapgemini Apr 6, 2023
c0c39c4
added TODO and link to issue
jan-vcapgemini Apr 6, 2023
e82340a
cleanup
jan-vcapgemini Apr 6, 2023
2a96c00
adjusted javadoc of test
jan-vcapgemini Apr 6, 2023
52ba0fb
added javadoc description
jan-vcapgemini Apr 6, 2023
a2a4137
adjusted javadoc
jan-vcapgemini Apr 6, 2023
676ac3e
cleanup
jan-vcapgemini Apr 6, 2023
d57a660
fix deploy script to allow local updatesite builds
maybeec Apr 9, 2023
5c64a1e
fix eclipse e2e test classpath
maybeec Apr 9, 2023
ba8f1b9
adjusted javadocs
jan-vcapgemini Apr 11, 2023
d091ce0
added TODO and link to issue
jan-vcapgemini Apr 11, 2023
ebd5dec
generating platform definition based on local plugins build.
maybeec Apr 11, 2023
bb245f1
removed 2nd initialization of CobiGen
jan-vcapgemini Apr 13, 2023
682538e
Merge branch 'master' into template-set-deployables
jan-vcapgemini Apr 13, 2023
7c4d31b
spellcheck fixes
jan-vcapgemini Apr 13, 2023
35ca10a
fixed last spellcheck issues
jan-vcapgemini Apr 13, 2023
603c105
cleanup and fixing eclipse import issues with m2e
maybeec Apr 14, 2023
de4177b
Revert "cleanup and fixing eclipse import issues with m2e"
jan-vcapgemini Apr 17, 2023
58cf2c9
Revert "generating platform definition based on local plugins build."
jan-vcapgemini Apr 17, 2023
5821c9d
Revert "fix eclipse e2e test classpath"
jan-vcapgemini Apr 17, 2023
8d68916
Fixed elif syntax
maybeec Apr 17, 2023
a033e09
Merge branch 'template-set-deployables' into 1595_extend_uprader_to_u…
jan-vcapgemini Apr 17, 2023
1298132
Merge branch 'master' into 1595_extend_uprader_to_upgrade_from_monoli…
jan-vcapgemini Apr 17, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -75,14 +75,12 @@ public void generateFromEntityTest() throws Exception {
* @throws Exception test fails
*/
@Test
@Ignore // TODO: re-enable when upgrade process is implemented, see: https://github.com/devonfw/cobigen/issues/1595
public void upgradeAndGenerateFromEntityTest() throws Exception {

FileUtils.copyDirectory(new File(testFileRootPath + "templatesproject"), this.tmpProject.toFile());
this.tmpProject.resolve("templates-devon4j").toFile()
.renameTo(this.tmpProject.resolve(ConfigurationConstants.COBIGEN_TEMPLATES).toFile());
FileUtils.copyDirectory(new File(testFileRootPath + "templatesproject/templates-devon4j"),
this.currentHome.toFile().toPath().resolve(ConfigurationConstants.COBIGEN_TEMPLATES).toFile());
File baseProject = this.tmpProject.resolve("maven.project/core/").toFile();
File monolithicConfiguration = this.tmpProject.toFile();
File monolithicConfiguration = this.currentHome.toFile();
String args[] = new String[7];
args[0] = "generate";
args[1] = this.entityInputFile.getAbsolutePath();
Expand All @@ -95,6 +93,7 @@ public void upgradeAndGenerateFromEntityTest() throws Exception {
execute(args, false);

assertThat(this.currentHome.resolve(ConfigurationConstants.CONFIG_PROPERTY_TEMPLATE_SETS_PATH)).exists();
assertThat(this.currentHome.resolve(ConfigurationConstants.BACKUP_FOLDER)).exists();

assertThat(baseProject.toPath().resolve("src/main/java/com/maven/project/sampledatamanagement/logic/api/to"))
.exists();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@
import org.mockito.ArgumentMatchers;

import com.devonfw.cobigen.api.CobiGen;
import com.devonfw.cobigen.api.TemplateAdapter;
import com.devonfw.cobigen.api.exception.DeprecatedMonolithicConfigurationException;
import com.devonfw.cobigen.api.exception.InvalidConfigurationException;
import com.devonfw.cobigen.api.extension.GeneratorPluginActivator;
import com.devonfw.cobigen.api.extension.InputReader;
Expand All @@ -37,6 +39,7 @@
import com.devonfw.cobigen.api.to.MatcherTo;
import com.devonfw.cobigen.api.to.TemplateTo;
import com.devonfw.cobigen.impl.CobiGenFactory;
import com.devonfw.cobigen.impl.adapter.TemplateAdapterImpl;
import com.devonfw.cobigen.impl.extension.PluginRegistry;
import com.devonfw.cobigen.impl.model.ModelBuilderImpl;
import com.devonfw.cobigen.systemtest.common.AbstractApiTest;
Expand Down Expand Up @@ -81,6 +84,46 @@ public void testOverrideMergeStrategy() throws Exception {
assertThat(target).hasContent("overwritten");
}

/**
* Tests if after a upgrade with a merge of context and templates to template sets a generation of all matching (java)
* templates is successful
*
* @throws Exception test fails.
*/
@Test
public void testUpgradeAndGenerateWithJavaInput() throws Exception {

File templates = this.tmpFolder.newFolder("templates");
FileUtils.copyDirectory(new File(testFileRootPath + "UpgradeTest/templates"), templates);
CobiGen cobigen = null;
assertThatThrownBy(() -> {
CobiGenFactory.create(templates.toURI());
}).isInstanceOf(DeprecatedMonolithicConfigurationException.class);

TemplateAdapter templateAdapter = new TemplateAdapterImpl(templates.toPath());
Path templateSets = templateAdapter.upgradeMonolithicTemplates(templates.toPath());
cobigen = CobiGenFactory.create(templateSets.getParent().toUri());
Object input = cobigen.read(
new File("src/test/java/com/devonfw/cobigen/systemtest/testobjects/io/generator/logic/api/to/InputEto.java")
.toPath(),
Charset.forName("UTF-8"), getClass().getClassLoader());

File folder = this.tmpFolder.newFolder("GenerationTest");
File target = new File(folder, "generated.txt");
FileUtils.write(target, "base");

List<TemplateTo> templatesTos = cobigen.getMatchingTemplates(input);
List<IncrementTo> increments = cobigen.getMatchingIncrements(input);
List<String> triggersIds = cobigen.getMatchingTriggerIds(input);
assertThat(templatesTos).hasSize(1);
assertThat(increments).hasSize(1);
assertThat(triggersIds).hasSize(1);

GenerationReportTo report1 = cobigen.generate(input, templatesTos.get(0), Paths.get(folder.toURI()));

assertThat(report1).isSuccessful();
}

/**
* Tests that multiple template sets with templates, increments and triggers get read and generate of all matching
* (java) templates is successful
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>com.devonfw.test</groupId>
<artifactId>templates-devon4j</artifactId>
<version>dev-SNAPSHOT</version>
<packaging>jar</packaging>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>

<dependencies>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-math3</artifactId>
<version>3.6.1</version>
</dependency>
</dependencies>

<build>
<resources>
<resource>
<directory>src/main/templates</directory>
<targetPath>src/main/templates</targetPath>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>flatten-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<phase>prepare-package</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<echo>Integrate POM manually</echo>
<copy file="pom.xml" tofile="${project.build.outputDirectory}/pom.xml"/>
</tasks>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>

</project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<contextConfiguration xmlns="http://capgemini.com/devonfw/cobigen/ContextConfiguration" version="2.1">
<trigger id="entities" type="java" templateFolder="template-test">
<matcher type="fqn" value=".+">
</matcher>
</trigger>
</contextConfiguration>
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<templatesConfiguration xmlns="http://capgemini.com/devonfw/cobigen/TemplatesConfiguration"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="5.0">
<templates>
<template name="t2" destinationPath="generated.txt" templateFile="templates/generated.txt.ftl"
mergeStrategy="override"/>
</templates>

<increments>
<increment name="i2" description="the only increment">
<templateRef ref="t2"/>
</increment>
</increments>
</templatesConfiguration>
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
overwritten
13 changes: 7 additions & 6 deletions cobigen/cobigen-core/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -148,7 +148,8 @@
<packageName>com.devonfw.cobigen.impl.config.entity.io.v1_0</packageName>
<outputDirectory>${project.build.directory}/generated-sources/config/v1.0</outputDirectory>
<sources>
<source>${basedir}/src/main/resources/schema/v1.0</source>
<source>${basedir}/src/main/resources/schema/v1.0/contextConfiguration.xsd</source>
<source>${basedir}/src/main/resources/schema/v1.0/templatesConfiguration.xsd</source>
</sources>
</configuration>
</execution>
Expand Down Expand Up @@ -237,16 +238,16 @@
</configuration>
</execution>
<execution>
<id>generate-v6.0-configuration</id>
<id>generate-TSv1.0-configuration</id>
<phase>generate-sources</phase>
<goals>
<goal>xjc</goal>
</goals>
<configuration>
<packageName>com.devonfw.cobigen.impl.config.entity.io.v6_0</packageName>
<outputDirectory>${project.build.directory}/generated-sources/config/v6.0</outputDirectory>
<packageName>com.devonfw.cobigen.impl.tsconfig.entity.io.v1_0</packageName>
<outputDirectory>${project.build.directory}/generated-sources/tsconfig/v1.0</outputDirectory>
<sources>
<source>${basedir}/src/main/resources/schema/v6.0</source>
<source>${basedir}/src/main/resources/schema/v1.0/templateSetConfiguration.xsd</source>
</sources>
</configuration>
</execution>
Expand All @@ -261,7 +262,7 @@
<packageName>com.devonfw.cobigen.impl.config.entity.io</packageName>
<outputDirectory>${project.build.directory}/generated-sources/config/current</outputDirectory>
<sources>
<source>${basedir}/src/main/resources/schema/v6.0/templateSetConfiguration.xsd</source>
<source>${basedir}/src/main/resources/schema/v1.0/templateSetConfiguration.xsd</source>
</sources>
</configuration>
</execution>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,13 @@ private void readConfiguration(Path configRoot) throws InvalidConfigurationExcep
}

this.configurationPath = this.contextConfigurationReader.getContextRoot();
this.triggers = this.contextConfigurationReader.loadTriggers();
boolean isTemplateSet = false;
// check if configurationHolder is present to check for template set configuration
// configurationHolder is never used in monolitic configuration here.
if (this.configurationHolder != null) {
isTemplateSet = this.configurationHolder.isTemplateSetConfiguration();
}
this.triggers = this.contextConfigurationReader.loadTriggers(isTemplateSet);

}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,8 +60,6 @@ public Map<String, Increment> getIncrements() {
/** The reader to read the template-set.xml files */
private TemplateSetConfigurationReader templateSetConfigurationReader;

private ConfigurationHolder configurationHolder;

/**
* Map of the root template folders distinguished by their trigger ID
*/
Expand Down Expand Up @@ -146,17 +144,17 @@ private void initializeTemplateSets(boolean isZipFile, Path configurationPath, P
TemplateFolder templateFolder = this.templateSetConfigurationReader.getRootTemplateFolder();

TemplatesConfigurationReader templatesConfigurationReader = new TemplatesConfigurationReader(
templatesConfigurationStatic, templateFolder, this.configurationHolder, templateSetFile);
templatesConfigurationStatic, templateFolder, null, templateSetFile);

ContextConfigurationReader contextConfigurationReader = new ContextConfigurationReader(contextConfigurationStatic,
templateSetFile);

Map<String, Trigger> trigger = contextConfigurationReader.loadTriggers();
Map<String, Trigger> trigger = contextConfigurationReader.loadTriggers(true);

// uses the 1st element because a template-set has only one trigger
Trigger activeTrigger = trigger.get(trigger.keySet().toArray()[0]);

Map<Path, Path> configLocations = this.templateSetConfigurationReader.getConfigLocations();
Map<Path, Path> configLocations = this.templateSetConfigurationReader.getConfigLocations();
Path templateSetRootFolder = configLocations.get(templateSetFile);
this.utilFolders.put(activeTrigger.getId(), templateSetRootFolder);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,10 @@
public enum TemplateSetConfigurationVersion {

/**
* Initial release. Merges the content of the context.xml and the templates.xml into a new template-set.xml file.
* Initial release. Merges the content of the context.xml v3 and the templates.xml v5 into a new template-set.xml
* file.
*/
v6_0(6f, false);
v1_0(1f, false);

/** Comparable float representation of the version number. */
private float floatRepresentation;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
import javax.xml.validation.Schema;
import javax.xml.validation.SchemaFactory;

import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.xml.sax.SAXException;
Expand Down Expand Up @@ -319,17 +320,27 @@ private List<Path> loadContextFilesInSubfolder(Path configRoot) {
/**
* Loads all {@link Trigger}s of the static context into the local representation
*
* @param isTemplateSet TODO
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Javadoc missing.

* @return a {@link List} containing all the {@link Trigger}s
*/
public Map<String, Trigger> loadTriggers() {
public Map<String, Trigger> loadTriggers(boolean isTemplateSet) {

Map<String, Trigger> triggers = new HashMap<>();
for (Path contextFile : this.contextConfigurations.keySet()) {
ContextConfiguration contextConfiguration = this.contextConfigurations.get(contextFile);
for (com.devonfw.cobigen.impl.config.entity.io.Trigger t : contextConfiguration.getTrigger()) {
triggers.put(t.getId(), new Trigger(t.getId(), t.getType(), t.getTemplateFolder(),
String templateFolder = t.getTemplateFolder();
if (isTemplateSet) {
if (!StringUtils.isEmpty(templateFolder) || !templateFolder.equals("/")) {
LOG.warn("Ignoring content of template folder field: {} from trigger, not needed for template sets.",
templateFolder);
}
templateFolder = "/";
}
triggers.put(t.getId(), new Trigger(t.getId(), t.getType(), templateFolder,
Charset.forName(t.getInputCharset()), loadMatchers(t), loadContainerMatchers(t)));
}

}
return triggers;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -750,7 +750,7 @@ private Trigger getExternalTrigger(String triggerToSearch) {

ContextConfigurationReader contextConfigurationReader = new ContextConfigurationReader(
this.configurationHolder.readContextConfiguration().getConfigurationPath());
Map<String, Trigger> triggers = contextConfigurationReader.loadTriggers();
Map<String, Trigger> triggers = contextConfigurationReader.loadTriggers(this.configurationHolder.isTemplateSetConfiguration());
Trigger trig = triggers.get(triggerToSearch);
if (trig == null) {
throw new InvalidConfigurationException(this.configFilePath.toUri().toString(),
Expand Down
Loading