Skip to content

Commit 1ef83c8

Browse files
committed
HBX-3128: Avoid use of Maven invoker plugin while performing functional testing
- Add the 'hbm2java/output-dir' example - Add a test for 'hbm2java/output-dir' Signed-off-by: Koen Aers <[email protected]>
1 parent 99d6535 commit 1ef83c8

File tree

5 files changed

+118
-2
lines changed

5 files changed

+118
-2
lines changed
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
<!--
2+
~ Copyright 2004 - 2025 Red Hat, Inc.
3+
~
4+
~ Licensed under the Apache License, Version 2.0 (the "License");
5+
~ you may not use this file except in compliance with the License.
6+
~ You may obtain a copy of the License at
7+
~
8+
~ http://www.apache.org/licenses/LICENSE-2.0
9+
~
10+
~ Unless required by applicable law or agreed to in writing, software
11+
~ distributed under the License is distributed on an "AS IS" basis,
12+
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
~ See the License for the specific language governing permissions and
14+
~ limitations under the License.
15+
-->
16+
To run this example:
17+
- Have [Apache Maven](https://maven.apache.org) installed
18+
- Have [H2 Sakila database](https://github.com/hibernate/sakila-h2) running
19+
- Issue the following command from a command-line window opened in this folder:
20+
```shell
21+
mvn generate-sources
22+
-Dh2.version=${h2.version}
23+
-Dhibernate.version=${hibernate.version}
24+
-Doutput.dir=./generated-classes
25+
```
26+
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!--
3+
~ Copyright 2018 - 2025 Red Hat, Inc.
4+
~
5+
~ Licensed under the Apache License, Version 2.0 (the "License");
6+
~ you may not use this file except in compliance with the License.
7+
~ You may obtain a copy of the License at
8+
~
9+
~ http://www.apache.org/licenses/LICENSE-2.0
10+
~
11+
~ Unless required by applicable law or agreed to in writing, software
12+
~ distributed under the License is distributed on an "AS IS" basis,
13+
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+
~ See the License for the specific language governing permissions and
15+
~ limitations under the License.
16+
-->
17+
<project xmlns="http://maven.apache.org/POM/4.0.0"
18+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
19+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
20+
<modelVersion>4.0.0</modelVersion>
21+
22+
<groupId>org.hibernate.tool.maven.test</groupId>
23+
<artifactId>hbm2java-jpa-default</artifactId>
24+
<version>0.0.1-SNAPSHOT</version>
25+
26+
<dependencies>
27+
<dependency>
28+
<groupId>com.h2database</groupId>
29+
<artifactId>h2</artifactId>
30+
<version>${h2.version}</version>
31+
</dependency>
32+
</dependencies>
33+
34+
<build>
35+
<plugins>
36+
<plugin>
37+
<groupId>org.hibernate.tool</groupId>
38+
<artifactId>hibernate-tools-maven</artifactId>
39+
<version>${hibernate.version}</version>
40+
<executions>
41+
<execution>
42+
<id>Entity generation</id>
43+
<phase>generate-sources</phase>
44+
<goals>
45+
<goal>hbm2java</goal>
46+
</goals>
47+
</execution>
48+
</executions>
49+
<configuration>
50+
<outputDirectory>${output.dir}</outputDirectory>
51+
</configuration>
52+
</plugin>
53+
</plugins>
54+
</build>
55+
56+
</project>
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
############################################################################
2+
# Hibernate Tools, Tooling for your Hibernate Projects #
3+
# #
4+
# Copyright 2004-2025 Red Hat, Inc. #
5+
# #
6+
# Licensed under the Apache License, Version 2.0 (the "License"); #
7+
# you may not use this file except in compliance with the License. #
8+
# You may obtain a copy of the License at #
9+
# #
10+
# http://www.apache.org/licenses/LICENSE-2.0 #
11+
# #
12+
# Unless required by applicable law or agreed to in writing, software #
13+
# distributed under the License is distributed on an "AS IS" basis, #
14+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #
15+
# See the License for the specific language governing permissions and #
16+
# limitations under the License. #
17+
############################################################################
18+
hibernate.connection.driver_class=org.h2.Driver
19+
hibernate.connection.url=jdbc:h2:tcp://localhost/./sakila
20+
hibernate.connection.username=sa
21+
hibernate.default_catalog=SAKILA
22+
hibernate.default_schema=PUBLIC
23+

maven/pom.xml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -248,8 +248,6 @@
248248
<delimiters>
249249
<delimiter>${*.version}</delimiter>
250250
</delimiters>
251-
<useDefaultDelimiters>false</useDefaultDelimiters>
252-
<escapeString>\</escapeString>
253251
</configuration>
254252
</execution>
255253
</executions>

maven/src/functionalTest/java/org/hibernate/tool/maven/ExamplesTestIT.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,19 @@ public void testNoGenerics() throws Exception {
8585
assertGeneratedDoesNotContain("Person.java", "Set<Item>");
8686
}
8787

88+
@Test
89+
public void testOutputDirectory() throws Exception {
90+
System.setProperty("output.dir", "${project.basedir}/generated-classes");
91+
prepareProject("hbm2java/output-directory");
92+
File outputDirectory = new File(projectFolder, "generated-classes");
93+
File personFile = new File(outputDirectory, "Person.java");
94+
assertFalse(outputDirectory.exists());
95+
assertFalse(personFile.exists());
96+
runGenerateSources();
97+
assertEquals(1, outputDirectory.list().length); // 1 file is generated in 'generated-classes'
98+
assertTrue(personFile.exists()); // The Person.java file should have been generated
99+
}
100+
88101
@Test
89102
public void testTemplatePath() throws Exception {
90103
System.setProperty("template.dir", "${project.basedir}/templates");

0 commit comments

Comments
 (0)