Skip to content

Commit 84e3b9e

Browse files
Merge pull request #158 from utPLSQL/bugfix/issue-157-missing-line-break-after-suite
Bugfix/issue 157 missing line break after suite
2 parents e2de011 + 196438f commit 84e3b9e

File tree

8 files changed

+324
-59
lines changed

8 files changed

+324
-59
lines changed

README.md

+4-3
Original file line numberDiff line numberDiff line change
@@ -142,10 +142,11 @@ Please file your bug reports, enhancement requests, questions and other support
142142
3. [Create a branch](https://help.github.com/articles/creating-and-deleting-branches-within-your-repository/), commit and publish your changes and enhancements
143143
4. [Create a pull request](https://help.github.com/articles/creating-a-pull-request/)
144144

145+
## How to Build
145146
## How to Build
146147

147-
1. [Download](http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html) and install SQL Developer 21.4.2
148-
2. [Download](https://maven.apache.org/download.cgi) and install Apache Maven 3.8.3
148+
1. [Download](http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html) and install SQL Developer 21.4.3
149+
2. [Download](https://maven.apache.org/download.cgi) and install Apache Maven 3.8.6
149150
3. [Download](https://git-scm.com/downloads) and install a git command line client
150151
4. Clone the utPLSQL-SQLDeveloper repository
151152
5. Open a terminal window in the utPLSQL-SQLDeveloper root folder and type
@@ -154,7 +155,7 @@ Please file your bug reports, enhancement requests, questions and other support
154155

155156
6. Run maven build by the following command
156157

157-
mvn -Dsqldev.basedir=/Applications/SQLDeveloper21.4.2.app/Contents/Resources/sqldeveloper -DskipTests=true clean package
158+
mvn -Dsqldev.basedir=/Applications/SQLDeveloper21.4.3.app/Contents/Resources/sqldeveloper -DskipTests=true clean package
158159

159160
Amend the parameter sqldev.basedir to match the path of your SQL Developer installation. This folder is used to reference Oracle jar files which are not available in public Maven repositories
160161
7. The resulting file ```utplsql_for_SQLDev_x.x.x-SNAPSHOT.zip``` in the ```target``` directory can be installed within SQL Developer

sqldev/pom.xml

+73-43
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,11 @@
1010
<packaging>bundle</packaging>
1111
<properties>
1212
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
13-
<jdk.version>1.8</jdk.version>
14-
<jdk.version.test>1.8</jdk.version.test>
13+
<jdk.version>8</jdk.version>
14+
<jdk.test.version>17</jdk.test.version>
1515
<!-- requires SQL Developer 4.1.0 or higher (first version based on JDK 1.8) -->
16-
<sqldev.basedir>/Applications/SQLDeveloper21.4.2.app/Contents/Resources/sqldeveloper</sqldev.basedir>
16+
<!-- last version of SQL Developer that uses JDK 8 is 21.4.3 -->
17+
<sqldev.basedir>/Applications/SQLDeveloper21.4.3.app/Contents/Resources/sqldeveloper</sqldev.basedir>
1718
<final.name>utplsql_for_SQLDev_${project.version}</final.name>
1819
<!-- arguments to by added by jacoco plugin for test runs with coverage -->
1920
<!-- -noverify is required in some environments to avoid java.lang.VerifyError -->
@@ -206,19 +207,19 @@
206207
<!-- used mainly to access the database via JdbcTemplate -->
207208
<groupId>org.springframework</groupId>
208209
<artifactId>spring-jdbc</artifactId>
209-
<version>5.3.16</version>
210+
<version>5.3.22</version>
210211
</dependency>
211212
<dependency>
212213
<!-- transitive reference, but IntelliJ wants to have it explicit (to avoid warnings) -->
213214
<groupId>org.springframework</groupId>
214215
<artifactId>spring-core</artifactId>
215-
<version>5.3.20</version>
216+
<version>5.3.22</version>
216217
</dependency>
217218
<dependency>
218219
<!-- used for HtmlUtils.htmlEscape in RunnerPanel -->
219220
<groupId>org.springframework</groupId>
220221
<artifactId>spring-web</artifactId>
221-
<version>5.3.16</version>
222+
<version>5.3.22</version>
222223
</dependency>
223224
<dependency>
224225
<!-- optional, for RunGenerator and TestGenerator -->
@@ -244,7 +245,6 @@
244245
<!-- Build Settings -->
245246
<build>
246247
<sourceDirectory>${project.basedir}/src/main/java</sourceDirectory>
247-
<testSourceDirectory>${project.basedir}/src/test/java</testSourceDirectory>
248248
<resources>
249249
<resource>
250250
<directory>src/main/resources</directory>
@@ -253,36 +253,16 @@
253253
</includes>
254254
</resource>
255255
</resources>
256+
<testSourceDirectory>${project.basedir}/src/test/java</testSourceDirectory>
257+
<testResources>
258+
<testResource>
259+
<directory>src/test/resources</directory>
260+
<includes>
261+
<include>**/*.*</include>
262+
</includes>
263+
</testResource>
264+
</testResources>
256265
<plugins>
257-
<plugin>
258-
<groupId>org.apache.maven.plugins</groupId>
259-
<version>3.10.0</version>
260-
<artifactId>maven-compiler-plugin</artifactId>
261-
<configuration>
262-
<source>${jdk.version}</source>
263-
<target>${jdk.version}</target>
264-
<!-- used by Maven build -->
265-
<testSource>${jdk.version.test}</testSource>
266-
<testTarget>${jdk.version.test}</testTarget>
267-
<includes>
268-
<include>**/*.java</include>
269-
</includes>
270-
</configuration>
271-
<executions>
272-
<!-- used by Eclipse when updating project -->
273-
<execution>
274-
<id>test-compile</id>
275-
<phase>process-test-sources</phase>
276-
<goals>
277-
<goal>testCompile</goal>
278-
</goals>
279-
<configuration>
280-
<source>${jdk.version.test}</source>
281-
<target>${jdk.version.test}</target>
282-
</configuration>
283-
</execution>
284-
</executions>
285-
</plugin>
286266
<plugin>
287267
<groupId>org.apache.maven.plugins</groupId>
288268
<artifactId>maven-surefire-plugin</artifactId>
@@ -316,7 +296,7 @@
316296
<plugin>
317297
<groupId>org.apache.maven.plugins</groupId>
318298
<artifactId>maven-antrun-plugin</artifactId>
319-
<version>3.0.0</version><!--$NO-MVN-MAN-VER$-->
299+
<version>3.1.0</version><!--$NO-MVN-MAN-VER$-->
320300
<executions>
321301
<execution>
322302
<phase>prepare-package</phase>
@@ -337,7 +317,7 @@
337317
<plugin>
338318
<groupId>org.codehaus.mojo</groupId>
339319
<artifactId>properties-maven-plugin</artifactId>
340-
<version>1.0.0</version>
320+
<version>1.1.0</version>
341321
<executions>
342322
<execution>
343323
<phase>initialize</phase>
@@ -357,7 +337,7 @@
357337
<plugin>
358338
<groupId>org.codehaus.mojo</groupId>
359339
<artifactId>build-helper-maven-plugin</artifactId>
360-
<version>3.1.0</version>
340+
<version>3.3.0</version>
361341
<executions>
362342
<execution>
363343
<id>parse-version</id>
@@ -427,7 +407,7 @@
427407
<!-- - Error:osgi: [org.utplsql.sqldev] Invalid value for Bundle-Version, ${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion} does not match \d{1,9}(\.\d{1,9}(\.\d{1,9}(\.[-\w]+)?)?)? -->
428408
<groupId>org.apache.felix</groupId>
429409
<artifactId>maven-bundle-plugin</artifactId>
430-
<version>4.2.1</version>
410+
<version>5.1.7</version> <!-- Classes found in the wrong director warning with 5.1.7, TODO: find solution to remove it -->
431411
<extensions>true</extensions>
432412
<configuration>
433413
<finalName>${project.name}</finalName>
@@ -497,7 +477,7 @@
497477
</plugin>
498478
<plugin>
499479
<artifactId>maven-assembly-plugin</artifactId>
500-
<version>3.3.0</version><!--$NO-MVN-MAN-VER$-->
480+
<version>3.4.1</version><!--$NO-MVN-MAN-VER$-->
501481
<configuration>
502482
<finalName>${final.name}</finalName>
503483
<appendAssemblyId>false</appendAssemblyId>
@@ -519,7 +499,7 @@
519499
<plugin>
520500
<groupId>net.nicoulaj.maven.plugins</groupId>
521501
<artifactId>checksum-maven-plugin</artifactId>
522-
<version>1.9</version>
502+
<version>1.11</version>
523503
<executions>
524504
<execution>
525505
<id>calculate-checksums</id>
@@ -533,7 +513,7 @@
533513
<plugin>
534514
<groupId>org.jacoco</groupId>
535515
<artifactId>jacoco-maven-plugin</artifactId>
536-
<version>0.8.5</version>
516+
<version>0.8.8</version>
537517
<executions>
538518
<execution>
539519
<goals>
@@ -645,4 +625,54 @@
645625
<tag>master</tag>
646626
<url>https://github.com/utPLSQL/utPLSQL-SQLDeveloper</url>
647627
</scm>
628+
629+
<!-- Profiles as workaround for https://youtrack.jetbrains.com/issue/IDEA-85478 as described in -->
630+
<!-- https://intellij-support.jetbrains.com/hc/en-us/community/posts/360009767720-I-want-to-run-tests-with-different-java-version-than-my-source-java-version -->
631+
<profiles>
632+
<profile>
633+
<id>default</id>
634+
<activation>
635+
<activeByDefault>true</activeByDefault>
636+
</activation>
637+
<build>
638+
<plugins>
639+
<plugin>
640+
<groupId>org.apache.maven.plugins</groupId>
641+
<version>3.10.1</version>
642+
<artifactId>maven-compiler-plugin</artifactId>
643+
<configuration>
644+
<!-- different Java version for main and test -->
645+
<!-- works with Maven builder from IDE or command line -->
646+
<release>${jdk.version}</release>
647+
<testRelease>${jdk.test.version}</testRelease>
648+
</configuration>
649+
</plugin>
650+
</plugins>
651+
</build>
652+
</profile>
653+
<profile>
654+
<id>idea</id>
655+
<activation>
656+
<activeByDefault>false</activeByDefault>
657+
<property>
658+
<name>idea.maven.embedder.version</name>
659+
</property>
660+
</activation>
661+
<build>
662+
<plugins>
663+
<plugin>
664+
<groupId>org.apache.maven.plugins</groupId>
665+
<version>3.10.1</version>
666+
<artifactId>maven-compiler-plugin</artifactId>
667+
<configuration>
668+
<!-- IDEA requires same Java version for main and test -->
669+
<!-- see https://youtrack.jetbrains.com/issue/IDEA-85478 -->
670+
<release>${jdk.test.version}</release>
671+
<testRelease>${jdk.test.version}</testRelease>
672+
</configuration>
673+
</plugin>
674+
</plugins>
675+
</build>
676+
</profile>
677+
</profiles>
648678
</project>

sqldev/src/main/java/org/utplsql/sqldev/coverage/CodeCoverageReporter.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -190,7 +190,7 @@ private void run() {
190190
PreferenceModel preferences;
191191
try {
192192
preferences = PreferenceModel.getInstance(Preferences.getPreferences());
193-
} catch (NoClassDefFoundError error) {
193+
} catch (NoClassDefFoundError | ExceptionInInitializerError error) {
194194
// not running in SQL Developer (in tests)
195195
preferences = PreferenceModel.getInstance(null);
196196
}

sqldev/src/main/java/org/utplsql/sqldev/oddgen/TestTemplate.java

+4-3
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,9 @@ public String generateSpec() {
4141
final String packageName = context.getTestPackagePrefix() + objectName + context.getTestPackageSuffix();
4242
sb.append("create or replace package ");
4343
sb.append(packageName);
44-
sb.append(" is\n\n");
44+
sb.append(" is\n");
4545
if (context.isGenerateComments()) {
46-
sb.append("\t-- generated by utPLSQL for SQL Developer on ");
46+
sb.append("\n\t-- generated by utPLSQL for SQL Developer on ");
4747
sb.append(today);
4848
sb.append("\n\n");
4949
}
@@ -53,8 +53,9 @@ public String generateSpec() {
5353
if (!context.getSuitePath().isEmpty()) {
5454
sb.append("\t--%suitepath(");
5555
sb.append(context.getSuitePath());
56-
sb.append(")\n\n");
56+
sb.append(")\n");
5757
}
58+
sb.append("\n");
5859
for (final String u : units) {
5960
final String unit = u.toLowerCase();
6061
if (context.getNumberOfTestsPerUnit() > 1

sqldev/src/main/java/org/utplsql/sqldev/runner/UtplsqlWorksheetRunner.java

+7-7
Original file line numberDiff line numberDiff line change
@@ -77,30 +77,30 @@ private CharSequence getCode() {
7777
StringBuilder sb = new StringBuilder();
7878
if (!debug) {
7979
if (preferences.isResetPackage()) {
80-
sb.append("EXECUTE dbms_session.reset_package;\n");
80+
sb.append("execute dbms_session.reset_package;\n");
8181
}
82-
sb.append("SET SERVEROUTPUT ON SIZE UNLIMITED\n");
82+
sb.append("set serveroutput on size unlimited\n");
8383
if (preferences.isClearScreen()) {
84-
sb.append("CLEAR SCREEN\n");
84+
sb.append("clear screen\n");
8585
}
8686
if (pathList.size() == 1) {
87-
sb.append("EXECUTE ut.run('");
87+
sb.append("execute ut.run('");
8888
sb.append(pathList.get(0));
8989
sb.append("');\n");
9090
} else {
9191
// we want a horizontal dense output because we resize the worksheet to fit the command in common cases
92-
sb.append("EXECUTE ut.run(ut_varchar2_list(");
92+
sb.append("execute ut.run(ut_varchar2_list(");
9393
sb.append(StringTools.getCSV(pathList, "").replace("\n", ""));
9494
sb.append("));\n");
9595
}
9696
} else {
97-
sb.append("BEGIN\n");
97+
sb.append("begin\n");
9898
sb.append(" ut.run(\n");
9999
sb.append(" ut_varchar2_list(\n");
100100
sb.append(StringTools.getCSV(pathList, 9));
101101
sb.append(" )\n");
102102
sb.append(" );\n");
103-
sb.append("END;\n");
103+
sb.append("end;\n");
104104
}
105105
return sb;
106106
}

sqldev/src/main/java/org/utplsql/sqldev/ui/runner/RunnerPanel.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -568,7 +568,7 @@ private void syncDetailTab() {
568568
private PreferenceModel getPreferenceModel() {
569569
try {
570570
return PreferenceModel.getInstance(Preferences.getPreferences());
571-
} catch (NoClassDefFoundError e) {
571+
} catch (NoClassDefFoundError | ExceptionInInitializerError e) {
572572
// running outside of SQL Developer
573573
return PreferenceModel.getInstance(null);
574574
}

sqldev/src/test/java/org/utplsql/sqldev/test/runner/UtplsqlRunnerTest.java

+6-1
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,12 @@ public void setupDefaultPreferences() {
4646
preferences = PreferenceModel.getInstance(null);
4747
// the second call will call will succeed and use preferences from user.home
4848
// this ensures that the test and the runner use the same preferences
49-
preferences = PreferenceModel.getInstance(Preferences.getPreferences());
49+
try {
50+
preferences = PreferenceModel.getInstance(Preferences.getPreferences());
51+
} catch (NoClassDefFoundError e2) {
52+
// the second call also failed. no other option left (new behavior with Java17)
53+
preferences = PreferenceModel.getInstance(null);
54+
}
5055
} finally {
5156
// set defaults manually, since all tests are using the same preference store
5257
preferences.setShowSuccessfulTests(true);

0 commit comments

Comments
 (0)