Skip to content

Commit 04cb26f

Browse files
committed
make DomainPlugins package-private
We should rather extend the plugin instantiation logic to allow non-public constructors than making it public to be possibly invoked by users. Signed-off-by: Peter Gafert <[email protected]>
1 parent 7192144 commit 04cb26f

File tree

3 files changed

+6
-7
lines changed

3 files changed

+6
-7
lines changed

archunit/src/jdk9main/java/com/tngtech/archunit/core/domain/Java9DomainPlugin.java

+1-3
Original file line numberDiff line numberDiff line change
@@ -15,16 +15,14 @@
1515
*/
1616
package com.tngtech.archunit.core.domain;
1717

18-
import com.tngtech.archunit.Internal;
1918
import com.tngtech.archunit.core.InitialConfiguration;
2019
import com.tngtech.archunit.core.PluginLoader;
2120

2221
/**
2322
* Resolved via {@link PluginLoader}
2423
*/
2524
@SuppressWarnings("unused")
26-
@Internal
27-
public class Java9DomainPlugin implements DomainPlugin {
25+
class Java9DomainPlugin implements DomainPlugin {
2826
@Override
2927
public void plugInAnnotationPropertiesFormatter(InitialConfiguration<AnnotationPropertiesFormatter> propertiesFormatter) {
3028
propertiesFormatter.set(AnnotationPropertiesFormatter.configure()

archunit/src/main/java/com/tngtech/archunit/core/PluginLoader.java

+4-1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
*/
1616
package com.tngtech.archunit.core;
1717

18+
import java.lang.reflect.Constructor;
1819
import java.util.HashMap;
1920
import java.util.List;
2021
import java.util.Map;
@@ -83,7 +84,9 @@ private T create(String className) {
8384
try {
8485
Class<?> clazz = Class.forName(className);
8586
checkCompatibility(className, clazz);
86-
return (T) clazz.getConstructor().newInstance();
87+
Constructor<?> constructor = clazz.getDeclaredConstructor();
88+
constructor.setAccessible(true);
89+
return (T) constructor.newInstance();
8790
} catch (Exception e) {
8891
throw new PluginLoadingFailedException(e, "Couldn't load plugin of type %s", className);
8992
}

archunit/src/main/java/com/tngtech/archunit/core/domain/Java14DomainPlugin.java

+1-3
Original file line numberDiff line numberDiff line change
@@ -15,16 +15,14 @@
1515
*/
1616
package com.tngtech.archunit.core.domain;
1717

18-
import com.tngtech.archunit.Internal;
1918
import com.tngtech.archunit.core.InitialConfiguration;
2019
import com.tngtech.archunit.core.PluginLoader;
2120

2221
/**
2322
* Resolved via {@link PluginLoader}
2423
*/
2524
@SuppressWarnings("unused")
26-
@Internal
27-
public class Java14DomainPlugin implements DomainPlugin {
25+
class Java14DomainPlugin implements DomainPlugin {
2826
@Override
2927
public void plugInAnnotationPropertiesFormatter(InitialConfiguration<AnnotationPropertiesFormatter> propertiesFormatter) {
3028
propertiesFormatter.set(AnnotationPropertiesFormatter.configure()

0 commit comments

Comments
 (0)