You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@netbeans.apache.org by jl...@apache.org on 2017/10/04 19:41:15 UTC
[03/13] incubator-netbeans git commit: Work in progress: an
experiment on using javac from JDK for source code modeling.
http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/java.source.nbjavac/test/unit/src/org/netbeans/modules/java/source/nbjavac/indexing/TreeLoaderTest.java
----------------------------------------------------------------------
diff --git a/java.source.nbjavac/test/unit/src/org/netbeans/modules/java/source/nbjavac/indexing/TreeLoaderTest.java b/java.source.nbjavac/test/unit/src/org/netbeans/modules/java/source/nbjavac/indexing/TreeLoaderTest.java
new file mode 100644
index 0000000..8c114e5
--- /dev/null
+++ b/java.source.nbjavac/test/unit/src/org/netbeans/modules/java/source/nbjavac/indexing/TreeLoaderTest.java
@@ -0,0 +1,94 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.netbeans.modules.java.source.nbjavac.indexing;
+
+import java.io.File;
+import java.io.IOException;
+import javax.lang.model.element.ExecutableElement;
+import javax.lang.model.element.TypeElement;
+import org.netbeans.api.java.source.CompilationController;
+import org.netbeans.api.java.source.JavaSource;
+import org.netbeans.api.java.source.JavaSource.Phase;
+import org.netbeans.api.java.source.SourceUtilsTestUtil;
+import org.netbeans.api.java.source.Task;
+import org.netbeans.api.java.source.TestUtilities;
+import org.netbeans.junit.NbTestCase;
+import org.openide.filesystems.FileObject;
+import org.openide.filesystems.FileUtil;
+
+/**
+ *
+ * @author lahvac
+ */
+public class TreeLoaderTest extends NbTestCase {
+
+ public TreeLoaderTest(String name) {
+ super(name);
+ }
+
+ @Override
+ protected void setUp() throws Exception {
+ clearWorkDir();
+ SourceUtilsTestUtil.prepareTest(new String[0], new Object[0]);
+ }
+
+ public void test171340() throws Exception {
+ prepareTest();
+
+ FileObject src1 = FileUtil.createData(sourceRoot, "test/Test1.java");
+ FileObject src2 = FileUtil.createData(sourceRoot, "test/Test2.java");
+
+ TestUtilities.copyStringToFile(src1,
+ "package test;\n" +
+ "public class Test1 {}");
+ TestUtilities.copyStringToFile(src2,
+ "package test;\n" +
+ "public class Test2 {" +
+ " public void test() {}" +
+ "}");
+ SourceUtilsTestUtil.compileRecursively(sourceRoot);
+ JavaSource javaSource = JavaSource.forFileObject(src1);
+ javaSource.runUserActionTask(new Task<CompilationController>() {
+ public void run(CompilationController controller) throws IOException {
+ controller.toPhase(Phase.RESOLVED);
+ TypeElement typeElement = controller.getElements().getTypeElement("test.Test2");
+ assertNotNull(typeElement);
+ ExecutableElement method = (ExecutableElement) typeElement.getEnclosedElements().get(1);
+ assertNotNull(controller.getTrees().getPath(method));
+ }
+ }, true);
+ }
+
+ private FileObject sourceRoot;
+
+ private void prepareTest() throws Exception {
+ File work = getWorkDir();
+ FileObject workFO = FileUtil.toFileObject(work);
+
+ assertNotNull(workFO);
+
+ sourceRoot = workFO.createFolder("src");
+ FileObject buildRoot = workFO.createFolder("build");
+ FileObject cache = workFO.createFolder("cache");
+
+ SourceUtilsTestUtil.prepareTest(sourceRoot, buildRoot, cache);
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/java.source.queriesimpl/src/org/netbeans/modules/java/source/queriesimpl/JavaOperationsImpl.java
----------------------------------------------------------------------
diff --git a/java.source.queriesimpl/src/org/netbeans/modules/java/source/queriesimpl/JavaOperationsImpl.java b/java.source.queriesimpl/src/org/netbeans/modules/java/source/queriesimpl/JavaOperationsImpl.java
index cd93972..272da11 100644
--- a/java.source.queriesimpl/src/org/netbeans/modules/java/source/queriesimpl/JavaOperationsImpl.java
+++ b/java.source.queriesimpl/src/org/netbeans/modules/java/source/queriesimpl/JavaOperationsImpl.java
@@ -20,7 +20,7 @@ package org.netbeans.modules.java.source.queriesimpl;
import com.sun.source.tree.*;
import com.sun.source.util.TreePath;
-import com.sun.source.util.TreePathScanner;
+import org.netbeans.api.java.source.support.ErrorAwareTreePathScanner;
import com.sun.source.util.Trees;
import java.io.IOException;
import java.util.ArrayList;
@@ -340,7 +340,7 @@ class JavaOperationsImpl<T> implements ModelOperations {
oldVarTree.getInitializer());
wcopy.rewrite(oldVarTree, newVarTree);
final VariableElement fieldF = field;
- final TreePathScanner<Void,Void> scanner = new TreePathScanner<Void, Void>(){
+ final ErrorAwareTreePathScanner<Void,Void> scanner = new ErrorAwareTreePathScanner<Void, Void>(){
@Override
public Void visitIdentifier(IdentifierTree node, Void p) {
super.visitIdentifier(node, p);
@@ -397,7 +397,7 @@ class JavaOperationsImpl<T> implements ModelOperations {
final Trees trees = wcopy.getTrees();
final GeneratorUtilities utils = GeneratorUtilities.get(wcopy);
final List<Tree> toImport = new ArrayList<Tree>();
- final TreePathScanner<Void,Void> scanner = new TreePathScanner<Void, Void>(){
+ final ErrorAwareTreePathScanner<Void,Void> scanner = new ErrorAwareTreePathScanner<Void, Void>(){
@Override
public Void scan(Tree node, Void p) {
final int start = (int) trees.getSourcePositions().getStartPosition(cu, node);
@@ -518,7 +518,7 @@ nextM: for (ExecutableElement me : ElementFilter.methodsIn(te.getEnclosedElemen
throw new QueryException(ioe);
}
final Trees trees = control.getTrees();
- final TreePathScanner<TreePath,Void> visitor = new TreePathScanner<TreePath, Void>() {
+ final ErrorAwareTreePathScanner<TreePath,Void> visitor = new ErrorAwareTreePathScanner<TreePath, Void>() {
@Override
public TreePath visitClass(ClassTree node, Void p) {
final Element el = trees.getElement(getCurrentPath());
http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/java.source/src/org/netbeans/api/java/source/UiUtils.java
----------------------------------------------------------------------
diff --git a/java.source/src/org/netbeans/api/java/source/UiUtils.java b/java.source/src/org/netbeans/api/java/source/UiUtils.java
index 3f8db8d..7751f10 100644
--- a/java.source/src/org/netbeans/api/java/source/UiUtils.java
+++ b/java.source/src/org/netbeans/api/java/source/UiUtils.java
@@ -24,7 +24,7 @@ import com.sun.source.tree.MethodTree;
import com.sun.source.tree.Tree;
import com.sun.source.tree.VariableTree;
import com.sun.source.util.TreePath;
-import com.sun.source.util.TreePathScanner;
+import org.netbeans.api.java.source.support.ErrorAwareTreePathScanner;
import com.sun.tools.javac.util.Context;
import java.io.IOException;
import java.util.Collection;
@@ -435,7 +435,7 @@ public final class UiUtils {
// Private innerclasses ----------------------------------------------------
- private static class FindDeclarationVisitor extends TreePathScanner<Void, Void> {
+ private static class FindDeclarationVisitor extends ErrorAwareTreePathScanner<Void, Void> {
private Element element;
private Tree declTree;
http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/java.source/src/org/netbeans/modules/java/JavaNode.java
----------------------------------------------------------------------
diff --git a/java.source/src/org/netbeans/modules/java/JavaNode.java b/java.source/src/org/netbeans/modules/java/JavaNode.java
index 34a991a..dbd170c 100644
--- a/java.source/src/org/netbeans/modules/java/JavaNode.java
+++ b/java.source/src/org/netbeans/modules/java/JavaNode.java
@@ -21,7 +21,7 @@ package org.netbeans.modules.java;
import com.sun.source.tree.ClassTree;
import com.sun.source.tree.CompilationUnitTree;
-import com.sun.source.util.TreeScanner;
+import org.netbeans.api.java.source.support.ErrorAwareTreeScanner;
import java.awt.Image;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
@@ -475,7 +475,7 @@ public final class JavaNode extends DataNode implements ChangeListener {
return res[0];
}
- private static final class ClasssFinder extends TreeScanner<Collection<ClassTree>, Collection<ClassTree>> {
+ private static final class ClasssFinder extends ErrorAwareTreeScanner<Collection<ClassTree>, Collection<ClassTree>> {
@Override
public Collection<ClassTree> visitCompilationUnit(CompilationUnitTree node, Collection<ClassTree> p) {
http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/java.source/src/org/netbeans/modules/java/classfile/CodeGenerator.java
----------------------------------------------------------------------
diff --git a/java.source/src/org/netbeans/modules/java/classfile/CodeGenerator.java b/java.source/src/org/netbeans/modules/java/classfile/CodeGenerator.java
index 6b1ecc1..d886f9a 100644
--- a/java.source/src/org/netbeans/modules/java/classfile/CodeGenerator.java
+++ b/java.source/src/org/netbeans/modules/java/classfile/CodeGenerator.java
@@ -45,6 +45,7 @@ import com.sun.tools.javap.CodeWriter;
import com.sun.tools.javap.ConstantWriter;
import com.sun.tools.javap.Context;
import com.sun.tools.javap.Messages;
+
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.IOException;
@@ -67,6 +68,7 @@ import java.util.Map.Entry;
import java.util.Set;
import java.util.logging.Level;
import java.util.logging.Logger;
+
import javax.lang.model.element.AnnotationMirror;
import javax.lang.model.element.AnnotationValue;
import javax.lang.model.element.AnnotationValueVisitor;
@@ -85,6 +87,8 @@ import javax.lang.model.type.TypeMirror;
import javax.lang.model.util.AbstractElementVisitor9;
import javax.tools.JavaFileObject;
import javax.tools.JavaFileObject.Kind;
+
+import com.sun.tools.classfile.ConstantPool.CPInfo;
import org.netbeans.api.java.classpath.ClassPath;
import org.netbeans.api.java.source.ClasspathInfo;
import org.netbeans.api.java.source.ClasspathInfo.PathKind;
@@ -739,19 +743,7 @@ public class CodeGenerator {
@Override
public void writeInstr(Instruction instr) {
- if (INSTRUCTION_WITH_REFERENCE.contains(instr.getOpcode())) {
- print(String.format("%4d: %-13s ", instr.getPC(), instr.getMnemonic()));
- int constantPoolEntry;
- if (instr.getOpcode() == Opcode.LDC) {
- constantPoolEntry = instr.getUnsignedByte(1);
- } else {
- constantPoolEntry = instr.getUnsignedShort(1);
- }
- print(constantWriter.stringValue(constantPoolEntry));
- println();
- } else {
- super.writeInstr(instr);
- }
+ super.writeInstr(instr);
}
}
http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/java.source/src/org/netbeans/modules/java/source/parsing/SourceFileObject.java
----------------------------------------------------------------------
diff --git a/java.source/src/org/netbeans/modules/java/source/parsing/SourceFileObject.java b/java.source/src/org/netbeans/modules/java/source/parsing/SourceFileObject.java
index 7a4fab2..28cb84f 100644
--- a/java.source/src/org/netbeans/modules/java/source/parsing/SourceFileObject.java
+++ b/java.source/src/org/netbeans/modules/java/source/parsing/SourceFileObject.java
@@ -76,7 +76,7 @@ public class SourceFileObject extends AbstractSourceFileObject implements Docume
@NullAllowed final JavaFileFilterImplementation filter,
@NullAllowed final CharSequence content,
final boolean renderNow) throws IOException {
- super(handle, filter);
+ super(handle, filter, content != null);
this.hasFilter = filter != null;
if (content != null || renderNow) {
update(content);
http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/java.source/test/unit/src/org/netbeans/api/java/source/gen/LambdaTest.java
----------------------------------------------------------------------
diff --git a/java.source/test/unit/src/org/netbeans/api/java/source/gen/LambdaTest.java b/java.source/test/unit/src/org/netbeans/api/java/source/gen/LambdaTest.java
index d3b756a..47c3480 100644
--- a/java.source/test/unit/src/org/netbeans/api/java/source/gen/LambdaTest.java
+++ b/java.source/test/unit/src/org/netbeans/api/java/source/gen/LambdaTest.java
@@ -34,8 +34,8 @@ import com.sun.source.tree.Tree;
import com.sun.source.tree.TypeParameterTree;
import com.sun.source.tree.VariableTree;
import com.sun.source.util.TreePath;
-import com.sun.source.util.TreePathScanner;
-import com.sun.source.util.TreeScanner;
+import org.netbeans.api.java.source.support.ErrorAwareTreePathScanner;
+import org.netbeans.api.java.source.support.ErrorAwareTreeScanner;
import java.io.File;
import java.io.IOException;
import java.util.Collections;
@@ -93,7 +93,7 @@ public class LambdaTest extends GeneratorTestMDRCompat {
workingCopy.toPhase(Phase.RESOLVED);
CompilationUnitTree cut = workingCopy.getCompilationUnit();
final TreeMaker make = workingCopy.getTreeMaker();
- new TreeScanner<Void, Void>() {
+ new ErrorAwareTreeScanner<Void, Void>() {
@Override public Void visitLiteral(LiteralTree node, Void p) {
workingCopy.rewrite(node, make.MemberReference(ReferenceMode.INVOKE, make.Identifier("Test"), "taragui", Collections.<ExpressionTree>emptyList()));
return super.visitLiteral(node, p);
@@ -133,7 +133,7 @@ public class LambdaTest extends GeneratorTestMDRCompat {
workingCopy.toPhase(Phase.RESOLVED);
CompilationUnitTree cut = workingCopy.getCompilationUnit();
final TreeMaker make = workingCopy.getTreeMaker();
- new TreeScanner<Void, Void>() {
+ new ErrorAwareTreeScanner<Void, Void>() {
@Override public Void visitVariable(VariableTree node, Void p) {
if (node.getName().contentEquals("e")) {
workingCopy.rewrite(node, make.setLabel(node, "f"));
@@ -174,7 +174,7 @@ public class LambdaTest extends GeneratorTestMDRCompat {
public void run(final WorkingCopy workingCopy) throws IOException {
workingCopy.toPhase(Phase.RESOLVED);
final TreeMaker make = workingCopy.getTreeMaker();
- new TreeScanner<Void, Void>() {
+ new ErrorAwareTreeScanner<Void, Void>() {
@Override public Void visitLambdaExpression(LambdaExpressionTree node, Void p) {
workingCopy.rewrite(node, make.addLambdaParameter(node, make.Variable(make.Modifiers(EnumSet.noneOf(Modifier.class)), "e", null, null)));
return super.visitLambdaExpression(node, p);
@@ -213,7 +213,7 @@ public class LambdaTest extends GeneratorTestMDRCompat {
public void run(final WorkingCopy workingCopy) throws IOException {
workingCopy.toPhase(Phase.RESOLVED);
final TreeMaker make = workingCopy.getTreeMaker();
- new TreeScanner<Void, Void>() {
+ new ErrorAwareTreeScanner<Void, Void>() {
@Override public Void visitLambdaExpression(LambdaExpressionTree node, Void p) {
workingCopy.rewrite(node, make.addLambdaParameter(node, make.Variable(make.Modifiers(EnumSet.noneOf(Modifier.class)), "f", null, null)));
return super.visitLambdaExpression(node, p);
@@ -252,7 +252,7 @@ public class LambdaTest extends GeneratorTestMDRCompat {
public void run(final WorkingCopy workingCopy) throws IOException {
workingCopy.toPhase(Phase.RESOLVED);
final TreeMaker make = workingCopy.getTreeMaker();
- new TreeScanner<Void, Void>() {
+ new ErrorAwareTreeScanner<Void, Void>() {
@Override public Void visitLambdaExpression(LambdaExpressionTree node, Void p) {
workingCopy.rewrite(node, make.addLambdaParameter(node, make.Variable(make.Modifiers(EnumSet.noneOf(Modifier.class)), "f", null, null)));
return super.visitLambdaExpression(node, p);
@@ -291,7 +291,7 @@ public class LambdaTest extends GeneratorTestMDRCompat {
public void run(final WorkingCopy workingCopy) throws IOException {
workingCopy.toPhase(Phase.RESOLVED);
final TreeMaker make = workingCopy.getTreeMaker();
- new TreeScanner<Void, Void>() {
+ new ErrorAwareTreeScanner<Void, Void>() {
@Override public Void visitLambdaExpression(LambdaExpressionTree node, Void p) {
workingCopy.rewrite(node, make.insertLambdaParameter(node, 0, make.Variable(make.Modifiers(EnumSet.noneOf(Modifier.class)), "f", null, null)));
return super.visitLambdaExpression(node, p);
@@ -330,7 +330,7 @@ public class LambdaTest extends GeneratorTestMDRCompat {
public void run(final WorkingCopy workingCopy) throws IOException {
workingCopy.toPhase(Phase.RESOLVED);
final TreeMaker make = workingCopy.getTreeMaker();
- new TreeScanner<Void, Void>() {
+ new ErrorAwareTreeScanner<Void, Void>() {
@Override public Void visitLambdaExpression(LambdaExpressionTree node, Void p) {
workingCopy.rewrite(node, make.removeLambdaParameter(node, 0));
return super.visitLambdaExpression(node, p);
@@ -369,7 +369,7 @@ public class LambdaTest extends GeneratorTestMDRCompat {
public void run(final WorkingCopy workingCopy) throws IOException {
workingCopy.toPhase(Phase.RESOLVED);
final TreeMaker make = workingCopy.getTreeMaker();
- new TreeScanner<Void, Void>() {
+ new ErrorAwareTreeScanner<Void, Void>() {
@Override public Void visitLambdaExpression(LambdaExpressionTree node, Void p) {
workingCopy.rewrite(node, make.removeLambdaParameter(node, 1));
return super.visitLambdaExpression(node, p);
@@ -408,7 +408,7 @@ public class LambdaTest extends GeneratorTestMDRCompat {
public void run(final WorkingCopy workingCopy) throws IOException {
workingCopy.toPhase(Phase.RESOLVED);
final TreeMaker make = workingCopy.getTreeMaker();
- new TreeScanner<Void, Void>() {
+ new ErrorAwareTreeScanner<Void, Void>() {
@Override public Void visitLambdaExpression(LambdaExpressionTree node, Void p) {
workingCopy.rewrite(node, make.removeLambdaParameter(node, 0));
return super.visitLambdaExpression(node, p);
@@ -447,7 +447,7 @@ public class LambdaTest extends GeneratorTestMDRCompat {
public void run(final WorkingCopy workingCopy) throws IOException {
workingCopy.toPhase(Phase.RESOLVED);
final TreeMaker make = workingCopy.getTreeMaker();
- new TreeScanner<Void, Void>() {
+ new ErrorAwareTreeScanner<Void, Void>() {
@Override public Void visitLambdaExpression(LambdaExpressionTree node, Void p) {
ReturnTree t = (ReturnTree) ((BlockTree) node.getBody()).getStatements().get(0);
workingCopy.rewrite(node, make.setLambdaBody(node, t.getExpression()));
@@ -489,7 +489,7 @@ public class LambdaTest extends GeneratorTestMDRCompat {
public void run(final WorkingCopy workingCopy) throws IOException {
workingCopy.toPhase(Phase.RESOLVED);
final TreeMaker make = workingCopy.getTreeMaker();
- new TreeScanner<Void, Void>() {
+ new ErrorAwareTreeScanner<Void, Void>() {
@Override public Void visitLambdaExpression(LambdaExpressionTree node, Void p) {
workingCopy.rewrite(node, make.setLambdaBody(node, make.Block(Collections.singletonList(make.Return((ExpressionTree) node.getBody())), false)));
return super.visitLambdaExpression(node, p);
@@ -532,7 +532,7 @@ public class LambdaTest extends GeneratorTestMDRCompat {
public void run(final WorkingCopy workingCopy) throws IOException {
workingCopy.toPhase(Phase.RESOLVED);
final TreeMaker make = workingCopy.getTreeMaker();
- new TreeScanner<Void, Void>() {
+ new ErrorAwareTreeScanner<Void, Void>() {
@Override public Void visitLambdaExpression(LambdaExpressionTree node, Void p) {
workingCopy.rewrite(node, make.setLambdaBody(node, make.Block(Collections.singletonList(make.Return((ExpressionTree) node.getBody())), false)));
return super.visitLambdaExpression(node, p);
@@ -571,7 +571,7 @@ public class LambdaTest extends GeneratorTestMDRCompat {
public void run(final WorkingCopy workingCopy) throws IOException {
workingCopy.toPhase(Phase.RESOLVED);
final TreeMaker make = workingCopy.getTreeMaker();
- new TreeScanner<Void, Void>() {
+ new ErrorAwareTreeScanner<Void, Void>() {
@Override public Void visitMemberReference(MemberReferenceTree node, Void p) {
workingCopy.rewrite(node, make.MemberReference(node.getMode(), make.Identifier("Test"), node.getName(), node.getTypeArguments()));
return super.visitMemberReference(node, p);
@@ -610,7 +610,7 @@ public class LambdaTest extends GeneratorTestMDRCompat {
public void run(final WorkingCopy workingCopy) throws IOException {
workingCopy.toPhase(Phase.RESOLVED);
final TreeMaker make = workingCopy.getTreeMaker();
- new TreeScanner<Void, Void>() {
+ new ErrorAwareTreeScanner<Void, Void>() {
@Override public Void visitMemberReference(MemberReferenceTree node, Void p) {
workingCopy.rewrite(node, make.setLabel(node, "taragui2"));
return super.visitMemberReference(node, p);
@@ -649,7 +649,7 @@ public class LambdaTest extends GeneratorTestMDRCompat {
public void run(final WorkingCopy workingCopy) throws IOException {
workingCopy.toPhase(Phase.RESOLVED);
final TreeMaker make = workingCopy.getTreeMaker();
- new TreeScanner<Void, Void>() {
+ new ErrorAwareTreeScanner<Void, Void>() {
@Override public Void visitMemberReference(MemberReferenceTree node, Void p) {
workingCopy.rewrite(node, make.MemberReference(node.getMode(), node.getQualifierExpression(), node.getName(), Collections.singletonList(make.Identifier("String"))));
return super.visitMemberReference(node, p);
@@ -688,7 +688,7 @@ public class LambdaTest extends GeneratorTestMDRCompat {
public void run(final WorkingCopy workingCopy) throws IOException {
workingCopy.toPhase(Phase.RESOLVED);
final TreeMaker make = workingCopy.getTreeMaker();
- new TreeScanner<Void, Void>() {
+ new ErrorAwareTreeScanner<Void, Void>() {
@Override public Void visitMemberReference(MemberReferenceTree node, Void p) {
workingCopy.rewrite(node, make.MemberReference(node.getMode(), node.getQualifierExpression(), node.getName(), null));
return super.visitMemberReference(node, p);
@@ -729,7 +729,7 @@ public class LambdaTest extends GeneratorTestMDRCompat {
public void run(final WorkingCopy workingCopy) throws IOException {
workingCopy.toPhase(Phase.RESOLVED);
final TreeMaker make = workingCopy.getTreeMaker();
- new TreeScanner<Void, Void>() {
+ new ErrorAwareTreeScanner<Void, Void>() {
@Override public Void visitLambdaExpression(LambdaExpressionTree node, Void p) {
for (VariableTree par : node.getParameters()) {
workingCopy.rewrite(par.getType(), make.Identifier("String"));
@@ -772,7 +772,7 @@ public class LambdaTest extends GeneratorTestMDRCompat {
public void run(final WorkingCopy workingCopy) throws IOException {
workingCopy.toPhase(Phase.RESOLVED);
final TreeMaker make = workingCopy.getTreeMaker();
- new TreeScanner<Void, Void>() {
+ new ErrorAwareTreeScanner<Void, Void>() {
@Override public Void visitLambdaExpression(LambdaExpressionTree node, Void p) {
for (VariableTree par : node.getParameters()) {
workingCopy.rewrite(par, make.Variable(par.getModifiers(), par.getName(), null, par.getInitializer()));
@@ -895,7 +895,7 @@ public class LambdaTest extends GeneratorTestMDRCompat {
public void run(final WorkingCopy workingCopy) throws IOException {
workingCopy.toPhase(Phase.RESOLVED);
final TreeMaker make = workingCopy.getTreeMaker();
- new TreeScanner<Void, Void>() {
+ new ErrorAwareTreeScanner<Void, Void>() {
@Override public Void visitLambdaExpression(LambdaExpressionTree node, Void p) {
VariableTree vt = node.getParameters().get(0);
workingCopy.rewrite(node, make.addLambdaParameter(node, make.Variable(vt.getModifiers(), "f", vt.getType(), vt.getInitializer())));
@@ -935,7 +935,7 @@ public class LambdaTest extends GeneratorTestMDRCompat {
public void run(final WorkingCopy workingCopy) throws IOException {
workingCopy.toPhase(Phase.RESOLVED);
final TreeMaker make = workingCopy.getTreeMaker();
- new TreeScanner<Void, Void>() {
+ new ErrorAwareTreeScanner<Void, Void>() {
@Override
public Void scan(Tree node, Void p) {
return super.scan(node, p);
@@ -986,7 +986,7 @@ public class LambdaTest extends GeneratorTestMDRCompat {
public void run(final WorkingCopy workingCopy) throws IOException {
workingCopy.toPhase(Phase.RESOLVED);
final TreeMaker make = workingCopy.getTreeMaker();
- new TreeScanner<Void, Void>() {
+ new ErrorAwareTreeScanner<Void, Void>() {
@Override
public Void scan(Tree node, Void p) {
http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/java.sourceui/src/org/netbeans/api/java/source/ui/ElementOpen.java
----------------------------------------------------------------------
diff --git a/java.sourceui/src/org/netbeans/api/java/source/ui/ElementOpen.java b/java.sourceui/src/org/netbeans/api/java/source/ui/ElementOpen.java
index 425da5f..2850cb5 100644
--- a/java.sourceui/src/org/netbeans/api/java/source/ui/ElementOpen.java
+++ b/java.sourceui/src/org/netbeans/api/java/source/ui/ElementOpen.java
@@ -21,7 +21,7 @@ package org.netbeans.api.java.source.ui;
import com.sun.source.tree.*;
import com.sun.source.util.SourcePositions;
import com.sun.source.util.TreePath;
-import com.sun.source.util.TreePathScanner;
+import org.netbeans.api.java.source.support.ErrorAwareTreePathScanner;
import java.io.IOException;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.logging.Level;
@@ -400,7 +400,7 @@ public final class ElementOpen {
// Private innerclasses ----------------------------------------------------
- private static class FindDeclarationVisitor extends TreePathScanner<Void, Void> {
+ private static class FindDeclarationVisitor extends ErrorAwareTreePathScanner<Void, Void> {
private Element element;
private Tree declTree;
http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/java.sourceui/src/org/netbeans/modules/java/source/ui/AsyncJavaSymbolDescriptor.java
----------------------------------------------------------------------
diff --git a/java.sourceui/src/org/netbeans/modules/java/source/ui/AsyncJavaSymbolDescriptor.java b/java.sourceui/src/org/netbeans/modules/java/source/ui/AsyncJavaSymbolDescriptor.java
index 427a5a4..a7cfc0d 100644
--- a/java.sourceui/src/org/netbeans/modules/java/source/ui/AsyncJavaSymbolDescriptor.java
+++ b/java.sourceui/src/org/netbeans/modules/java/source/ui/AsyncJavaSymbolDescriptor.java
@@ -25,6 +25,7 @@ import com.sun.tools.javac.api.JavacTool;
import com.sun.tools.javac.code.Symtab;
import com.sun.tools.javac.jvm.ClassReader;
import com.sun.tools.javac.model.JavacElements;
+
import java.io.File;
import java.io.IOException;
import java.lang.ref.Reference;
@@ -42,6 +43,7 @@ import java.util.Set;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.logging.Logger;
+
import javax.lang.model.element.Element;
import javax.lang.model.element.ElementKind;
import javax.lang.model.element.Modifier;
@@ -58,6 +60,7 @@ import org.netbeans.api.java.queries.SourceLevelQuery;
import org.netbeans.api.java.source.ElementHandle;
import org.netbeans.api.project.ProjectInformation;
import org.netbeans.modules.java.source.ElementHandleAccessor;
+import org.netbeans.modules.java.source.ElementUtils;
import org.netbeans.modules.java.source.indexing.JavaIndex;
import org.netbeans.modules.java.source.parsing.CachingArchiveProvider;
import org.netbeans.modules.java.source.parsing.CachingFileManager;
@@ -211,8 +214,7 @@ final class AsyncJavaSymbolDescriptor extends JavaSymbolDescriptorBase implement
final Symtab syms = Symtab.instance(jt.getContext());
final Set<?> pkgs = new HashSet<>(getPackages(syms).keySet());
final Set<?> clzs = new HashSet<>(getClasses(syms).keySet());
- final JavacElements elements = (JavacElements)jt.getElements();
- final TypeElement te = (TypeElement) elements.getTypeElementByBinaryName(
+ final TypeElement te = (TypeElement) ElementUtils.getTypeElementByBinaryName(jt,
ElementHandleAccessor.getInstance().getJVMSignature(getOwner())[0]);
if (te != null) {
if (ident.equals(getSimpleName(te, null, caseSensitive))) {
http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/java.sourceui/test/unit/src/org/netbeans/api/java/source/ui/ElementHeadersTest.java
----------------------------------------------------------------------
diff --git a/java.sourceui/test/unit/src/org/netbeans/api/java/source/ui/ElementHeadersTest.java b/java.sourceui/test/unit/src/org/netbeans/api/java/source/ui/ElementHeadersTest.java
index 0392a98..ac5c08c 100644
--- a/java.sourceui/test/unit/src/org/netbeans/api/java/source/ui/ElementHeadersTest.java
+++ b/java.sourceui/test/unit/src/org/netbeans/api/java/source/ui/ElementHeadersTest.java
@@ -33,7 +33,7 @@ import org.netbeans.api.java.source.TestUtilities;
import org.netbeans.api.lexer.Language;
import org.netbeans.junit.NbTestCase;
import org.netbeans.modules.java.JavaDataLoader;
-import org.netbeans.modules.java.source.TreeLoader;
+//import org.netbeans.modules.java.source.TreeLoader;
import org.openide.cookies.EditorCookie;
import org.openide.filesystems.FileObject;
import org.openide.filesystems.FileUtil;
@@ -121,7 +121,7 @@ public class ElementHeadersTest extends NbTestCase {
}
public void test134664() throws Exception {
- TreeLoader.DISABLE_CONFINEMENT_TEST = true;
+// TreeLoader.DISABLE_CONFINEMENT_TEST = true;
performTest("test/Test.java", "package test; public class Test { public Tfst {} }", 43, ElementHeaders.NAME, "Tfst");
}
}
http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/java.testrunner.ui/nbproject/project.properties
----------------------------------------------------------------------
diff --git a/java.testrunner.ui/nbproject/project.properties b/java.testrunner.ui/nbproject/project.properties
index 7f641b7..5fdc82a 100644
--- a/java.testrunner.ui/nbproject/project.properties
+++ b/java.testrunner.ui/nbproject/project.properties
@@ -17,3 +17,5 @@
is.eager=true
javac.source=1.6
javac.compilerargs=-Xlint -Xlint:-serial
+cp.extra=${tools.jar}
+requires.nb.javac=true
http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/java.testrunner/nbproject/project.properties
----------------------------------------------------------------------
diff --git a/java.testrunner/nbproject/project.properties b/java.testrunner/nbproject/project.properties
index 7f641b7..375b088 100644
--- a/java.testrunner/nbproject/project.properties
+++ b/java.testrunner/nbproject/project.properties
@@ -17,3 +17,4 @@
is.eager=true
javac.source=1.6
javac.compilerargs=-Xlint -Xlint:-serial
+requires.nb.javac=true
http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/javaee.injection/nbproject/project.properties
----------------------------------------------------------------------
diff --git a/javaee.injection/nbproject/project.properties b/javaee.injection/nbproject/project.properties
index ab06b41..bd782ba 100644
--- a/javaee.injection/nbproject/project.properties
+++ b/javaee.injection/nbproject/project.properties
@@ -16,3 +16,4 @@
# under the License.
javac.source=1.7
javac.compilerargs=-Xlint -Xlint:-serial
+requires.nb.javac=true
http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/javafx2.editor/test/unit/src/org/netbeans/modules/javafx2/editor/FXMLCompletionTestBase.java
----------------------------------------------------------------------
diff --git a/javafx2.editor/test/unit/src/org/netbeans/modules/javafx2/editor/FXMLCompletionTestBase.java b/javafx2.editor/test/unit/src/org/netbeans/modules/javafx2/editor/FXMLCompletionTestBase.java
index a72bcca..7ca3fc9 100644
--- a/javafx2.editor/test/unit/src/org/netbeans/modules/javafx2/editor/FXMLCompletionTestBase.java
+++ b/javafx2.editor/test/unit/src/org/netbeans/modules/javafx2/editor/FXMLCompletionTestBase.java
@@ -35,6 +35,7 @@ import org.netbeans.api.java.classpath.ClassPath;
import org.netbeans.api.java.source.ClasspathInfo;
import org.netbeans.api.java.source.CompilationController;
import org.netbeans.api.java.source.JavaSource;
+import org.netbeans.api.java.source.SourceUtilsTestUtil2;
import org.netbeans.api.java.source.Task;
import org.netbeans.api.java.source.gen.WhitespaceIgnoringDiff;
import org.netbeans.api.lexer.Language;
@@ -45,7 +46,7 @@ import org.netbeans.junit.NbTestCase;
import org.netbeans.modules.editor.completion.CompletionItemComparator;
import org.netbeans.modules.editor.java.Utilities;
import org.netbeans.modules.java.JavaDataLoader;
-import org.netbeans.modules.java.source.TreeLoader;
+//import org.netbeans.modules.java.source.TreeLoader;
import org.netbeans.modules.java.source.indexing.TransactionContext;
import org.netbeans.modules.java.source.parsing.JavacParserFactory;
import org.netbeans.modules.java.source.usages.BinaryAnalyser;
@@ -85,7 +86,7 @@ public class FXMLCompletionTestBase extends NbTestCase {
System.setProperty("org.openide.util.Lookup", Lkp.class.getName());
Assert.assertEquals(Lkp.class, Lookup.getDefault().getClass());
- TreeLoader.DISABLE_ARTIFICAL_PARAMETER_NAMES = true;
+ SourceUtilsTestUtil2.disableArtificalParameterNames();
}
static final int FINISH_OUTTIME = 5 * 60 * 1000;
http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/javafx2.project/nbproject/project.properties
----------------------------------------------------------------------
diff --git a/javafx2.project/nbproject/project.properties b/javafx2.project/nbproject/project.properties
index 4b04a20..b6bb147 100644
--- a/javafx2.project/nbproject/project.properties
+++ b/javafx2.project/nbproject/project.properties
@@ -18,3 +18,4 @@ javac.source=1.8
javac.compilerargs=-Xlint -Xlint:-serial
test.config.stable.includes=**/NewJavaFX2ProjectTest.class
+requires.nb.javac=true
http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/javawebstart/nbproject/project.properties
----------------------------------------------------------------------
diff --git a/javawebstart/nbproject/project.properties b/javawebstart/nbproject/project.properties
index 24b5a55..5c67e0d 100644
--- a/javawebstart/nbproject/project.properties
+++ b/javawebstart/nbproject/project.properties
@@ -19,3 +19,4 @@ javac.compilerargs=-Xlint:unchecked
javac.source=1.7
extra.module.files=ant/extra/org-netbeans-modules-javawebstart-anttasks.jar
jnlp.indirect.jars=ant/extra/org-netbeans-modules-javawebstart-anttasks.jar
+requires.nb.javac=true
http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/jshell.support/nbproject/project.properties
----------------------------------------------------------------------
diff --git a/jshell.support/nbproject/project.properties b/jshell.support/nbproject/project.properties
index 952f643..89fa9ac 100644
--- a/jshell.support/nbproject/project.properties
+++ b/jshell.support/nbproject/project.properties
@@ -21,3 +21,4 @@ spec.version.base=1.0
cp.extra=${tools.jar}
bootclasspath.prepend=${nb_all}/libs.javacapi/external/nb-javac-api.jar${path.separator}${nb_all}/libs.javacimpl/external/nb-javac-impl.jar
is.eager=true
+requires.nb.javac=true
http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/jshell.support/nbproject/project.xml
----------------------------------------------------------------------
diff --git a/jshell.support/nbproject/project.xml b/jshell.support/nbproject/project.xml
index e87a5b8..313c930 100644
--- a/jshell.support/nbproject/project.xml
+++ b/jshell.support/nbproject/project.xml
@@ -120,7 +120,7 @@
<specification-version>8.19</specification-version>
</run-dependency>
</dependency>
- <dependency>
+<!-- <dependency>
<code-name-base>org.netbeans.libs.javacimpl</code-name-base>
<build-prerequisite/>
<compile-dependency/>
@@ -128,7 +128,7 @@
<release-version>1</release-version>
<specification-version>0.47</specification-version>
</run-dependency>
- </dependency>
+ </dependency>-->
<dependency>
<code-name-base>org.netbeans.libs.jshell.compile</code-name-base>
<build-prerequisite/>
http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/junit.ant.ui/nbproject/project.properties
----------------------------------------------------------------------
diff --git a/junit.ant.ui/nbproject/project.properties b/junit.ant.ui/nbproject/project.properties
index 7f641b7..5d0fa29 100644
--- a/junit.ant.ui/nbproject/project.properties
+++ b/junit.ant.ui/nbproject/project.properties
@@ -17,3 +17,4 @@
is.eager=true
javac.source=1.6
javac.compilerargs=-Xlint -Xlint:-serial
+requires.nb.javac=true
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/junit.ui/nbproject/project.properties
----------------------------------------------------------------------
diff --git a/junit.ui/nbproject/project.properties b/junit.ui/nbproject/project.properties
index 7f641b7..5fdc82a 100644
--- a/junit.ui/nbproject/project.properties
+++ b/junit.ui/nbproject/project.properties
@@ -17,3 +17,5 @@
is.eager=true
javac.source=1.6
javac.compilerargs=-Xlint -Xlint:-serial
+cp.extra=${tools.jar}
+requires.nb.javac=true
http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/junit.ui/src/org/netbeans/modules/junit/ui/OpenTestAction.java
----------------------------------------------------------------------
diff --git a/junit.ui/src/org/netbeans/modules/junit/ui/OpenTestAction.java b/junit.ui/src/org/netbeans/modules/junit/ui/OpenTestAction.java
index 542cd4b..69e49ee 100644
--- a/junit.ui/src/org/netbeans/modules/junit/ui/OpenTestAction.java
+++ b/junit.ui/src/org/netbeans/modules/junit/ui/OpenTestAction.java
@@ -24,7 +24,7 @@ import com.sun.source.tree.CompilationUnitTree;
import com.sun.source.tree.MethodTree;
import com.sun.source.tree.Tree;
import com.sun.source.util.SourcePositions;
-import com.sun.source.util.TreePathScanner;
+import org.netbeans.api.java.source.support.ErrorAwareTreePathScanner;
import com.sun.source.util.Trees;
import java.io.IOException;
import java.net.URL;
@@ -354,7 +354,7 @@ public class OpenTestAction extends TestAction {
/**
*
*/
- private static class DeclarationTreeFinder extends TreePathScanner<Void, Void> {
+ private static class DeclarationTreeFinder extends ErrorAwareTreePathScanner<Void, Void> {
private final Element element;
private final Trees trees;
http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/lib.nbjavac/src/org/netbeans/lib/nbjavac/services/NBClassReader.java
----------------------------------------------------------------------
diff --git a/lib.nbjavac/src/org/netbeans/lib/nbjavac/services/NBClassReader.java b/lib.nbjavac/src/org/netbeans/lib/nbjavac/services/NBClassReader.java
index 35b23ec..d139a5e 100644
--- a/lib.nbjavac/src/org/netbeans/lib/nbjavac/services/NBClassReader.java
+++ b/lib.nbjavac/src/org/netbeans/lib/nbjavac/services/NBClassReader.java
@@ -60,46 +60,6 @@ public class NBClassReader extends ClassReader {
bp = newbp;
}
},
- new NBAttributeReader(nbNames._org_netbeans_TypeSignature, Version.V49, CLASS_OR_MEMBER_ATTRIBUTE) {
- protected void read(Symbol sym, int attrLen) {
- sym.type = readType(nextChar());
- }
- },
- new NBAttributeReader(nbNames._org_netbeans_ParameterNames, Version.V49, CLASS_OR_MEMBER_ATTRIBUTE) {
- protected void read(Symbol sym, int attrLen) {
- int newbp = bp + attrLen;
- List<Name> parameterNames = List.nil();
- int numParams = 0;
- if (sym.type != null) {
- List<Type> parameterTypes = sym.type.getParameterTypes();
- if (parameterTypes != null)
- numParams = parameterTypes.length();
- }
- for (int i = 0; i < numParams; i++) {
- if (bp < newbp - 1)
- parameterNames = parameterNames.prepend(readName(nextChar()));
- }
- parameterNames = parameterNames.reverse();
- while(parameterNames.length() < numParams)
- parameterNames = parameterNames.prepend(names.empty);
- ((MethodSymbol)sym).savedParameterNames = parameterNames;
- }
- },
- new NBAttributeReader(nbNames._org_netbeans_SourceLevelAnnotations, Version.V49, CLASS_OR_MEMBER_ATTRIBUTE) {
- protected void read(Symbol sym, int attrLen) {
- attachAnnotations(sym);
- }
- },
- new NBAttributeReader(nbNames._org_netbeans_SourceLevelParameterAnnotations, Version.V49, CLASS_OR_MEMBER_ATTRIBUTE) {
- protected void read(Symbol sym, int attrLen) {
- attachParameterAnnotations(sym);
- }
- },
- new NBAttributeReader(nbNames._org_netbeans_SourceLevelTypeAnnotations, Version.V52, CLASS_OR_MEMBER_ATTRIBUTE) {
- protected void read(Symbol sym, int attrLen) {
- attachTypeAnnotations(sym);
- }
- },
};
for (NBAttributeReader r: readers)
http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/lib.nbjavac/src/org/netbeans/lib/nbjavac/services/NBClassWriter.java
----------------------------------------------------------------------
diff --git a/lib.nbjavac/src/org/netbeans/lib/nbjavac/services/NBClassWriter.java b/lib.nbjavac/src/org/netbeans/lib/nbjavac/services/NBClassWriter.java
index 76c5593..22cb6ee 100644
--- a/lib.nbjavac/src/org/netbeans/lib/nbjavac/services/NBClassWriter.java
+++ b/lib.nbjavac/src/org/netbeans/lib/nbjavac/services/NBClassWriter.java
@@ -58,128 +58,4 @@ public class NBClassWriter extends ClassWriter {
types = Types.instance(context);
}
- @Override
- protected int writeExtraClassAttributes(ClassSymbol c) {
- if (c.sourcefile != null) {
- final Collection<? extends ClassSymbol> nip = nbMessager.removeNotInProfile(c.sourcefile.toUri());
- if (nip != null) {
- for (ClassSymbol s : nip) {
- pool.put(s.type);
- }
- }
- }
- return 0;
- }
-
- @Override
- protected int writeExtraMemberAttributes(Symbol sym) {
- int attrCount = 0;
- if (sym.externalType(types).isErroneous()) {
- int rsIdx = writeAttr(nbNames._org_netbeans_TypeSignature);
- try {
- preserveErrors = true;
- databuf.appendChar(pool.put(typeSig(sym.type)));
- } finally {
- preserveErrors = false;
- }
- endAttr(rsIdx);
- attrCount++;
- }
- return attrCount;
- }
-
- @Override
- protected int writeExtraParameterAttributes(MethodSymbol m) {
- boolean hasSourceLevel = false;
- if (m.params != null) for (VarSymbol s : m.params) {
- for (Attribute.Compound a : s.getRawAttributes()) {
- if (types.getRetention(a) == RetentionPolicy.SOURCE) {
- hasSourceLevel = true;
- break;
- }
- }
- }
- int attrCount = 0;
- if (hasSourceLevel) {
- int attrIndex = writeAttr(nbNames._org_netbeans_SourceLevelParameterAnnotations);
- databuf.appendByte(m.params.length());
- for (VarSymbol s : m.params) {
- ListBuffer<Attribute.Compound> buf = new ListBuffer<Attribute.Compound>();
- for (Attribute.Compound a : s.getRawAttributes())
- if (types.getRetention(a) == RetentionPolicy.SOURCE)
- buf.append(a);
- databuf.appendChar(buf.length());
- for (Attribute.Compound a : buf)
- writeCompoundAttribute(a);
- }
- endAttr(attrIndex);
- attrCount++;
- }
- if (m.code == null && m.params != null && m.params.nonEmpty()) {
- int attrIndex = writeAttr(nbNames._org_netbeans_ParameterNames);
- for (VarSymbol s : m.params)
- databuf.appendChar(pool.put(s.name));
- endAttr(attrIndex);
- attrCount++;
- }
- return attrCount;
- }
-
- @Override
- protected int writeExtraJavaAnnotations(List<Attribute.Compound> attrs) {
- ListBuffer<Attribute.Compound> sourceLevel = new ListBuffer<Attribute.Compound>();
- for (Attribute.Compound a : attrs) {
- if (types.getRetention(a) == RetentionPolicy.SOURCE) {
- sourceLevel.append(a);
- }
- }
- int attrCount = 0;
- if (sourceLevel.nonEmpty()) {
- int attrIndex = writeAttr(nbNames._org_netbeans_SourceLevelAnnotations);
- databuf.appendChar(sourceLevel.length());
- for (Attribute.Compound a : sourceLevel)
- writeCompoundAttribute(a);
- endAttr(attrIndex);
- attrCount++;
- }
- return attrCount;
- }
-
- @Override
- protected int writeExtraTypeAnnotations(List<TypeCompound> attrs) {
- ListBuffer<Attribute.TypeCompound> sourceLevel = new ListBuffer<Attribute.TypeCompound>();
- for (Attribute.TypeCompound tc : attrs) {
- if (tc.hasUnknownPosition()) {
- boolean fixed = tc.tryFixPosition();
-
- // Could we fix it?
- if (!fixed) {
- // This happens for nested types like @A Outer. @B Inner.
- // For method parameters we get the annotation twice! Once with
- // a valid position, once unknown.
- // TODO: find a cleaner solution.
- continue;
- }
- }
-
- if (tc.position.type.isLocal())
- continue;
- if (!tc.position.emitToClassfile()) {
- continue;
- }
- if (types.getRetention(tc) == RetentionPolicy.SOURCE) {
- sourceLevel.append(tc);
- }
- }
- int attrCount = 0;
- if (sourceLevel.nonEmpty()) {
- int attrIndex = writeAttr(nbNames._org_netbeans_SourceLevelTypeAnnotations);
- databuf.appendChar(sourceLevel.length());
- for (Attribute.TypeCompound p : sourceLevel)
- writeTypeAnnotation(p);
- endAttr(attrIndex);
- attrCount++;
- }
- return attrCount;
- }
}
http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/lib.nbjavac/src/org/netbeans/lib/nbjavac/services/NBEnter.java
----------------------------------------------------------------------
diff --git a/lib.nbjavac/src/org/netbeans/lib/nbjavac/services/NBEnter.java b/lib.nbjavac/src/org/netbeans/lib/nbjavac/services/NBEnter.java
index 231cd91..06709d8 100644
--- a/lib.nbjavac/src/org/netbeans/lib/nbjavac/services/NBEnter.java
+++ b/lib.nbjavac/src/org/netbeans/lib/nbjavac/services/NBEnter.java
@@ -50,7 +50,7 @@ public class NBEnter extends Enter {
super.visitClassDef(tree);
}
- @Override
+ //no @Override to ensure compatibility with ordinary javac:
protected int getIndex(JCClassDecl clazz) {
return clazz instanceof IndexedClassDecl ? ((IndexedClassDecl) clazz).index : -1;
}
http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/lib.nbjavac/src/org/netbeans/lib/nbjavac/services/NBJavadocEnter.java
----------------------------------------------------------------------
diff --git a/lib.nbjavac/src/org/netbeans/lib/nbjavac/services/NBJavadocEnter.java b/lib.nbjavac/src/org/netbeans/lib/nbjavac/services/NBJavadocEnter.java
index d8e288a..7da8d65 100644
--- a/lib.nbjavac/src/org/netbeans/lib/nbjavac/services/NBJavadocEnter.java
+++ b/lib.nbjavac/src/org/netbeans/lib/nbjavac/services/NBJavadocEnter.java
@@ -72,7 +72,7 @@ public class NBJavadocEnter extends JavadocEnter {
super.visitClassDef(tree);
}
- @Override
+ //no @Override to ensure compatibility with ordinary javac:
protected int getIndex(JCClassDecl clazz) {
return clazz instanceof IndexedClassDecl ? ((IndexedClassDecl) clazz).index : -1;
}
http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/lib.nbjavac/src/org/netbeans/lib/nbjavac/services/NBJavadocMemberEnter.java
----------------------------------------------------------------------
diff --git a/lib.nbjavac/src/org/netbeans/lib/nbjavac/services/NBJavadocMemberEnter.java b/lib.nbjavac/src/org/netbeans/lib/nbjavac/services/NBJavadocMemberEnter.java
index 8f22759..462859c 100644
--- a/lib.nbjavac/src/org/netbeans/lib/nbjavac/services/NBJavadocMemberEnter.java
+++ b/lib.nbjavac/src/org/netbeans/lib/nbjavac/services/NBJavadocMemberEnter.java
@@ -21,7 +21,9 @@ package org.netbeans.lib.nbjavac.services;
import com.sun.source.util.TreePath;
import com.sun.tools.javac.api.JavacTrees;
import com.sun.tools.javac.comp.MemberEnter;
+import com.sun.tools.javac.tree.JCTree.JCBlock;
import com.sun.tools.javac.tree.JCTree.JCCompilationUnit;
+import com.sun.tools.javac.tree.JCTree.JCExpression;
import com.sun.tools.javac.tree.JCTree.JCImport;
import com.sun.tools.javac.tree.JCTree.JCMethodDecl;
import com.sun.tools.javac.tree.JCTree.JCVariableDecl;
@@ -66,7 +68,13 @@ public class NBJavadocMemberEnter extends JavadocMemberEnter {
@Override
public void visitMethodDef(JCMethodDecl tree) {
cancelService.abortIfCanceled();
- super.visitMethodDef(tree);
+ JCBlock body = tree.body;
+ try {
+ super.visitMethodDef(tree);
+ } finally {
+ //reinstall body:
+ tree.body = body;
+ }
if (trees instanceof NBJavacTrees && !env.enclClass.defs.contains(tree)) {
((NBJavacTrees)trees).addPathForElement(tree.sym, new TreePath(trees.getPath(env.toplevel, env.enclClass), tree));
}
@@ -75,7 +83,13 @@ public class NBJavadocMemberEnter extends JavadocMemberEnter {
@Override
public void visitVarDef(JCVariableDecl tree) {
cancelService.abortIfCanceled();
- super.visitVarDef(tree);
+ JCExpression init = tree.init;
+ try {
+ super.visitVarDef(tree);
+ } finally {
+ //reinstall init:
+ tree.init = init;
+ }
}
}
http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/lib.nbjavac/src/org/netbeans/lib/nbjavac/services/NBParserFactory.java
----------------------------------------------------------------------
diff --git a/lib.nbjavac/src/org/netbeans/lib/nbjavac/services/NBParserFactory.java b/lib.nbjavac/src/org/netbeans/lib/nbjavac/services/NBParserFactory.java
index 0c14f42..ee294de 100644
--- a/lib.nbjavac/src/org/netbeans/lib/nbjavac/services/NBParserFactory.java
+++ b/lib.nbjavac/src/org/netbeans/lib/nbjavac/services/NBParserFactory.java
@@ -76,51 +76,6 @@ public class NBParserFactory extends ParserFactory {
return new NBJavacParser(this, lexer, keepDocComments, keepLineMap, keepEndPos, parseModuleInfo, cancelService);
}
- public JavacParser newParser(CharSequence input, int startPos, final EndPosTable endPos) {
- Scanner lexer = scannerFactory.newScanner(input, true);
- lexer.seek(startPos);
- ((NBJavacParser.EndPosTableImpl)endPos).resetErrorEndPos();
- return new NBJavacParser(this, lexer, true, false, true, false, cancelService) {
- @Override protected AbstractEndPosTable newEndPosTable(boolean keepEndPositions) {
- return new AbstractEndPosTable(this) {
-
- @Override
- public void storeEnd(JCTree tree, int endpos) {
- ((EndPosTableImpl)endPos).storeEnd(tree, endpos);
- }
-
- @Override
- protected <T extends JCTree> T to(T t) {
- storeEnd(t, token.endPos);
- return t;
- }
-
- @Override
- protected <T extends JCTree> T toP(T t) {
- storeEnd(t, S.prevToken().endPos);
- return t;
- }
-
- @Override
- public int getEndPos(JCTree tree) {
- return endPos.getEndPos(tree);
- }
-
- @Override
- public int replaceTree(JCTree oldtree, JCTree newtree) {
- return endPos.replaceTree(oldtree, newtree);
- }
-
- @Override
- public void setErrorEndPos(int errPos) {
- super.setErrorEndPos(errPos);
- ((EndPosTableImpl)endPos).setErrorEndPos(errPos);
- }
- };
- }
- };
- }
-
public static class NBJavacParser extends JavacParser {
private final Names names;
@@ -134,7 +89,13 @@ public class NBParserFactory extends ParserFactory {
@Override
protected AbstractEndPosTable newEndPosTable(boolean keepEndPositions) {
- return keepEndPositions ? new EndPosTableImpl(this) : super.newEndPosTable(keepEndPositions);
+ AbstractEndPosTable res = super.newEndPosTable(keepEndPositions);
+
+ if (keepEndPositions) {
+ return new EndPosTableImpl(S, this, (SimpleEndPosTable) res);
+ }
+
+ return res;
}
@Override
@@ -176,24 +137,53 @@ public class NBParserFactory extends ParserFactory {
return toplevel;
}
- public final class EndPosTableImpl extends SimpleEndPosTable {
+ public final class EndPosTableImpl extends AbstractEndPosTable {
- private EndPosTableImpl(JavacParser parser) {
+ private final Lexer lexer;
+ private final SimpleEndPosTable delegate;
+
+ private EndPosTableImpl(Lexer lexer, JavacParser parser, SimpleEndPosTable delegate) {
super(parser);
+ this.lexer = lexer;
+ this.delegate = delegate;
}
- private void resetErrorEndPos() {
- errorEndPos = Position.NOPOS;
+ public void resetErrorEndPos() {
+ delegate.errorEndPos = Position.NOPOS;
+ errorEndPos = delegate.errorEndPos;
}
@Override public void storeEnd(JCTree tree, int endpos) {
if (endpos >= 0)
- super.storeEnd(tree, endpos);
+ delegate.storeEnd(tree, endpos);
}
@Override
public void setErrorEndPos(int errPos) {
- super.setErrorEndPos(errPos);
+ delegate.setErrorEndPos(errPos);
+ errorEndPos = delegate.errorEndPos;
+ }
+
+ @Override
+ protected <T extends JCTree> T to(T t) {
+ storeEnd(t, parser.token().endPos);
+ return t;
+ }
+
+ @Override
+ protected <T extends JCTree> T toP(T t) {
+ storeEnd(t, lexer.prevToken().endPos);
+ return t;
+ }
+
+ @Override
+ public int getEndPos(JCTree jctree) {
+ return delegate.getEndPos(jctree);
+ }
+
+ @Override
+ public int replaceTree(JCTree jctree, JCTree jctree1) {
+ return delegate.replaceTree(jctree, jctree1);
}
}
}
http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/lib.nbjavac/src/org/netbeans/lib/nbjavac/services/NBResolve.java
----------------------------------------------------------------------
diff --git a/lib.nbjavac/src/org/netbeans/lib/nbjavac/services/NBResolve.java b/lib.nbjavac/src/org/netbeans/lib/nbjavac/services/NBResolve.java
index f8a0c68..e1cd8d9 100644
--- a/lib.nbjavac/src/org/netbeans/lib/nbjavac/services/NBResolve.java
+++ b/lib.nbjavac/src/org/netbeans/lib/nbjavac/services/NBResolve.java
@@ -71,5 +71,8 @@ public class NBResolve extends Resolve {
if (accessibleOverride) return true;
return super.isAccessible(env, c, checkInner);
}
-
+
+ public static boolean isStatic(Env<AttrContext> env) {
+ return Resolve.isStatic(env);
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/lib.nbjavac/src/org/netbeans/lib/nbjavac/services/PartialReparser.java
----------------------------------------------------------------------
diff --git a/lib.nbjavac/src/org/netbeans/lib/nbjavac/services/PartialReparser.java b/lib.nbjavac/src/org/netbeans/lib/nbjavac/services/PartialReparser.java
deleted file mode 100644
index 5e171cb..0000000
--- a/lib.nbjavac/src/org/netbeans/lib/nbjavac/services/PartialReparser.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.netbeans.lib.nbjavac.services;
-
-import com.sun.source.tree.BlockTree;
-import com.sun.source.tree.ClassTree;
-import com.sun.source.tree.CompilationUnitTree;
-import com.sun.source.tree.MethodTree;
-import com.sun.source.tree.Tree;
-import com.sun.tools.javac.code.Flags;
-import com.sun.tools.javac.code.Symbol.ClassSymbol;
-import com.sun.tools.javac.code.Symtab;
-import com.sun.tools.javac.code.Type;
-import com.sun.tools.javac.comp.Attr;
-import com.sun.tools.javac.comp.AttrContext;
-import com.sun.tools.javac.comp.Env;
-import com.sun.tools.javac.comp.Flow;
-import com.sun.tools.javac.comp.TypeEnter;
-import com.sun.tools.javac.parser.JavacParser;
-import com.sun.tools.javac.parser.LazyDocCommentTable;
-import com.sun.tools.javac.tree.JCTree;
-import com.sun.tools.javac.tree.JCTree.JCBlock;
-import com.sun.tools.javac.tree.JCTree.JCClassDecl;
-import com.sun.tools.javac.tree.JCTree.JCCompilationUnit;
-import com.sun.tools.javac.tree.JCTree.JCMethodDecl;
-import com.sun.tools.javac.tree.JCTree.JCStatement;
-import com.sun.tools.javac.tree.JCTree.JCVariableDecl;
-import com.sun.tools.javac.tree.TreeInfo;
-import com.sun.tools.javac.tree.TreeMaker;
-import com.sun.tools.javac.util.Context;
-import com.sun.tools.javac.util.List;
-import com.sun.tools.javac.util.Log;
-import com.sun.tools.javac.util.Names;
-import java.nio.CharBuffer;
-import java.util.Map;
-
-/**
- *
- * @author Tomas Zezula
- */
-public class PartialReparser {
-
- protected static final Context.Key<PartialReparser> partialReparserKey = new Context.Key<PartialReparser>();
-
- public static PartialReparser instance(Context ctx) {
- PartialReparser res = ctx.get(partialReparserKey);
-
- if (res == null) {
- ctx.put(partialReparserKey, res = new PartialReparser(ctx));
- }
-
- return res;
- }
-
- private final Context context;
-
- public PartialReparser(Context context) {
- this.context = context;
- }
-
- public JCBlock reparseMethodBody(CompilationUnitTree topLevel, MethodTree methodToReparse, String newBodyText, int annonIndex,
- final Map<? super JCTree,? super LazyDocCommentTable.Entry> docComments) {
- NBParserFactory parserFactory = (NBParserFactory) NBParserFactory.instance(context);
- CharBuffer buf = CharBuffer.wrap((newBodyText+"\u0000").toCharArray(), 0, newBodyText.length());
- JavacParser parser = parserFactory.newParser(buf, ((JCBlock)methodToReparse.getBody()).pos, ((JCCompilationUnit)topLevel).endPositions);
- final JCStatement statement = parser.parseStatement();
- NBParserFactory.assignAnonymousClassIndices(Names.instance(context), statement, Names.instance(context).empty, annonIndex);
- if (statement.getKind() == Tree.Kind.BLOCK) {
- if (docComments != null) {
- docComments.putAll(((LazyDocCommentTable) parser.getDocComments()).table);
- }
- return (JCBlock) statement;
- }
- return null;
- }
-
- public BlockTree reattrMethodBody(MethodTree methodToReparse, BlockTree block) {
- Attr attr = Attr.instance(context);
- assert ((JCMethodDecl)methodToReparse).localEnv != null;
- JCMethodDecl tree = (JCMethodDecl) methodToReparse;
- final Names names = Names.instance(context);
- final Symtab syms = Symtab.instance(context);
- final TypeEnter typeEnter = TypeEnter.instance(context);
- final Log log = Log.instance(context);
- final TreeMaker make = TreeMaker.instance(context);
- final Env<AttrContext> env = attr.dupLocalEnv(((JCMethodDecl) methodToReparse).localEnv);
- final ClassSymbol owner = env.enclClass.sym;
- if (tree.name == names.init && !owner.type.isErroneous() && owner.type != syms.objectType) {
- JCBlock body = tree.body;
- if (body.stats.isEmpty() || !TreeInfo.isSelfCall(body.stats.head)) {
- body.stats = body.stats.
- prepend(typeEnter.SuperCall(make.at(body.pos),
- List.<Type>nil(),
- List.<JCVariableDecl>nil(),
- false));
- } else if ((env.enclClass.sym.flags() & Flags.ENUM) != 0 &&
- (tree.mods.flags & Flags.GENERATEDCONSTR) == 0 &&
- TreeInfo.isSuperCall(body.stats.head)) {
- // enum constructors are not allowed to call super
- // directly, so make sure there aren't any super calls
- // in enum constructors, except in the compiler
- // generated one.
- log.error(tree.body.stats.head.pos(),
- "call.to.super.not.allowed.in.enum.ctor",
- env.enclClass.sym);
- }
- }
- attr.attribStat((JCBlock)block, env);
- return block;
- }
-
- public BlockTree reflowMethodBody(CompilationUnitTree topLevel, ClassTree ownerClass, MethodTree methodToReparse) {
- Flow flow = Flow.instance(context);
- TreeMaker make = TreeMaker.instance(context);
- flow.reanalyzeMethod(make.forToplevel((JCCompilationUnit)topLevel),
- (JCClassDecl)ownerClass);
- return methodToReparse.getBody();
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/lib.nbjavac/test/unit/src/org/netbeans/lib/nbjavac/services/AnonymousNumberingTest.java
----------------------------------------------------------------------
diff --git a/lib.nbjavac/test/unit/src/org/netbeans/lib/nbjavac/services/AnonymousNumberingTest.java b/lib.nbjavac/test/unit/src/org/netbeans/lib/nbjavac/services/AnonymousNumberingTest.java
index 1866c5e..e0e11c0 100644
--- a/lib.nbjavac/test/unit/src/org/netbeans/lib/nbjavac/services/AnonymousNumberingTest.java
+++ b/lib.nbjavac/test/unit/src/org/netbeans/lib/nbjavac/services/AnonymousNumberingTest.java
@@ -19,11 +19,16 @@
package org.netbeans.lib.nbjavac.services;
+import com.sun.source.tree.CompilationUnitTree;
import com.sun.tools.javac.api.JavacTaskImpl;
+import com.sun.tools.javac.code.Symbol;
import com.sun.tools.javac.code.Symtab;
import com.sun.tools.javac.comp.Modules;
+import com.sun.tools.javac.tree.JCTree;
+import com.sun.tools.javac.util.List;
import com.sun.tools.javac.util.Name;
import java.io.IOException;
+import javax.lang.model.element.Element;
import javax.lang.model.element.TypeElement;
import javax.lang.model.type.DeclaredType;
import junit.framework.TestCase;
@@ -38,7 +43,7 @@ public class AnonymousNumberingTest extends TestCase {
super(name);
}
- public void testCorrectAnonymousIndicesForMethodInvocations() throws IOException {
+ public void testCorrectAnonymousIndicesForMethodInvocations() throws Exception {
String code = "package test;\n" +
"public class Test {\n" +
" public Test main(Object o) {\n" +
@@ -56,9 +61,17 @@ public class AnonymousNumberingTest extends TestCase {
JavacTaskImpl ct = Utilities.createJavac(null, Utilities.fileObjectFor(code));
- ct.analyze();
+ Iterable<? extends CompilationUnitTree> cuts = ct.parse();
+ Iterable<? extends Element> analyze = ct.analyze();
+ System.err.println("repair: " + Class.forName("com.sun.tools.javac.comp.Repair"));
Symtab symTab = Symtab.instance(ct.getContext());
+
+ for (Symbol.ClassSymbol cs : symTab.getAllClasses()) {
+ if (cs.flatname.toString().contains("test.Test")) {
+ System.err.println("XXX");
+ }
+ }
Modules modules = Modules.instance(ct.getContext());
TypeElement first = symTab.getClass(modules.getDefaultModule(), (Name)ct.getElements().getName("test.Test$1"));
TypeElement second = symTab.getClass(modules.getDefaultModule(), (Name)ct.getElements().getName("test.Test$2"));
http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/lib.nbjavac/test/unit/src/org/netbeans/lib/nbjavac/services/CouplingTest.java
----------------------------------------------------------------------
diff --git a/lib.nbjavac/test/unit/src/org/netbeans/lib/nbjavac/services/CouplingTest.java b/lib.nbjavac/test/unit/src/org/netbeans/lib/nbjavac/services/CouplingTest.java
deleted file mode 100644
index 5e76c3c..0000000
--- a/lib.nbjavac/test/unit/src/org/netbeans/lib/nbjavac/services/CouplingTest.java
+++ /dev/null
@@ -1,177 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.netbeans.lib.nbjavac.services;
-
-import com.sun.source.tree.ClassTree;
-import com.sun.source.tree.CompilationUnitTree;
-import com.sun.source.util.TreePathScanner;
-import com.sun.source.util.Trees;
-import com.sun.tools.javac.api.JavacTaskImpl;
-import com.sun.tools.javac.code.Flags;
-import com.sun.tools.javac.code.Symbol.ClassSymbol;
-import com.sun.tools.javac.model.JavacElements;
-import java.io.File;
-import java.io.IOException;
-import java.net.URI;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-import javax.lang.model.element.Element;
-import javax.lang.model.element.TypeElement;
-import javax.tools.JavaCompiler;
-import javax.tools.JavaFileObject;
-import javax.tools.SimpleJavaFileObject;
-import javax.tools.StandardJavaFileManager;
-import javax.tools.StandardLocation;
-import javax.tools.ToolProvider;
-import junit.framework.TestCase;
-
-/**
- *
- * @author lahvac
- */
-public class CouplingTest extends TestCase {
-
- public void test200122() throws Exception {
- String code = "package test; public class Test { void t() { new Runnable() { public void run() {} }; } }";
- List<String> fqns = compile(code);
-
- assertEquals(testCoupling(code, false, fqns), testCoupling(code, true, fqns));
- }
-
- //<editor-fold defaultstate="collapsed" desc=" Test Infrastructure ">
- private static class MyFileObject extends SimpleJavaFileObject {
- private String text;
-
- public MyFileObject(String text) {
- super(URI.create("myfo:/Test.java"), JavaFileObject.Kind.SOURCE);
- this.text = text;
- }
-
- @Override
- public CharSequence getCharContent(boolean ignoreEncodingErrors) {
- return text;
- }
- }
-
- private File workingDir;
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- workingDir = File.createTempFile("CouplingTest", "");
-
- workingDir.delete();
- workingDir.mkdirs();
- }
-
- @Override
- protected void tearDown() throws Exception {
- deleteRecursively(workingDir);
- super.tearDown();
- }
-
- private List<String> compile(String code) throws Exception {
- final String bootPath = System.getProperty("sun.boot.class.path"); //NOI18N
- final String version = System.getProperty("java.vm.specification.version"); //NOI18N
- final JavaCompiler tool = ToolProvider.getSystemJavaCompiler();
- assert tool != null;
-
- StandardJavaFileManager std = tool.getStandardFileManager(null, null, null);
-
- std.setLocation(StandardLocation.CLASS_OUTPUT, Collections.singleton(workingDir));
-
- final JavacTaskImpl ct = (JavacTaskImpl)tool.getTask(null, std, null, Arrays.asList("-bootclasspath", bootPath, "-source", version, "-Xjcov", "-XDshouldStopPolicy=GENERATE"), null, Arrays.asList(new MyFileObject(code)));
- Iterable<? extends CompilationUnitTree> cuts = ct.parse();
-
- ct.analyze();
-
- final List<String> result = new ArrayList<String>();
-
- new TreePathScanner<Void, Void>() {
- @Override public Void visitClass(ClassTree node, Void p) {
- Element el = Trees.instance(ct).getElement(getCurrentPath());
-
- if (el != null && (el.getKind().isClass() || el.getKind().isInterface())) {
- result.add(ct.getElements().getBinaryName((TypeElement) el).toString());
- }
-
- return super.visitClass(node, p);
- }
- }.scan(cuts, null);
-
- ct.generate();
-
- return result;
- }
-
- private Set<String> testCoupling(String code, boolean loadFromClasses, List<String> fqns) throws IOException {
- final JavaCompiler tool = ToolProvider.getSystemJavaCompiler();
- assert tool != null;
-
- StandardJavaFileManager std = tool.getStandardFileManager(null, null, null);
-
- if (loadFromClasses) {
- std.setLocation(StandardLocation.CLASS_OUTPUT, Collections.singleton(workingDir));
- std.setLocation(StandardLocation.CLASS_PATH, Collections.singleton(workingDir));
- }
-
- JavacTaskImpl ct = Utilities.createJavac(std);
- ct.enter();
-
- if (loadFromClasses) {
- for (String fqn : fqns) {
- assertNotNull(fqn, ((JavacElements)ct.getElements()).getTypeElementByBinaryName(fqn));
- }
- }
-
- ct.parse(Utilities.fileObjectFor(code));
- ct.analyze();
-
- Set<String> classInfo = new HashSet<String>();
-
- for (String fqn : fqns) {
- ClassSymbol clazz = ((JavacElements)ct.getElements()).getTypeElementByBinaryName(fqn);
- StringBuilder info = new StringBuilder();
-
- info.append(clazz.flatname.toString()).append(",");
- info.append(Long.toHexString(clazz.flags() & ~(Flags.FROMCLASS | Flags.APT_CLEANED))).append(",");
- info.append(clazz.hasOuterInstance());
-
- classInfo.add(info.toString());
- }
-
- return classInfo;
- }
-
- private void deleteRecursively(File f) {
- if (f.isDirectory()) {
- for (File c : f.listFiles()) {
- deleteRecursively(c);
- }
- }
-
- f.delete();
- }
- //</editor-fold>
-}
http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/lib.nbjavac/test/unit/src/org/netbeans/lib/nbjavac/services/NBClassWriterTest.java
----------------------------------------------------------------------
diff --git a/lib.nbjavac/test/unit/src/org/netbeans/lib/nbjavac/services/NBClassWriterTest.java b/lib.nbjavac/test/unit/src/org/netbeans/lib/nbjavac/services/NBClassWriterTest.java
index 51ea6f7..2620b79 100644
--- a/lib.nbjavac/test/unit/src/org/netbeans/lib/nbjavac/services/NBClassWriterTest.java
+++ b/lib.nbjavac/test/unit/src/org/netbeans/lib/nbjavac/services/NBClassWriterTest.java
@@ -94,7 +94,7 @@ public class NBClassWriterTest extends NbTestCase {
final JavacTaskImpl ct = (JavacTaskImpl) ((JavacTool)tool).getTask(null, std, null, Arrays.asList("-bootclasspath", bootPath, "-source", "1.6", "-target", "1.6"), null, Arrays.asList(new MyFileObject(code)), context);
NBClassReader.preRegister(ct.getContext());
- JavadocClassFinder.preRegister(ct.getContext(), false);
+// JavadocClassFinder.preRegister(ct.getContext());
NBClassWriter.preRegister(ct.getContext());
ct.call();
@@ -112,10 +112,10 @@ public class NBClassWriterTest extends NbTestCase {
Context context = new Context();
NBMessager.preRegister(context, null, DEV_NULL, DEV_NULL, DEV_NULL);
- JavacTaskImpl ct = (JavacTaskImpl)((JavacTool)tool).getTask(null, std, null, Arrays.asList("-bootclasspath", bootPath), null, Arrays.<JavaFileObject>asList(), context);
+ JavacTaskImpl ct = (JavacTaskImpl)((JavacTool)tool).getTask(null, std, null, Arrays.asList("-bootclasspath", bootPath, "-source", "1.8", "-target", "1.8"), null, Arrays.<JavaFileObject>asList(), context);
NBClassReader.preRegister(ct.getContext());
- JavadocClassFinder.preRegister(ct.getContext(), false);
+// JavadocClassFinder.preRegister(ct.getContext());
NBClassWriter.preRegister(ct.getContext());
PackageElement pack = ct.getElements().getPackageElement(packageName);
http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/lib.nbjavac/test/unit/src/org/netbeans/lib/nbjavac/services/Utilities.java
----------------------------------------------------------------------
diff --git a/lib.nbjavac/test/unit/src/org/netbeans/lib/nbjavac/services/Utilities.java b/lib.nbjavac/test/unit/src/org/netbeans/lib/nbjavac/services/Utilities.java
index c0e8a2a..ad8c203 100644
--- a/lib.nbjavac/test/unit/src/org/netbeans/lib/nbjavac/services/Utilities.java
+++ b/lib.nbjavac/test/unit/src/org/netbeans/lib/nbjavac/services/Utilities.java
@@ -29,6 +29,8 @@ import java.io.Writer;
import java.net.URI;
import java.util.Arrays;
import java.util.Collections;
+import javax.tools.Diagnostic;
+import javax.tools.DiagnosticListener;
import javax.tools.JavaCompiler;
import javax.tools.JavaFileManager;
import javax.tools.JavaFileObject;
@@ -50,14 +52,17 @@ public class Utilities {
//need to preregister the Messages here, because the getTask below requires Log instance:
Messager.preRegister(context, null, DEV_NULL, DEV_NULL, DEV_NULL);
JavacTaskImpl task = (JavacTaskImpl)JavacTool.create().getTask(null,
- fm,
- null, Arrays.asList("-bootclasspath", bootPath, "-source", version, "-Xjcov", "-XDshouldStopPolicy=GENERATE"), null, Arrays.asList(sources),
+ fm, new DiagnosticListener<JavaFileObject>() {
+ @Override
+ public void report(Diagnostic<? extends JavaFileObject> diagnostic) {
+ System.err.println("diagnostic= " + diagnostic);
+ }
+ }
+ , Arrays.asList("-bootclasspath", bootPath, "-source", version, "-target", version, "-Xjcov", "-XDshouldStopPolicy=GENERATE"), null, Arrays.asList(sources),
context);
NBParserFactory.preRegister(context);
NBTreeMaker.preRegister(context);
- NBJavadocEnter.preRegister(context);
- PrintWriter w = new PrintWriter(System.out);
- JavadocClassFinder.preRegister(context, true);
+ NBEnter.preRegister(context);
return task;
}
http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/lib.nbjshell/nbproject/project.properties
----------------------------------------------------------------------
diff --git a/lib.nbjshell/nbproject/project.properties b/lib.nbjshell/nbproject/project.properties
index 484c87b..d457ff7 100644
--- a/lib.nbjshell/nbproject/project.properties
+++ b/lib.nbjshell/nbproject/project.properties
@@ -21,3 +21,4 @@ cp.extra=${tools.jar}
sigtest.skip.check=true
sigtest.gen.fail.on.error=false
is.autoload=true
+requires.nb.javac=true
http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/libs.javacapi/build.xml
----------------------------------------------------------------------
diff --git a/libs.javacapi/build.xml b/libs.javacapi/build.xml
index fb52289..216907d 100644
--- a/libs.javacapi/build.xml
+++ b/libs.javacapi/build.xml
@@ -21,4 +21,17 @@
-->
<project name="libs.javacapi" default="netbeans" basedir=".">
<import file="../nbbuild/templates/projectized.xml"/>
+ <target name="-check-nb-javac-exists">
+ <available property="nb-javac.exists" file="../nb-javac/make/netbeans/nb-javac/build.xml"/>
+ </target>
+ <target name="-release.files-build-javac" if="nb-javac.exists">
+ <ant dir="../nb-javac/make/netbeans/nb-javac" target="jar" inheritAll="false"/>
+ <copy file="../nb-javac/make/netbeans/nb-javac/dist/javac-api.jar" tofile="external/nb-javac-api.jar" overwrite="true"/>
+<!-- <property name="release.files.extra" value="modules/ext/nb-javac-api.jar"/>-->
+ </target>
+ <target name="-release.files-delegate" unless="nb-javac.exists">
+ <antcall target="projectized.-release.files" />
+<!-- <property name="release.files.extra" value="modules/ext/nb-javac-api.jar"/>-->
+ </target>
+ <target name="-release.files" depends="-check-nb-javac-exists,-release.files-build-javac,-release.files-delegate" />
</project>
http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/libs.javacapi/manifest.mf
----------------------------------------------------------------------
diff --git a/libs.javacapi/manifest.mf b/libs.javacapi/manifest.mf
index 1017f66..7a11322 100644
--- a/libs.javacapi/manifest.mf
+++ b/libs.javacapi/manifest.mf
@@ -4,4 +4,4 @@ OpenIDE-Module-Implementation-Version: 3
OpenIDE-Module-Localizing-Bundle: org/netbeans/libs/javacapi/Bundle.properties
OpenIDE-Module-Layer: org/netbeans/libs/javacapi/layer.xml
OpenIDE-Module-Requires: org.openide.modules.ModuleFormat2
-OpenIDE-Module-Hide-Classpath-Packages: com.sun.javadoc.**, com.sun.source.**, javax.annotation.processing.**, javax.lang.model.**, javax.tools.**, com.sun.tools.javac.**
+XOpenIDE-Module-Hide-Classpath-Packages: com.sun.javadoc.**, com.sun.source.**, javax.annotation.processing.**, javax.lang.model.**, javax.tools.**, com.sun.tools.javac.** com.sun.tools.javac.**, com.sun.tools.javadoc.**, com.sun.tools.javap.**, com.sun.tools.classfile.**, com.sun.tools.doclint.**
http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/libs.javacapi/nbproject/project.properties
----------------------------------------------------------------------
diff --git a/libs.javacapi/nbproject/project.properties b/libs.javacapi/nbproject/project.properties
index 66800e7..e9b9f60 100644
--- a/libs.javacapi/nbproject/project.properties
+++ b/libs.javacapi/nbproject/project.properties
@@ -22,6 +22,8 @@ javadoc.title=Javac API
nbm.homepage=http://jackpot.netbeans.org/
nbm.module.author=Petr Hrebejk
spec.version.base=8.21.0
-release.external/nb-javac-api.jar=modules/ext/nb-javac-api.jar
+#release.external/nb-javac-api.jar=modules/ext/nb-javac-api.jar
javadoc.arch=${basedir}/arch.xml
module.javadoc.packages=com.sun.source.tree,com.sun.source.util
+requires.nb.javac=true
+requires.nb.javac=true
http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/libs.javacapi/nbproject/project.xml
----------------------------------------------------------------------
diff --git a/libs.javacapi/nbproject/project.xml b/libs.javacapi/nbproject/project.xml
index 21efad0..e068833 100644
--- a/libs.javacapi/nbproject/project.xml
+++ b/libs.javacapi/nbproject/project.xml
@@ -26,6 +26,8 @@
<code-name-base>org.netbeans.libs.javacapi</code-name-base>
<module-dependencies/>
<public-packages>
+ <!-- TODO: need to specify exports here, because fragments cannot add exports - should be fixed? -->
+ <package>org.netbeans.libs.javacapi</package>
<package>com.sun.javadoc</package>
<package>com.sun.source.doctree</package>
<package>com.sun.source.tree</package>
@@ -37,10 +39,10 @@
<package>javax.lang.model.util</package>
<package>javax.tools</package>
</public-packages>
- <class-path-extension>
+<!-- <class-path-extension>
<runtime-relative-path>ext/nb-javac-api.jar</runtime-relative-path>
<binary-origin>external/nb-javac-api.jar</binary-origin>
- </class-path-extension>
+ </class-path-extension>-->
</data>
</configuration>
</project>
http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/libs.javacimpl/build.xml
----------------------------------------------------------------------
diff --git a/libs.javacimpl/build.xml b/libs.javacimpl/build.xml
index 30feadd..9cef228 100644
--- a/libs.javacimpl/build.xml
+++ b/libs.javacimpl/build.xml
@@ -27,11 +27,11 @@
<target name="-release.files-build-javac" if="nb-javac.exists">
<ant dir="../nb-javac/make/netbeans/nb-javac" target="jar" inheritAll="false"/>
<copy file="../nb-javac/make/netbeans/nb-javac/dist/javac-impl.jar" tofile="external/nb-javac-impl.jar" overwrite="true"/>
- <property name="release.files.extra" value="modules/ext/nb-javac-impl.jar"/>
+<!-- <property name="release.files.extra" value="modules/ext/nb-javac-impl.jar"/>-->
</target>
<target name="-release.files-delegate" unless="nb-javac.exists">
<antcall target="projectized.-release.files" />
- <property name="release.files.extra" value="modules/ext/nb-javac-impl.jar"/>
+<!-- <property name="release.files.extra" value="modules/ext/nb-javac-impl.jar"/>-->
</target>
<target name="-release.files" depends="-check-nb-javac-exists,-release.files-build-javac,-release.files-delegate" />
</project>
http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/libs.javacimpl/manifest.mf
----------------------------------------------------------------------
diff --git a/libs.javacimpl/manifest.mf b/libs.javacimpl/manifest.mf
index 276717c..e0ab3ac 100644
--- a/libs.javacimpl/manifest.mf
+++ b/libs.javacimpl/manifest.mf
@@ -3,5 +3,5 @@ OpenIDE-Module: org.netbeans.libs.javacimpl/1
OpenIDE-Module-Implementation-Version: 25
OpenIDE-Module-Localizing-Bundle: org/netbeans/libs/javacimpl/Bundle.properties
OpenIDE-Module-Requires: org.openide.modules.ModuleFormat2
-OpenIDE-Module-Hide-Classpath-Packages: com.sun.tools.javac.**, com.sun.tools.javadoc.**, com.sun.tools.javap.**, com.sun.tools.classfile.**, com.sun.tools.doclint.**
-
+xOpenIDE-Module-Hide-Classpath-Packages: com.sun.tools.javac.**, com.sun.tools.javadoc.**, com.sun.tools.javap.**, com.sun.tools.classfile.**, com.sun.tools.doclint.**
+xOpenIDE-Module-Fragment-Host: org.netbeans.libs.javacapi