50 import java.util.List;
51 import java.util.Map;
52 import java.util.function.Consumer;
53
54 import jdk.internal.jimage.decompressor.CompressedResourceHeader;
55 import jdk.internal.jimage.decompressor.StringSharingDecompressor;
56 import jdk.tools.jlink.internal.ResourcePoolManager;
57 import jdk.tools.jlink.internal.StringTable;
58 import jdk.tools.jlink.internal.plugins.StringSharingPlugin;
59 import jdk.tools.jlink.plugin.ResourcePoolEntry;
60 import jdk.tools.jlink.plugin.ResourcePool;
61 import jdk.tools.jlink.plugin.Plugin;
62 import tests.Helper;
63 import tests.JImageValidator;
64
65 public class StringSharingPluginTest {
66
67 private static int strID = 1;
68
69 public static void main(String[] args) throws Exception {
70 // JPRT not yet ready for jmods
71 Helper helper = Helper.newHelper();
72 if (helper == null) {
73 System.err.println("Test not run, NO jmods directory");
74 return;
75 }
76
77 List<String> classes = Arrays.asList("toto.Main", "toto.com.foo.bar.X");
78 Path compiledClasses = helper.generateModuleCompiledClasses(
79 helper.getJmodSrcDir(), helper.getJmodClassesDir(), "composite2", classes);
80
81 Map<String, Integer> map = new HashMap<>();
82 Map<Integer, String> reversedMap = new HashMap<>();
83
84 ResourcePoolManager resources = new ResourcePoolManager(ByteOrder.nativeOrder(), new StringTable() {
85 @Override
86 public int addString(String str) {
87 Integer id = map.get(str);
88 if (id == null) {
89 id = strID;
90 map.put(str, id);
91 reversedMap.put(id, str);
92 strID += 1;
93 }
94 return id;
95 }
|
50 import java.util.List;
51 import java.util.Map;
52 import java.util.function.Consumer;
53
54 import jdk.internal.jimage.decompressor.CompressedResourceHeader;
55 import jdk.internal.jimage.decompressor.StringSharingDecompressor;
56 import jdk.tools.jlink.internal.ResourcePoolManager;
57 import jdk.tools.jlink.internal.StringTable;
58 import jdk.tools.jlink.internal.plugins.StringSharingPlugin;
59 import jdk.tools.jlink.plugin.ResourcePoolEntry;
60 import jdk.tools.jlink.plugin.ResourcePool;
61 import jdk.tools.jlink.plugin.Plugin;
62 import tests.Helper;
63 import tests.JImageValidator;
64
65 public class StringSharingPluginTest {
66
67 private static int strID = 1;
68
69 public static void main(String[] args) throws Exception {
70 Helper helper = Helper.newHelper();
71
72 List<String> classes = Arrays.asList("toto.Main", "toto.com.foo.bar.X");
73 Path compiledClasses = helper.generateModuleCompiledClasses(
74 helper.getJmodSrcDir(), helper.getJmodClassesDir(), "composite2", classes);
75
76 Map<String, Integer> map = new HashMap<>();
77 Map<Integer, String> reversedMap = new HashMap<>();
78
79 ResourcePoolManager resources = new ResourcePoolManager(ByteOrder.nativeOrder(), new StringTable() {
80 @Override
81 public int addString(String str) {
82 Integer id = map.get(str);
83 if (id == null) {
84 id = strID;
85 map.put(str, id);
86 reversedMap.put(id, str);
87 strID += 1;
88 }
89 return id;
90 }
|