Skip to content

Commit 3856819

Browse files
committed
Make mongo-hibernate.jar a Java module
HIBERNATE-52
1 parent 100904b commit 3856819

File tree

8 files changed

+55
-51
lines changed

8 files changed

+55
-51
lines changed

build.gradle.kts

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -39,15 +39,15 @@ java {
3939
}
4040

4141
tasks.withType<Javadoc> {
42-
exclude("/com/mongodb/hibernate/internal/**")
43-
exclude("com/mongodb/hibernate/dialect/**")
44-
exclude("com/mongodb/hibernate/jdbc/**")
42+
// exclude("/com/mongodb/hibernate/internal/**")
43+
// exclude("com/mongodb/hibernate/dialect/**")
44+
// exclude("com/mongodb/hibernate/jdbc/**")
4545

4646
val standardDocletOptions = options as StandardJavadocDocletOptions
4747
standardDocletOptions.apply {
4848
author(true)
4949
version(true)
50-
encoding = "UTF-8"
50+
encoding("UTF-8")
5151
charSet("UTF-8")
5252
docEncoding("UTF-8")
5353
addBooleanOption("html5", true)
@@ -141,7 +141,8 @@ spotless {
141141
tasks.check { dependsOn(tasks.spotlessApply) }
142142

143143
tasks.withType<JavaCompile>().configureEach {
144-
options.compilerArgs.addAll(listOf("-Xlint:all", "-Werror"))
144+
options.compilerArgs.addAll(
145+
listOf("-Xlint:all", "-Xlint:-requires-automatic", "-Xlint:-requires-transitive-automatic", "-Werror"))
145146
when (this) {
146147
tasks.compileJava.get() ->
147148
options.errorprone {

src/integrationTest/java/com/mongodb/hibernate/query/AbstractQueryIntegrationTests.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626

2727
import com.mongodb.client.MongoCollection;
2828
import com.mongodb.hibernate.TestCommandListener;
29-
import com.mongodb.hibernate.dialect.MongoDialect;
29+
import com.mongodb.hibernate.internal.dialect.TestMongoDialect;
3030
import com.mongodb.hibernate.junit.MongoExtension;
3131
import java.util.Set;
3232
import java.util.function.Consumer;
@@ -251,7 +251,7 @@ private void assertAffectedCollections(Set<String> expectedAffectedCollections)
251251
.containsExactlyInAnyOrderElementsOf(expectedAffectedCollections);
252252
}
253253

254-
protected static final class TranslateResultAwareDialect extends MongoDialect {
254+
protected static final class TranslateResultAwareDialect extends TestMongoDialect {
255255
private AbstractJdbcOperationQuery capturedTranslateResult;
256256

257257
public TranslateResultAwareDialect(DialectResolutionInfo info) {

src/integrationTest/java/com/mongodb/hibernate/query/select/LimitOffsetFetchClauseIntegrationTests.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,9 @@
2323
import static org.hibernate.cfg.AvailableSettings.QUERY_PLAN_CACHE_ENABLED;
2424
import static org.junit.jupiter.params.provider.EnumSource.Mode.EXCLUDE;
2525

26-
import com.mongodb.hibernate.dialect.MongoDialect;
2726
import com.mongodb.hibernate.internal.FeatureNotSupportedException;
2827
import com.mongodb.hibernate.internal.MongoConstants;
28+
import com.mongodb.hibernate.internal.dialect.TestMongoDialect;
2929
import com.mongodb.hibernate.query.AbstractQueryIntegrationTests;
3030
import com.mongodb.hibernate.query.Book;
3131
import java.util.Arrays;
@@ -625,7 +625,7 @@ private void setQueryOptionsAndQuery(
625625
* the query plan cache is hit, not whether {@link SqlAstTranslator} is reused afterwards (e.g., incompatible
626626
* {@link org.hibernate.query.spi.QueryOptions QueryOptions}s will end up with new translator bing created).
627627
*/
628-
protected static final class TranslatingCacheTestingDialect extends MongoDialect {
628+
protected static final class TranslatingCacheTestingDialect extends TestMongoDialect {
629629
private final AtomicInteger selectTranslatingCounter = new AtomicInteger();
630630

631631
public TranslatingCacheTestingDialect(DialectResolutionInfo info) {

src/main/java/com/mongodb/hibernate/cfg/MongoConfigurator.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818

1919
import com.mongodb.ConnectionString;
2020
import com.mongodb.MongoClientSettings;
21-
import com.mongodb.hibernate.internal.Sealed;
21+
import com.mongodb.hibernate.internal.cfg.MongoConfigurationBuilder;
2222
import com.mongodb.hibernate.service.spi.MongoConfigurationContributor;
2323
import java.util.Map;
2424
import java.util.function.Consumer;
@@ -74,8 +74,7 @@
7474
*
7575
* @see MongoConfigurationContributor
7676
*/
77-
@Sealed
78-
public interface MongoConfigurator {
77+
public sealed interface MongoConfigurator permits MongoConfigurationBuilder {
7978
/**
8079
* Configures {@link MongoClientSettings}.
8180
*

src/main/java/com/mongodb/hibernate/dialect/MongoDialect.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@
2020
import static java.lang.String.format;
2121

2222
import com.mongodb.hibernate.internal.FeatureNotSupportedException;
23-
import com.mongodb.hibernate.internal.Sealed;
2423
import com.mongodb.hibernate.internal.dialect.MongoAggregateSupport;
24+
import com.mongodb.hibernate.internal.dialect.TestMongoDialect;
2525
import com.mongodb.hibernate.internal.dialect.function.array.MongoArrayConstructorFunction;
2626
import com.mongodb.hibernate.internal.dialect.function.array.MongoArrayContainsFunction;
2727
import com.mongodb.hibernate.internal.dialect.function.array.MongoArrayIncludesFunction;
@@ -152,8 +152,7 @@
152152
* href="https://docs.jboss.org/hibernate/orm/6.6/userguide/html_single/Hibernate_User_Guide.html#hql-exp-functions">HQL
153153
* functions</a> see {@link #initializeFunctionRegistry(FunctionContributions)}.
154154
*/
155-
@Sealed
156-
public class MongoDialect extends Dialect {
155+
public sealed class MongoDialect extends Dialect permits TestMongoDialect {
157156
private static final DatabaseVersion MINIMUM_VERSION = DatabaseVersion.make(7);
158157

159158
public MongoDialect(DialectResolutionInfo info) {

src/main/java/com/mongodb/hibernate/internal/Sealed.java

Lines changed: 0 additions & 36 deletions
This file was deleted.
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
/*
2+
* Copyright 2024-present MongoDB, 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+
17+
package com.mongodb.hibernate.internal.dialect;
18+
19+
import com.mongodb.hibernate.dialect.MongoDialect;
20+
import org.hibernate.engine.jdbc.dialect.spi.DialectResolutionInfo;
21+
22+
public abstract non-sealed class TestMongoDialect extends MongoDialect {
23+
protected TestMongoDialect(DialectResolutionInfo info) {
24+
super(info);
25+
}
26+
}

src/main/java/module-info.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
/** The MongoDB Extension for Hibernate ORM module. */
2+
module com.mongodb.hibernate {
3+
requires java.naming;
4+
requires java.sql;
5+
requires jakarta.persistence;
6+
requires transitive org.hibernate.orm.core;
7+
requires org.mongodb.bson;
8+
requires transitive org.mongodb.driver.core;
9+
requires org.mongodb.driver.sync.client;
10+
requires org.jspecify;
11+
12+
exports com.mongodb.hibernate.annotations;
13+
exports com.mongodb.hibernate.cfg;
14+
exports com.mongodb.hibernate.service.spi;
15+
}

0 commit comments

Comments
 (0)