pax_global_header 0000666 0000000 0000000 00000000064 13172023323 0014506 g ustar 00root root 0000000 0000000 52 comment=afdf86c7c09f263cb64fed3fd2e158e7e3ccb424
modulator-modulator-1.0/ 0000775 0000000 0000000 00000000000 13172023323 0015360 5 ustar 00root root 0000000 0000000 modulator-modulator-1.0/pom.xml 0000664 0000000 0000000 00000003324 13172023323 0016677 0 ustar 00root root 0000000 0000000
4.0.0
com.headius
modulator
1.0
org.sonatype.oss
oss-parent
7
The Apache Software License, Version 2.0
http://www.apache.org/licenses/LICENSE-2.0.txt
repo
scm:git:https://github.com/headius/modulator.git
scm:git:git@github.com:headius/modulator.git
https://github.com/headius/modulator
headius
Charles Nutter
headius@headius.com
maven-compiler-plugin
3.7.0
1.6
1.6
maven-javadoc-plugin
3.0.0-M1
modulator-modulator-1.0/src/ 0000775 0000000 0000000 00000000000 13172023323 0016147 5 ustar 00root root 0000000 0000000 modulator-modulator-1.0/src/main/ 0000775 0000000 0000000 00000000000 13172023323 0017073 5 ustar 00root root 0000000 0000000 modulator-modulator-1.0/src/main/java/ 0000775 0000000 0000000 00000000000 13172023323 0020014 5 ustar 00root root 0000000 0000000 modulator-modulator-1.0/src/main/java/com/ 0000775 0000000 0000000 00000000000 13172023323 0020572 5 ustar 00root root 0000000 0000000 modulator-modulator-1.0/src/main/java/com/headius/ 0000775 0000000 0000000 00000000000 13172023323 0022214 5 ustar 00root root 0000000 0000000 modulator-modulator-1.0/src/main/java/com/headius/modulator/ 0000775 0000000 0000000 00000000000 13172023323 0024222 5 ustar 00root root 0000000 0000000 modulator-modulator-1.0/src/main/java/com/headius/modulator/Modulator.java 0000664 0000000 0000000 00000002571 13172023323 0027040 0 ustar 00root root 0000000 0000000 package com.headius.modulator;
import com.headius.modulator.impl.Module9;
import com.headius.modulator.impl.ModuleDummy;
import java.lang.reflect.AccessibleObject;
import java.lang.reflect.Member;
/**
* Created by headius on 10/18/17.
*/
public class Modulator {
public static Module getModule(Class cls) {
if (JAVA_NINE) {
return new Module9(cls.getModule());
}
return new ModuleDummy();
}
public static boolean trySetAccessible(T accessibleMember) {
return trySetAccessible(accessibleMember.getDeclaringClass(), accessibleMember);
}
private static boolean trySetAccessible(Class> declaringClass, AccessibleObject accessibleObject) {
if (accessibleObject.isAccessible()) return true;
Module module = getModule(declaringClass);
try {
if (module.isOpen(declaringClass.getPackage().getName())) {
accessibleObject.setAccessible(true);
return true;
}
return false;
} catch (Exception e) {
return false;
}
}
private static final boolean JAVA_NINE;
static {
boolean j9;
try {
Class.forName("java.lang.Module");
j9 = true;
} catch (Exception e) {
j9 = false;
}
JAVA_NINE = j9;
}
}
modulator-modulator-1.0/src/main/java/com/headius/modulator/Module.java 0000664 0000000 0000000 00000000175 13172023323 0026315 0 ustar 00root root 0000000 0000000 package com.headius.modulator;
import java.lang.reflect.Method;
public interface Module {
boolean isOpen(String pn);
}
modulator-modulator-1.0/src/main/java/com/headius/modulator/impl/ 0000775 0000000 0000000 00000000000 13172023323 0025163 5 ustar 00root root 0000000 0000000 modulator-modulator-1.0/src/main/java/com/headius/modulator/impl/Module9.java 0000664 0000000 0000000 00000000537 13172023323 0027351 0 ustar 00root root 0000000 0000000 package com.headius.modulator.impl;
/**
* Created by headius on 10/18/17.
*/
public class Module9 implements com.headius.modulator.Module {
private final java.lang.Module module;
public Module9(java.lang.Module module) {
this.module = module;
}
public boolean isOpen(String pn) {
return module.isOpen(pn);
}
}
modulator-modulator-1.0/src/main/java/com/headius/modulator/impl/ModuleDummy.java 0000664 0000000 0000000 00000000347 13172023323 0030273 0 ustar 00root root 0000000 0000000 package com.headius.modulator.impl;
import com.headius.modulator.Module;
/**
* Created by headius on 10/18/17.
*/
public class ModuleDummy implements Module {
public boolean isOpen(String pn) {
return true;
}
}