Skip to content

Commit 83a3bee

Browse files
authored
#42: UDF support (#44)
* #42: UDF support
1 parent e1fe740 commit 83a3bee

29 files changed

+1143
-274
lines changed

.github/workflows/upload_release_asset.yml renamed to .github/workflows/github_release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: Upload Release Asset
1+
name: GitHub Release
22

33
on:
44
workflow_dispatch:

.github/workflows/maven.yml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# This workflow will build a Java project with Maven
2+
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven
3+
4+
name: Dependencies Check
5+
6+
on:
7+
schedule:
8+
- cron: "0 2 * * *"
9+
10+
jobs:
11+
build:
12+
runs-on: ubuntu-latest
13+
14+
steps:
15+
- uses: actions/checkout@v2
16+
- name: Set up JDK 11
17+
uses: actions/setup-java@v1
18+
with:
19+
java-version: 11
20+
- name: Checking dependencies for vulnerabilities
21+
run: mvn org.sonatype.ossindex.maven:ossindex-maven-plugin:audit -f pom.xml

.settings/org.eclipse.jdt.core.prefs

Lines changed: 108 additions & 32 deletions
Large diffs are not rendered by default.

.settings/org.eclipse.jdt.ui.prefs

Lines changed: 68 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,71 @@
1+
cleanup.add_default_serial_version_id=true
2+
cleanup.add_generated_serial_version_id=false
3+
cleanup.add_missing_annotations=true
4+
cleanup.add_missing_deprecated_annotations=true
5+
cleanup.add_missing_methods=false
6+
cleanup.add_missing_nls_tags=false
7+
cleanup.add_missing_override_annotations=true
8+
cleanup.add_missing_override_annotations_interface_methods=true
9+
cleanup.add_serial_version_id=false
10+
cleanup.always_use_blocks=true
11+
cleanup.always_use_parentheses_in_expressions=false
12+
cleanup.always_use_this_for_non_static_field_access=true
13+
cleanup.always_use_this_for_non_static_method_access=false
14+
cleanup.convert_functional_interfaces=true
15+
cleanup.convert_to_enhanced_for_loop=true
16+
cleanup.correct_indentation=true
17+
cleanup.format_source_code=true
18+
cleanup.format_source_code_changes_only=false
19+
cleanup.insert_inferred_type_arguments=false
20+
cleanup.make_local_variable_final=true
21+
cleanup.make_parameters_final=true
22+
cleanup.make_private_fields_final=true
23+
cleanup.make_type_abstract_if_missing_method=false
24+
cleanup.make_variable_declarations_final=true
25+
cleanup.never_use_blocks=false
26+
cleanup.never_use_parentheses_in_expressions=true
27+
cleanup.organize_imports=false
28+
cleanup.qualify_static_field_accesses_with_declaring_class=false
29+
cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
30+
cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
31+
cleanup.qualify_static_member_accesses_with_declaring_class=true
32+
cleanup.qualify_static_method_accesses_with_declaring_class=false
33+
cleanup.remove_private_constructors=true
34+
cleanup.remove_redundant_modifiers=false
35+
cleanup.remove_redundant_semicolons=true
36+
cleanup.remove_redundant_type_arguments=true
37+
cleanup.remove_trailing_whitespaces=true
38+
cleanup.remove_trailing_whitespaces_all=true
39+
cleanup.remove_trailing_whitespaces_ignore_empty=false
40+
cleanup.remove_unnecessary_casts=true
41+
cleanup.remove_unnecessary_nls_tags=true
42+
cleanup.remove_unused_imports=true
43+
cleanup.remove_unused_local_variables=false
44+
cleanup.remove_unused_private_fields=true
45+
cleanup.remove_unused_private_members=true
46+
cleanup.remove_unused_private_methods=true
47+
cleanup.remove_unused_private_types=true
48+
cleanup.sort_members=false
49+
cleanup.sort_members_all=false
50+
cleanup.use_anonymous_class_creation=false
51+
cleanup.use_blocks=true
52+
cleanup.use_blocks_only_for_return_and_throw=false
53+
cleanup.use_lambda=true
54+
cleanup.use_parentheses_in_expressions=true
55+
cleanup.use_this_for_non_static_field_access=true
56+
cleanup.use_this_for_non_static_field_access_only_if_necessary=false
57+
cleanup.use_this_for_non_static_method_access=false
58+
cleanup.use_this_for_non_static_method_access_only_if_necessary=true
59+
cleanup_profile=_Exasol
60+
cleanup_settings_version=2
161
eclipse.preferences.version=1
262
editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
363
formatter_profile=_Exasol
4-
formatter_settings_version=18
64+
formatter_settings_version=16
65+
org.eclipse.jdt.ui.ignorelowercasenames=true
66+
org.eclipse.jdt.ui.importorder=java;javax;org;com;
67+
org.eclipse.jdt.ui.ondemandthreshold=3
68+
org.eclipse.jdt.ui.staticondemandthreshold=3
569
sp_cleanup.add_default_serial_version_id=true
670
sp_cleanup.add_generated_serial_version_id=false
771
sp_cleanup.add_missing_annotations=true
@@ -28,14 +92,12 @@ sp_cleanup.make_type_abstract_if_missing_method=false
2892
sp_cleanup.make_variable_declarations_final=true
2993
sp_cleanup.never_use_blocks=false
3094
sp_cleanup.never_use_parentheses_in_expressions=false
31-
sp_cleanup.number_suffix=true
3295
sp_cleanup.on_save_use_additional_actions=true
3396
sp_cleanup.organize_imports=true
34-
sp_cleanup.push_down_negation=false
35-
sp_cleanup.qualify_static_field_accesses_with_declaring_class=true
97+
sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
3698
sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
3799
sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
38-
sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
100+
sp_cleanup.qualify_static_member_accesses_with_declaring_class=true
39101
sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
40102
sp_cleanup.remove_private_constructors=true
41103
sp_cleanup.remove_redundant_modifiers=false
@@ -44,28 +106,22 @@ sp_cleanup.remove_redundant_type_arguments=true
44106
sp_cleanup.remove_trailing_whitespaces=true
45107
sp_cleanup.remove_trailing_whitespaces_all=true
46108
sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
47-
sp_cleanup.remove_unnecessary_array_creation=true
48109
sp_cleanup.remove_unnecessary_casts=true
49-
sp_cleanup.remove_unnecessary_nls_tags=false
110+
sp_cleanup.remove_unnecessary_nls_tags=true
50111
sp_cleanup.remove_unused_imports=true
51112
sp_cleanup.remove_unused_local_variables=false
52113
sp_cleanup.remove_unused_private_fields=true
53114
sp_cleanup.remove_unused_private_members=false
54115
sp_cleanup.remove_unused_private_methods=true
55116
sp_cleanup.remove_unused_private_types=true
56-
sp_cleanup.simplify_lambda_expression_and_method_ref=true
57117
sp_cleanup.sort_members=false
58118
sp_cleanup.sort_members_all=false
59119
sp_cleanup.use_anonymous_class_creation=false
60-
sp_cleanup.use_autoboxing=true
61120
sp_cleanup.use_blocks=true
62121
sp_cleanup.use_blocks_only_for_return_and_throw=false
63-
sp_cleanup.use_directly_map_method=false
64122
sp_cleanup.use_lambda=true
65123
sp_cleanup.use_parentheses_in_expressions=true
66124
sp_cleanup.use_this_for_non_static_field_access=true
67125
sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=false
68126
sp_cleanup.use_this_for_non_static_method_access=false
69127
sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
70-
sp_cleanup.use_unboxing=true
71-
org.eclipse.jdt.ui.importorder=java;javax;org;com;

README.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,15 +103,16 @@ Running the Test Database Builder requires a Java Runtime version 11 or later.
103103
| [Maven Compiler Plugin](https://maven.apache.org/plugins/maven-compiler-plugin/) | Setting required Java version | Apache License 2.0 |
104104
| [Maven Exec Plugin](https://www.mojohaus.org/exec-maven-plugin/) | Executing external applications | Apache License 2.0 |
105105
| [Maven GPG Plugin](https://maven.apache.org/plugins/maven-gpg-plugin/) | Code signing | Apache License 2.0 |
106-
| [Maven Enforcer Plugin][maven-enforcer-plugin] | Controlling environment constants | Apache License 2.0 |
106+
| [Maven Enforcer Plugin][maven-enforcer-plugin] | Controlling environment constants | Apache License 2.0 |
107107
| [Maven Failsafe Plugin](https://maven.apache.org/surefire/maven-surefire-plugin/) | Integration testing | Apache License 2.0 |
108108
| [Maven Javadoc Plugin](https://maven.apache.org/plugins/maven-javadoc-plugin/) | Creating a Javadoc JAR | Apache License 2.0 |
109109
| [Maven Jacoco Plugin](https://www.eclemma.org/jacoco/trunk/doc/maven.html) | Code coverage metering | Eclipse Public License 2.0 |
110110
| [Maven Source Plugin](https://maven.apache.org/plugins/maven-source-plugin/) | Creating a source code JAR | Apache License 2.0 |
111111
| [Maven Surefire Plugin](https://maven.apache.org/surefire/maven-surefire-plugin/) | Unit testing | Apache License 2.0 |
112112
| [Sonatype OSS Index Maven Plugin][sonatype-oss-index-maven-plugin] | Checking Dependencies Vulnerability | ASL2 |
113113
| [OpenFastTrace Maven Plugin][open-fast-trace-maven-plugin] | Requirement Tracing | GPL v3 |
114-
| [Versions Maven Plugin][versions-maven-plugin] | Checking if dependencies updates are available | Apache License 2.0 |
114+
| [Versions Maven Plugin][versions-maven-plugin] | Checking if dependencies updates are available | Apache License 2.0 |
115+
| [Projekt Keeper](https://github.com/exasol/project-keeper/) | Enforcing project structure | MIT License |
115116

116117
[exasol-jdbc-driver]: https://www.exasol.com/portal/display/DOWNLOAD/Exasol+Download+Section
117118
[mysql-jdbc-driver]: https://dev.mysql.com/downloads/connector/j/

doc/changes/changelog.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
# Changes
22

3+
* [2.0.0](changes_2.0.0.md)
34
* [1.1.0](changes_1.1.0.md)
45
* [1.0.1](changes-1.0.1.md)

doc/changes/changes_2.0.0.md

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,28 @@
1-
# Test Database Builder 2.0.0, released 2020-XX-XX
1+
# Test Database Builder 2.0.0, released 2020-11-11
22

3-
Code name:
3+
Code name: UDF support
44

55
## Refactoring
66

77
* #40: Refactored debugger connection to global JVM options
88
This change caused an API change for adding a debugger.
9-
See the [user guide](../user_guide/user_guide.md).
9+
See the [user guide](../user_guide/user_guide.md).
10+
11+
## Features / Enhancements
12+
13+
* #42: UDF support
14+
For supporting UDFs we unified the API for Script, UDF and Adapter scripts.
15+
We changed `ExasolSchema#createAdapterScriptBuilder()` into `ExasolSchema#createAdapterScriptBuilder(name)`
16+
and removed `AdapterScript.Builder#name(name)`.
17+
We also removed `AdapterScript.Builder#parentSchema(schema)` and `AdapterScript.Builder#writer(writer)` but these methods should not be used from outside anyway.
18+
19+
## Dependency Updates
20+
21+
* Updated `com.exasol:exasol-jdbc` from 6.2.5 to 7.0.3
22+
* Updated `mysql:mysql-connector-java` from 8.0.20 to 8.0.22
23+
* Updated `com.exasol:db-fundamentals-java` from 0.1.0 to 0.1.1
24+
* Updated `com.exasol:exasol-testcontainers` from 2.0.3 to 3.2.0
25+
* Updated `com.exasol:hamcrest-resultset-matcher` from 1.1.1 to 1.2.1
26+
* Updated `org.mockito:mockito-junit-jupiter` from 3.3.3 to 3.6.0
27+
* Updated `nl.jqno.equalsverifier:equalsverifier` from 3.4.1 to 3.5
28+
* Added `com.exasol:project-keeper` 0.2.0

doc/design.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,17 @@ Covers:
157157

158158
Needs: impl, itest
159159

160+
### Creating UDFs
161+
`dsn~creating-udfs~1`
162+
163+
Users can create UDF objects from inside schema objects by providing the script from file.
164+
165+
Covers:
166+
167+
* `req~creating-udf~1`
168+
169+
Needs: impl, itest
170+
160171
### Creating Scripts from Files
161172
`dsn~creating-scripts-from-files~1`
162173

@@ -278,6 +289,17 @@ Covers:
278289

279290
Needs: impl, itest
280291

292+
### Dropping UDFs
293+
`dsn~dropping-udfs~1`
294+
295+
Users can drop UDFs using TDDB.
296+
297+
Covers:
298+
299+
* `req~dropping-udfs~1`
300+
301+
Needs: impl, itest
302+
281303
### Dropping Virtual Schemas
282304
`dsn~dropping-virtual-schemas~2`
283305

doc/system_requirements.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,17 @@ Covers:
158158

159159
Needs: dsn
160160

161+
#### Creating UDFs
162+
`req~creating-udf~1`
163+
164+
Users can create UDFs with content from file
165+
166+
Covers:
167+
168+
* [feat~creating-database-objects~1](#creating-database-objects)
169+
170+
Needs: dsn
171+
161172
#### Creating Scripts From Files
162173
`req~creating-scripts-from-files~1`
163174

@@ -316,6 +327,17 @@ Covers:
316327

317328
Needs: dsn
318329

330+
### Dropping UDFs
331+
`req~dropping-udfs~1`
332+
333+
Users can drop UDFs using TDDB.
334+
335+
Covers:
336+
337+
* [feat~dropping-existing-database-objects~2](#dropping-database-objects)
338+
339+
Needs: dsn
340+
319341
### Dropping Virtual Schemas
320342
`req~dropping-virtual-schemas~1`
321343

0 commit comments

Comments
 (0)