pax_global_header00006660000000000000000000000064131720233230014506gustar00rootroot0000000000000052 comment=afdf86c7c09f263cb64fed3fd2e158e7e3ccb424 modulator-modulator-1.0/000077500000000000000000000000001317202332300153605ustar00rootroot00000000000000modulator-modulator-1.0/pom.xml000066400000000000000000000033241317202332300166770ustar00rootroot00000000000000 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/000077500000000000000000000000001317202332300161475ustar00rootroot00000000000000modulator-modulator-1.0/src/main/000077500000000000000000000000001317202332300170735ustar00rootroot00000000000000modulator-modulator-1.0/src/main/java/000077500000000000000000000000001317202332300200145ustar00rootroot00000000000000modulator-modulator-1.0/src/main/java/com/000077500000000000000000000000001317202332300205725ustar00rootroot00000000000000modulator-modulator-1.0/src/main/java/com/headius/000077500000000000000000000000001317202332300222145ustar00rootroot00000000000000modulator-modulator-1.0/src/main/java/com/headius/modulator/000077500000000000000000000000001317202332300242225ustar00rootroot00000000000000modulator-modulator-1.0/src/main/java/com/headius/modulator/Modulator.java000066400000000000000000000025711317202332300270400ustar00rootroot00000000000000package 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.java000066400000000000000000000001751317202332300263150ustar00rootroot00000000000000package 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/000077500000000000000000000000001317202332300251635ustar00rootroot00000000000000modulator-modulator-1.0/src/main/java/com/headius/modulator/impl/Module9.java000066400000000000000000000005371317202332300273510ustar00rootroot00000000000000package 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.java000066400000000000000000000003471317202332300302730ustar00rootroot00000000000000package 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; } }