Skip to content

Commit 0e67e04

Browse files
author
jossonsmith
committed
Fixed bug that the classes of referenced cross projects are not calculated correctly:
1. Different projects' classes may be mixed together 2. *.j2x is not correctly detected 3. Main project's ignored classes is not correctly ignored
1 parent 410a834 commit 0e67e04

File tree

6 files changed

+47
-66
lines changed

6 files changed

+47
-66
lines changed

sources/net.sf.j2s.ui/src/net/sf/j2s/ui/classpath/CompositeResources.java

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -279,9 +279,6 @@ public boolean accept(File pathname) {
279279
}
280280
for (Iterator iter = resources.iterator(); iter.hasNext();) {
281281
Resource res = (Resource) iter.next();
282-
if (!J2SCyclicProjectUtils.visit(res)) {
283-
continue;
284-
}
285282
if (res instanceof CompositeResources) {
286283
CompositeResources c = (CompositeResources) res;
287284
buf.append(c.toJ2XString());
@@ -290,12 +287,12 @@ public boolean accept(File pathname) {
290287
}
291288
for (Iterator iter = resources.iterator(); iter.hasNext();) {
292289
Resource res = (Resource) iter.next();
293-
if (!J2SCyclicProjectUtils.visit(res)) {
294-
continue;
295-
}
296290
if (res instanceof ContactedClasses) {
291+
if (!J2SCyclicProjectUtils.visit(res)) {
292+
continue;
293+
}
297294
ContactedClasses unit = (ContactedClasses) res;
298-
buf.append(unit.getAbsoluteFile().getAbsolutePath());
295+
buf.append(unit.toJ2XString());
299296
buf.append(',');
300297
}
301298
}
@@ -378,21 +375,21 @@ public String ignoredClassesString() {
378375
}
379376
for (Iterator iter = resources.iterator(); iter.hasNext();) {
380377
Resource res = (Resource) iter.next();
381-
if (!J2SCyclicProjectUtils.visit(res)) {
382-
continue;
383-
}
384378
if (res instanceof CompositeResources) {
379+
if (!J2SCyclicProjectUtils.visit(res)) {
380+
continue;
381+
}
385382
CompositeResources c = (CompositeResources) res;
386383
buf.append(c.ignoredClassesString());
387384
buf.append(',');
388385
}
389386
}
390387
for (Iterator iter = abandonedResources.iterator(); iter.hasNext();) {
391388
Resource res = (Resource) iter.next();
392-
if (!J2SCyclicProjectUtils.visit(res)) {
393-
continue;
394-
}
395389
if (res instanceof UnitClass) {
390+
if (!J2SCyclicProjectUtils.visit(res)) {
391+
continue;
392+
}
396393
UnitClass unit = (UnitClass) res;
397394
buf.append(unit.getClassName());
398395
buf.append(',');

sources/net.sf.j2s.ui/src/net/sf/j2s/ui/launching/IJ2SLauchingConfiguration.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@
22

33
public interface IJ2SLauchingConfiguration {
44

5-
public static final String RUN_IN_BACKGROUND = "run.in.background";
6-
public static final String INNER_CONSOLE = "inner.console";
75
public static final String FAST_VIEW_J2S_CONSOLE = "fast.view.j2s.console";
86
public static final String MAXIMIZE_J2S_CONSOLE = "maximize.j2s.console";
97

sources/net.sf.j2s.ui/src/net/sf/j2s/ui/launching/J2SConsoleOptionsTab.java

Lines changed: 0 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,6 @@
1818

1919
public class J2SConsoleOptionsTab extends AbstractLaunchConfigurationTab {
2020

21-
private Button btnBackground;
22-
23-
private Button btnInnerConsole;
24-
2521
private Button btnFastView;
2622

2723
private Button btnMaximize;
@@ -50,24 +46,6 @@ public void createControl(Composite parent) {
5046
String controlName = "Console UI Options";
5147
group.setText(controlName);
5248

53-
btnBackground = new Button(group, SWT.CHECK);
54-
btnBackground.setText("Run in background");
55-
btnBackground.addSelectionListener(new SelectionAdapter() {
56-
public void widgetSelected(SelectionEvent e) {
57-
updateLaunchConfigurationDialog();
58-
}
59-
});
60-
btnBackground.setEnabled(false);
61-
62-
btnInnerConsole = new Button(group, SWT.CHECK);
63-
btnInnerConsole.setText("Contains inner console");
64-
btnInnerConsole.addSelectionListener(new SelectionAdapter() {
65-
public void widgetSelected(SelectionEvent e) {
66-
updateLaunchConfigurationDialog();
67-
}
68-
});
69-
btnInnerConsole.setEnabled(false);
70-
7149
btnFastView = new Button(group, SWT.CHECK);
7250
btnFastView.setText("Make J2S console as fast view automatically");
7351
btnFastView.addSelectionListener(new SelectionAdapter() {
@@ -86,10 +64,6 @@ public void widgetSelected(SelectionEvent e) {
8664
}
8765

8866
public void setDefaults(ILaunchConfigurationWorkingCopy configuration) {
89-
configuration.setAttribute(IJ2SLauchingConfiguration.RUN_IN_BACKGROUND,
90-
true);
91-
configuration.setAttribute(IJ2SLauchingConfiguration.INNER_CONSOLE,
92-
true);
9367
configuration.setAttribute(IJ2SLauchingConfiguration.FAST_VIEW_J2S_CONSOLE,
9468
false);
9569
configuration.setAttribute(
@@ -98,10 +72,6 @@ public void setDefaults(ILaunchConfigurationWorkingCopy configuration) {
9872

9973
public void initializeFrom(ILaunchConfiguration configuration) {
10074
try {
101-
btnBackground.setSelection(configuration.getAttribute(
102-
IJ2SLauchingConfiguration.RUN_IN_BACKGROUND, true));
103-
btnInnerConsole.setSelection(configuration.getAttribute(
104-
IJ2SLauchingConfiguration.INNER_CONSOLE, true));
10575
btnFastView.setSelection(configuration.getAttribute(
10676
IJ2SLauchingConfiguration.FAST_VIEW_J2S_CONSOLE, false));
10777
btnMaximize.setSelection(configuration.getAttribute(
@@ -112,10 +82,6 @@ public void initializeFrom(ILaunchConfiguration configuration) {
11282
}
11383

11484
public void performApply(ILaunchConfigurationWorkingCopy configuration) {
115-
configuration.setAttribute(IJ2SLauchingConfiguration.RUN_IN_BACKGROUND,
116-
btnBackground.getSelection());
117-
configuration.setAttribute(IJ2SLauchingConfiguration.INNER_CONSOLE,
118-
btnInnerConsole.getSelection());
11985
configuration.setAttribute(IJ2SLauchingConfiguration.FAST_VIEW_J2S_CONSOLE,
12086
btnFastView.getSelection());
12187
configuration.setAttribute(

sources/net.sf.j2s.ui/src/net/sf/j2s/ui/launching/J2SLaunchingUtil.java

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -305,7 +305,16 @@ private static String generateClasspathExistedClasses (
305305
IRuntimeClasspathEntry[] paths = JavaRuntime.computeUnresolvedRuntimeClasspath(configuration);
306306
Set existed = new HashSet();
307307
for (int i = 0; i < paths.length; i++) {
308-
Resource res = (Resource) paths[i];
308+
if (paths[i] instanceof UnitClass) {
309+
UnitClass unit = (UnitClass) paths[i];
310+
if (!J2SCyclicProjectUtils.visit(unit)) {
311+
continue;
312+
}
313+
buf.append(unit.getClassName());
314+
buf.append(',');
315+
}
316+
}
317+
for (int i = 0; i < paths.length; i++) {
309318
if (paths[i] instanceof CompositeResources) {
310319
CompositeResources c = (CompositeResources) paths[i];
311320
if (!existed.contains(c.getName())) {
@@ -314,14 +323,16 @@ private static String generateClasspathExistedClasses (
314323
buf.append(',');
315324
}
316325
}
317-
if (!J2SCyclicProjectUtils.visit(res)) {
326+
if (!J2SCyclicProjectUtils.visit(paths[i])) {
318327
continue;
319328
}
329+
/*
320330
if (res instanceof UnitClass) {
321331
UnitClass unit = (UnitClass) res;
322332
buf.append(unit.getClassName());
323333
buf.append(',');
324334
}
335+
*/
325336
}
326337
} else {
327338
CompositeResources fModel= new CompositeResources();
@@ -544,8 +555,6 @@ private static String generateHTML(ILaunchConfiguration configuration,
544555
StringBuffer buf = new StringBuffer();
545556
boolean useXHTMLHeader = configuration.getAttribute(
546557
IJ2SLauchingConfiguration.USE_XHTML_HEADER, true);
547-
boolean useInnerConsole = configuration.getAttribute(
548-
IJ2SLauchingConfiguration.INNER_CONSOLE, true);
549558
if (useXHTMLHeader) {
550559
buf
551560
.append("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"\r\n");
@@ -577,15 +586,15 @@ private static String generateHTML(ILaunchConfiguration configuration,
577586
buf.append("<script type=\"text/javascript\" src=\"" + j2sLibPath + "j2slib.z.js\"></script>\r\n");
578587

579588
J2SCyclicProjectUtils.emptyTracks();
580-
buf.append(generateClasspathHTML(configuration, mainType, workingDir));
589+
String extraHTML = generateClasspathHTML(configuration, mainType, workingDir);
590+
if (extraHTML.trim().length() != 0) {
591+
buf.append(extraHTML);
592+
}
581593

582594
buf.append(configuration.getAttribute(
583595
IJ2SLauchingConfiguration.TAIL_HEADER_HTML, ""));
584596
buf.append("</head>\r\n");
585597
buf.append("<body>\r\n");
586-
if (useInnerConsole) {
587-
//buf.append("<div id=\"_console_\" class=\"consolewindow\"></div>\r\n");
588-
}
589598
buf.append(configuration.getAttribute(
590599
IJ2SLauchingConfiguration.HEAD_BODY_HTML, ""));
591600

sources/net.sf.j2s.ui/src/net/sf/j2s/ui/launching/J2SUnitLaunchingUtil.java

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
import java.util.HashSet;
1111
import java.util.Properties;
1212
import java.util.Set;
13-
import net.sf.j2s.core.astvisitors.Bindings;
1413
import net.sf.j2s.core.astvisitors.DependencyASTVisitor;
1514
import net.sf.j2s.ui.classpath.CompositeResources;
1615
import net.sf.j2s.ui.classpath.ContactedClasses;
@@ -307,7 +306,16 @@ private static String generateClasspathExistedClasses (
307306
IRuntimeClasspathEntry[] paths = JavaRuntime.computeUnresolvedRuntimeClasspath(configuration);
308307
Set existed = new HashSet();
309308
for (int i = 0; i < paths.length; i++) {
310-
Resource res = (Resource) paths[i];
309+
if (paths[i] instanceof UnitClass) {
310+
UnitClass unit = (UnitClass) paths[i];
311+
if (!J2SCyclicProjectUtils.visit(unit)) {
312+
continue;
313+
}
314+
buf.append(unit.getClassName());
315+
buf.append(',');
316+
}
317+
}
318+
for (int i = 0; i < paths.length; i++) {
311319
if (paths[i] instanceof CompositeResources) {
312320
CompositeResources c = (CompositeResources) paths[i];
313321
if (!existed.contains(c.getName())) {
@@ -316,14 +324,16 @@ private static String generateClasspathExistedClasses (
316324
buf.append(',');
317325
}
318326
}
319-
if (!J2SCyclicProjectUtils.visit(res)) {
327+
if (!J2SCyclicProjectUtils.visit(paths[i])) {
320328
continue;
321329
}
330+
/*
322331
if (res instanceof UnitClass) {
323332
UnitClass unit = (UnitClass) res;
324333
buf.append(unit.getClassName());
325334
buf.append(',');
326335
}
336+
*/
327337
}
328338
} else {
329339
CompositeResources fModel= new CompositeResources();
@@ -546,8 +556,6 @@ private static String generateHTML(ILaunchConfiguration configuration,
546556
StringBuffer buf = new StringBuffer();
547557
boolean useXHTMLHeader = configuration.getAttribute(
548558
IJ2SLauchingConfiguration.USE_XHTML_HEADER, true);
549-
boolean useInnerConsole = configuration.getAttribute(
550-
IJ2SLauchingConfiguration.INNER_CONSOLE, true);
551559
if (useXHTMLHeader) {
552560
buf
553561
.append("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"\r\n");
@@ -579,15 +587,15 @@ private static String generateHTML(ILaunchConfiguration configuration,
579587
buf.append("<script type=\"text/javascript\" src=\"" + j2sLibPath + "j2slib.z.js\"></script>\r\n");
580588

581589
J2SCyclicProjectUtils.emptyTracks();
582-
buf.append(generateClasspathHTML(configuration, mainType, workingDir));
590+
String extraHTML = generateClasspathHTML(configuration, mainType, workingDir);
591+
if (extraHTML.trim().length() != 0) {
592+
buf.append(extraHTML);
593+
}
583594

584595
buf.append(configuration.getAttribute(
585596
IJ2SLauchingConfiguration.TAIL_HEADER_HTML, ""));
586597
buf.append("</head>\r\n");
587598
buf.append("<body>\r\n");
588-
if (useInnerConsole) {
589-
//buf.append("<div id=\"_console_\" class=\"consolewindow\"></div>\r\n");
590-
}
591599
buf.append(configuration.getAttribute(
592600
IJ2SLauchingConfiguration.HEAD_BODY_HTML, ""));
593601

sources/net.sf.j2s.ui/src/net/sf/j2s/ui/launching/JavaRuntime.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -304,6 +304,8 @@ public static IRuntimeClasspathEntry[] computeUnresolvedIgnoredClasses(ILaunchCo
304304
fModel.load(new ByteArrayInputStream(propStr.getBytes()));
305305
}
306306
fModel.setClasspathProperty(IRuntimeClasspathEntry.USER_CLASSES);
307+
return new IRuntimeClasspathEntry[] { fModel };
308+
/*
307309
Resource[] children = fModel.getAbandonedResources();
308310
for (int i = 0; i < children.length; i++) {
309311
children[i].setClasspathProperty(IRuntimeClasspathEntry.USER_CLASSES);
@@ -318,6 +320,7 @@ public static IRuntimeClasspathEntry[] computeUnresolvedIgnoredClasses(ILaunchCo
318320
// }
319321
}
320322
return children;
323+
*/
321324
} catch (CoreException e) {
322325
e.printStackTrace();
323326
}

0 commit comments

Comments
 (0)