Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
View | Details | Raw Unified | Return to bug 489907
Collapse All | Expand All

(-)a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/ModuleBuilderTests.java (-1 / +19 lines)
Lines 41-47 Link Here
41
	}
41
	}
42
42
43
	static {
43
	static {
44
//		 TESTS_NAMES = new String[] { "test019" };
44
//		 TESTS_NAMES = new String[] { "testHugeModuleInfo" };
45
	}
45
	}
46
	private static boolean isJRE9 = false;
46
	private static boolean isJRE9 = false;
47
	public static Test suite() {
47
	public static Test suite() {
Lines 728-733 Link Here
728
			 JavaCore.setOptions(javaCoreOptions);
728
			 JavaCore.setOptions(javaCoreOptions);
729
		}
729
		}
730
	}
730
	}
731
	public void testHugeModuleInfo() throws CoreException, IOException {
732
		if (!isJRE9) return;
733
		Hashtable<String, String> javaCoreOptions = JavaCore.getOptions();
734
		try {
735
			IJavaProject project = setUpJavaProject("ConvertToModule", "1.9");
736
			if (!project.getOption("org.eclipse.jdt.core.compiler.compliance", true).equals("1.9")) {
737
				return;
738
			}
739
			project.getProject().build(IncrementalProjectBuilder.FULL_BUILD, null);
740
			moveFile("ConvertToModule/module-info.java", "ConvertToModule/jdt.test/module-info.java");
741
			waitForManualRefresh();
742
			project.getProject().build(IncrementalProjectBuilder.FULL_BUILD, null);
743
		} finally {
744
			this.deleteProject("ConvertToModule");
745
			 JavaCore.setOptions(javaCoreOptions);
746
		}
747
	}
748
731
	public void tearDownSuite() throws Exception {
749
	public void tearDownSuite() throws Exception {
732
		super.tearDownSuite();
750
		super.tearDownSuite();
733
		deleteProject("P1");
751
		deleteProject("P1");
(-)a/org.eclipse.jdt.core.tests.model/workspace/ConvertToModule/module-info.java (+113 lines)
Added Link Here
1
/**
2
 * @author jayaprakash
3
 *
4
 */
5
module eclipse.jdt.ui { 
6
	exports org.eclipse.jdt.internal.corexts;
7
	exports org.eclipse.jdt.internal.corext.buildpath;
8
	exports org.eclipse.jdt.internal.corext.callhierarchy;
9
	exports org.eclipse.jdt.internal.corext.codemanipulation;
10
	exports org.eclipse.jdt.internal.corext.codemanipulation.tostringgeneration;
11
	exports org.eclipse.jdt.internal.corext.dom;
12
	exports org.eclipse.jdt.internal.corext.dom.fragments;
13
	exports org.eclipse.jdt.internal.corext.fix;
14
	exports org.eclipse.jdt.internal.corext.javadoc;
15
	exports org.eclipse.jdt.internal.corext.refactoring;
16
	exports org.eclipse.jdt.internal.corext.refactoring.base;
17
	exports org.eclipse.jdt.internal.corext.refactoring.binary;
18
	exports org.eclipse.jdt.internal.corext.refactoring.changes;
19
	exports org.eclipse.jdt.internal.corext.refactoring.code;
20
	exports org.eclipse.jdt.internal.corext.refactoring.code.flow;
21
	exports org.eclipse.jdt.internal.corext.refactoring.delegates;
22
	exports org.eclipse.jdt.internal.corext.refactoring.generics;
23
	exports org.eclipse.jdt.internal.corext.refactoring.nls;
24
	exports org.eclipse.jdt.internal.corext.refactoring.nls.changes;
25
	exports org.eclipse.jdt.internal.corext.refactoring.participants;
26
	exports org.eclipse.jdt.internal.corext.refactoring.rename;
27
	exports org.eclipse.jdt.internal.corext.refactoring.reorg;
28
	exports org.eclipse.jdt.internal.corext.refactoring.scripting;
29
	exports org.eclipse.jdt.internal.corext.refactoring.sef;
30
	exports org.eclipse.jdt.internal.corext.refactoring.structure;
31
	exports org.eclipse.jdt.internal.corext.refactoring.structure.constraints;
32
	exports org.eclipse.jdt.internal.corext.refactoring.surround;
33
	exports org.eclipse.jdt.internal.corext.refactoring.tagging;
34
	exports org.eclipse.jdt.internal.corext.refactoring.typeconstraints;
35
	exports org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types;
36
	exports org.eclipse.jdt.internal.corext.refactoring.typeconstraints.typesets;
37
	exports org.eclipse.jdt.internal.corext.refactoring.typeconstraints2;
38
	exports org.eclipse.jdt.internal.corext.refactoring.util;
39
	exports org.eclipse.jdt.internal.corext.template.java;
40
	exports org.eclipse.jdt.internal.corext.util;
41
	exports org.eclipse.jdt.internal.jarinjarloader;
42
	exports org.eclipse.jdt.internal.ui;
43
	exports org.eclipse.jdt.internal.ui.actions;
44
	exports org.eclipse.jdt.internal.ui.browsing;
45
	exports org.eclipse.jdt.internal.ui.callhierarchy;
46
	exports org.eclipse.jdt.internal.ui.commands;
47
	exports org.eclipse.jdt.internal.ui.compare;
48
	exports org.eclipse.jdt.internal.ui.dialogs;
49
	exports org.eclipse.jdt.internal.ui.dnd;
50
	exports org.eclipse.jdt.internal.ui.filters;
51
	exports org.eclipse.jdt.internal.ui.fix;
52
	exports org.eclipse.jdt.internal.ui.infoviews;
53
	exports org.eclipse.jdt.internal.ui.jarimport;
54
	exports org.eclipse.jdt.internal.ui.jarpackager;
55
	exports org.eclipse.jdt.internal.ui.jarpackagerfat;
56
	exports org.eclipse.jdt.internal.ui.javadocexport;
57
	exports org.eclipse.jdt.internal.ui.javaeditor;
58
	exports org.eclipse.jdt.internal.ui.javaeditor.breadcrumb;
59
	exports org.eclipse.jdt.internal.ui.javaeditor.saveparticipant;
60
	exports org.eclipse.jdt.internal.ui.javaeditor.selectionactions;
61
	exports org.eclipse.jdt.internal.ui.model;
62
	exports org.eclipse.jdt.internal.ui.navigator;
63
	exports org.eclipse.jdt.internal.ui.packageview;
64
	exports org.eclipse.jdt.internal.ui.preferences;
65
	exports org.eclipse.jdt.internal.ui.preferences.cleanup;
66
	exports org.eclipse.jdt.internal.ui.preferences.formatter;
67
	exports org.eclipse.jdt.internal.ui.propertiesfileeditor;
68
	exports org.eclipse.jdt.internal.ui.refactoring;
69
	exports org.eclipse.jdt.internal.ui.refactoring.actions;
70
	exports org.eclipse.jdt.internal.ui.refactoring.binary;
71
	exports org.eclipse.jdt.internal.ui.refactoring.code;
72
	exports org.eclipse.jdt.internal.ui.refactoring.contentassist;
73
	exports org.eclipse.jdt.internal.ui.refactoring.nls;
74
	exports org.eclipse.jdt.internal.ui.refactoring.nls.search;
75
	exports org.eclipse.jdt.internal.ui.refactoring.reorg;
76
	exports org.eclipse.jdt.internal.ui.refactoring.sef;
77
	exports org.eclipse.jdt.internal.ui.search;
78
	exports org.eclipse.jdt.internal.ui.text;
79
	exports org.eclipse.jdt.internal.ui.text.correction;
80
	exports org.eclipse.jdt.internal.ui.text.correction.proposals;
81
	exports org.eclipse.jdt.internal.ui.text.folding;
82
	exports org.eclipse.jdt.internal.ui.text.java;
83
	exports org.eclipse.jdt.internal.ui.text.java.hover;
84
	exports org.eclipse.jdt.internal.ui.text.javadoc;
85
	exports org.eclipse.jdt.internal.ui.text.spelling;
86
	exports org.eclipse.jdt.internal.ui.text.spelling.engine;
87
	exports org.eclipse.jdt.internal.ui.text.template.contentassist;
88
	exports org.eclipse.jdt.internal.ui.text.template.preferences;
89
	exports org.eclipse.jdt.internal.ui.typehierarchy;
90
	exports org.eclipse.jdt.internal.ui.util;
91
	exports org.eclipse.jdt.internal.ui.viewsupport;
92
	exports org.eclipse.jdt.internal.ui.wizards;
93
	exports org.eclipse.jdt.internal.ui.wizards.buildpaths;
94
	exports org.eclipse.jdt.internal.ui.wizards.buildpaths.newsourcepage;
95
	exports org.eclipse.jdt.internal.ui.wizards.dialogfields;
96
	exports org.eclipse.jdt.internal.ui.workingsets;
97
	exports org.eclipse.jdt.ui;
98
	exports org.eclipse.jdt.ui.actions;
99
	exports org.eclipse.jdt.ui.cleanup;
100
	exports org.eclipse.jdt.ui.dialogs;
101
	exports org.eclipse.jdt.ui.jarpackager;
102
	exports org.eclipse.jdt.ui.refactoring;
103
	exports org.eclipse.jdt.ui.search;
104
	exports org.eclipse.jdt.ui.text;
105
	exports org.eclipse.jdt.ui.text.folding;
106
	exports org.eclipse.jdt.ui.text.java;
107
	exports org.eclipse.jdt.ui.text.java.correction;
108
	exports org.eclipse.jdt.ui.text.java.hover;
109
	exports org.eclipse.jdt.ui.wizards;
110
111
	requires java.base;
112
	requires java.xml;
113
}
(-)a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ClassFile.java (+16 lines)
Lines 2592-2597 Link Here
2592
		int requiresCountOffset = localContentsOffset;
2592
		int requiresCountOffset = localContentsOffset;
2593
		localContentsOffset += 2;
2593
		localContentsOffset += 2;
2594
		boolean javabaseSeen = false;
2594
		boolean javabaseSeen = false;
2595
		int requiredBytes = ((module.requiresCount + 1) * 4) + 2; // The +1 is for the implicit java.base, just in case.
2596
		if (localContentsOffset + requiredBytes > this.contents.length) {
2597
			resizeContents(requiredBytes);
2598
		}		
2595
		for(int i = 0; i < module.requiresCount; i++) {
2599
		for(int i = 0; i < module.requiresCount; i++) {
2596
			ModuleReference ref = module.requires[i];
2600
			ModuleReference ref = module.requires[i];
2597
			if (CharOperation.equals(ref.moduleName, TypeConstants.JAVA_BASE)) {
2601
			if (CharOperation.equals(ref.moduleName, TypeConstants.JAVA_BASE)) {
Lines 2626-2631 Link Here
2626
		 *     u2 exports_to_index[exports_to_count];
2630
		 *     u2 exports_to_index[exports_to_count];
2627
		 * } exports[exports_count];
2631
		 * } exports[exports_count];
2628
		 */
2632
		 */
2633
		requiredBytes = (module.exportsCount * 6) + 2;
2634
		if (localContentsOffset + requiredBytes > this.contents.length) {
2635
			resizeContents(requiredBytes);
2636
		}
2629
		this.contents[localContentsOffset++] = (byte) (module.exportsCount >> 8);
2637
		this.contents[localContentsOffset++] = (byte) (module.exportsCount >> 8);
2630
		this.contents[localContentsOffset++] = (byte) module.exportsCount;
2638
		this.contents[localContentsOffset++] = (byte) module.exportsCount;
2631
		for (int i = 0; i < module.exportsCount; i++) {
2639
		for (int i = 0; i < module.exportsCount; i++) {
Lines 2654-2659 Link Here
2654
		 * u2 uses_count;
2662
		 * u2 uses_count;
2655
		 * u2 uses_index[uses_count];
2663
		 * u2 uses_index[uses_count];
2656
		 */
2664
		 */
2665
		requiredBytes = (module.usesCount * 2) + 2;
2666
		if (localContentsOffset + requiredBytes > this.contents.length) {
2667
			resizeContents(requiredBytes);
2668
		}
2657
		this.contents[localContentsOffset++] = (byte) (module.usesCount >> 8);
2669
		this.contents[localContentsOffset++] = (byte) (module.usesCount >> 8);
2658
		this.contents[localContentsOffset++] = (byte) module.usesCount;
2670
		this.contents[localContentsOffset++] = (byte) module.usesCount;
2659
		for(int i = 0; i < module.usesCount; i++) {
2671
		for(int i = 0; i < module.usesCount; i++) {
Lines 2671-2676 Link Here
2671
		 *     u2 with_index;
2683
		 *     u2 with_index;
2672
		 * } provides[provides_count];
2684
		 * } provides[provides_count];
2673
		 */
2685
		 */
2686
		requiredBytes = (module.servicesCount * 4) + 2;
2687
		if (localContentsOffset + requiredBytes > this.contents.length) {
2688
			resizeContents(requiredBytes);
2689
		}
2674
		this.contents[localContentsOffset++] = (byte) (module.servicesCount >> 8);
2690
		this.contents[localContentsOffset++] = (byte) (module.servicesCount >> 8);
2675
		this.contents[localContentsOffset++] = (byte) module.servicesCount;
2691
		this.contents[localContentsOffset++] = (byte) module.servicesCount;
2676
		for(int i = 0; i < module.servicesCount; i++) {
2692
		for(int i = 0; i < module.servicesCount; i++) {

Return to bug 489907