From 1188b275dba6e36f6949372dadbc4b3eb826d013 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christoph=20L=C3=A4ubrich?= Date: Thu, 9 Nov 2023 16:24:35 +0100 Subject: [PATCH 1/3] Add reproducer for API tools failure if the whole bundle is a jar --- .../api-tools/single-jar/.mvn/extensions.xml | 7 + .../api-tools/single-jar/.mvn/maven.config | 1 + .../org.eclipse.jdt.debug/.classpath | 13 + .../org.eclipse.jdt.debug/.gitignore | 1 + .../single-jar/org.eclipse.jdt.debug/.project | 34 + .../.settings/.api_filters | 11 + .../.settings/org.eclipse.core.runtime.prefs | 2 + .../.settings/org.eclipse.jdt.core.prefs | 437 +++++++++ .../.settings/org.eclipse.jdt.ui.prefs | 64 ++ .../.settings/org.eclipse.pde.api.tools.prefs | 104 ++ .../.settings/org.eclipse.pde.prefs | 36 + .../META-INF/MANIFEST.MF | 36 + .../org.eclipse.jdt.debug/build.properties | 26 + .../jdt/debug/eval/EvaluationManager.java | 76 ++ .../jdt/debug/eval/IAstEvaluationEngine.java | 235 +++++ .../eval/IClassFileEvaluationEngine.java | 92 ++ .../jdt/debug/eval/ICompiledExpression.java | 65 ++ .../jdt/debug/eval/IEvaluationEngine.java | 155 +++ .../jdt/debug/eval/IEvaluationListener.java | 39 + .../jdt/debug/eval/IEvaluationResult.java | 119 +++ .../org/eclipse/jdt/debug/eval/package.html | 21 + .../jdi/org/eclipse/jdi/Bootstrap.java | 26 + .../org/eclipse/jdi/OpaqueFrameException.java | 32 + .../jdi/org/eclipse/jdi/TimeoutException.java | 25 + .../jdi/org/eclipse/jdi/VirtualMachine.java | 28 + .../eclipse/jdi/hcr/EventRequestManager.java | 52 + .../jdi/hcr/OperationRefusedException.java | 32 + .../eclipse/jdi/hcr/ReenterStepRequest.java | 82 ++ .../org/eclipse/jdi/hcr/ReferenceType.java | 80 ++ .../org/eclipse/jdi/hcr/ThreadReference.java | 90 ++ .../org/eclipse/jdi/hcr/VirtualMachine.java | 153 +++ .../jdt/debug/core/IEvaluationRunnable.java | 46 + .../eclipse/jdt/debug/core/IJavaArray.java | 132 +++ .../jdt/debug/core/IJavaArrayType.java | 60 ++ .../jdt/debug/core/IJavaBreakpoint.java | 272 +++++ .../debug/core/IJavaBreakpointListener.java | 191 ++++ .../jdt/debug/core/IJavaClassObject.java | 35 + .../core/IJavaClassPrepareBreakpoint.java | 47 + .../jdt/debug/core/IJavaClassType.java | 171 ++++ .../jdt/debug/core/IJavaDebugTarget.java | 583 +++++++++++ .../debug/core/IJavaExceptionBreakpoint.java | 248 +++++ .../jdt/debug/core/IJavaFieldVariable.java | 81 ++ .../core/IJavaHotCodeReplaceListener.java | 62 ++ .../jdt/debug/core/IJavaInterfaceType.java | 128 +++ .../jdt/debug/core/IJavaLineBreakpoint.java | 123 +++ .../jdt/debug/core/IJavaMethodBreakpoint.java | 159 +++ .../core/IJavaMethodEntryBreakpoint.java | 57 ++ .../jdt/debug/core/IJavaModifiers.java | 129 +++ .../eclipse/jdt/debug/core/IJavaObject.java | 258 +++++ .../debug/core/IJavaPatternBreakpoint.java | 56 ++ .../jdt/debug/core/IJavaPrimitiveValue.java | 80 ++ .../jdt/debug/core/IJavaReferenceType.java | 194 ++++ .../jdt/debug/core/IJavaStackFrame.java | 536 ++++++++++ .../core/IJavaStratumLineBreakpoint.java | 87 ++ .../core/IJavaTargetPatternBreakpoint.java | 70 ++ .../eclipse/jdt/debug/core/IJavaThread.java | 315 ++++++ .../jdt/debug/core/IJavaThreadGroup.java | 84 ++ .../org/eclipse/jdt/debug/core/IJavaType.java | 59 ++ .../eclipse/jdt/debug/core/IJavaValue.java | 85 ++ .../eclipse/jdt/debug/core/IJavaVariable.java | 99 ++ .../jdt/debug/core/IJavaWatchpoint.java | 58 ++ .../eclipse/jdt/debug/core/JDIDebugModel.java | 927 ++++++++++++++++++ .../org/eclipse/jdt/debug/core/package.html | 22 + .../org.eclipse.jdt.debug/plugin.properties | 48 + .../org.eclipse.jdt.debug/plugin.xml | 378 +++++++ .../schema/breakpointListeners.exsd | 156 +++ .../schema/javaLogicalStructures.exsd | 184 ++++ .../schema/jdiclient.exsd | 104 ++ .../projects/api-tools/single-jar/pom.xml | 60 ++ .../repositories/api-tools/artifacts.xml | 13 + tycho-its/repositories/api-tools/content.xml | 57 ++ ...ipse.jdt.debug_3.21.100.v20230728-0612.jar | Bin 0 -> 948292 bytes .../tycho/test/apitools/ApiToolsTest.java | 18 + 73 files changed, 8646 insertions(+) create mode 100644 tycho-its/projects/api-tools/single-jar/.mvn/extensions.xml create mode 100644 tycho-its/projects/api-tools/single-jar/.mvn/maven.config create mode 100644 tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/.classpath create mode 100644 tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/.gitignore create mode 100644 tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/.project create mode 100644 tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/.settings/.api_filters create mode 100644 tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/.settings/org.eclipse.core.runtime.prefs create mode 100644 tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/.settings/org.eclipse.jdt.core.prefs create mode 100644 tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/.settings/org.eclipse.jdt.ui.prefs create mode 100644 tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/.settings/org.eclipse.pde.api.tools.prefs create mode 100644 tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/.settings/org.eclipse.pde.prefs create mode 100644 tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/META-INF/MANIFEST.MF create mode 100644 tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/build.properties create mode 100644 tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/eval/org/eclipse/jdt/debug/eval/EvaluationManager.java create mode 100644 tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/eval/org/eclipse/jdt/debug/eval/IAstEvaluationEngine.java create mode 100644 tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/eval/org/eclipse/jdt/debug/eval/IClassFileEvaluationEngine.java create mode 100644 tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/eval/org/eclipse/jdt/debug/eval/ICompiledExpression.java create mode 100644 tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/eval/org/eclipse/jdt/debug/eval/IEvaluationEngine.java create mode 100644 tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/eval/org/eclipse/jdt/debug/eval/IEvaluationListener.java create mode 100644 tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/eval/org/eclipse/jdt/debug/eval/IEvaluationResult.java create mode 100644 tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/eval/org/eclipse/jdt/debug/eval/package.html create mode 100644 tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/Bootstrap.java create mode 100644 tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/OpaqueFrameException.java create mode 100644 tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/TimeoutException.java create mode 100644 tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/VirtualMachine.java create mode 100644 tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/hcr/EventRequestManager.java create mode 100644 tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/hcr/OperationRefusedException.java create mode 100644 tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/hcr/ReenterStepRequest.java create mode 100644 tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/hcr/ReferenceType.java create mode 100644 tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/hcr/ThreadReference.java create mode 100644 tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/hcr/VirtualMachine.java create mode 100644 tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IEvaluationRunnable.java create mode 100644 tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaArray.java create mode 100644 tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaArrayType.java create mode 100644 tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaBreakpoint.java create mode 100644 tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaBreakpointListener.java create mode 100644 tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaClassObject.java create mode 100644 tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaClassPrepareBreakpoint.java create mode 100644 tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaClassType.java create mode 100644 tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaDebugTarget.java create mode 100644 tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaExceptionBreakpoint.java create mode 100644 tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaFieldVariable.java create mode 100644 tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaHotCodeReplaceListener.java create mode 100644 tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaInterfaceType.java create mode 100644 tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaLineBreakpoint.java create mode 100644 tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaMethodBreakpoint.java create mode 100644 tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaMethodEntryBreakpoint.java create mode 100644 tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaModifiers.java create mode 100644 tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaObject.java create mode 100644 tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaPatternBreakpoint.java create mode 100644 tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaPrimitiveValue.java create mode 100644 tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaReferenceType.java create mode 100644 tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaStackFrame.java create mode 100644 tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaStratumLineBreakpoint.java create mode 100644 tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaTargetPatternBreakpoint.java create mode 100644 tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaThread.java create mode 100644 tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaThreadGroup.java create mode 100644 tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaType.java create mode 100644 tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaValue.java create mode 100644 tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaVariable.java create mode 100644 tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/IJavaWatchpoint.java create mode 100644 tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/JDIDebugModel.java create mode 100644 tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/model/org/eclipse/jdt/debug/core/package.html create mode 100644 tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/plugin.properties create mode 100644 tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/plugin.xml create mode 100644 tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/schema/breakpointListeners.exsd create mode 100644 tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/schema/javaLogicalStructures.exsd create mode 100644 tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/schema/jdiclient.exsd create mode 100644 tycho-its/projects/api-tools/single-jar/pom.xml create mode 100644 tycho-its/repositories/api-tools/plugins/org.eclipse.jdt.debug_3.21.100.v20230728-0612.jar diff --git a/tycho-its/projects/api-tools/single-jar/.mvn/extensions.xml b/tycho-its/projects/api-tools/single-jar/.mvn/extensions.xml new file mode 100644 index 0000000000..79a6c51e8d --- /dev/null +++ b/tycho-its/projects/api-tools/single-jar/.mvn/extensions.xml @@ -0,0 +1,7 @@ + + + org.eclipse.tycho + tycho-build + ${tycho-version} + + diff --git a/tycho-its/projects/api-tools/single-jar/.mvn/maven.config b/tycho-its/projects/api-tools/single-jar/.mvn/maven.config new file mode 100644 index 0000000000..babb6c469f --- /dev/null +++ b/tycho-its/projects/api-tools/single-jar/.mvn/maven.config @@ -0,0 +1 @@ +-Dtycho-version=5.0.0-SNAPSHOT diff --git a/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/.classpath b/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/.classpath new file mode 100644 index 0000000000..3bc414e51b --- /dev/null +++ b/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/.classpath @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/.gitignore b/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/.gitignore new file mode 100644 index 0000000000..2b5da58023 --- /dev/null +++ b/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/.gitignore @@ -0,0 +1 @@ +/jdi-bin/ diff --git a/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/.project b/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/.project new file mode 100644 index 0000000000..e700941ac6 --- /dev/null +++ b/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/.project @@ -0,0 +1,34 @@ + + + org.eclipse.jdt.debug + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + org.eclipse.pde.api.tools.apiAnalysisBuilder + + + + + + org.eclipse.jdt.core.javanature + org.eclipse.pde.PluginNature + org.eclipse.pde.api.tools.apiAnalysisNature + + diff --git a/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/.settings/.api_filters b/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/.settings/.api_filters new file mode 100644 index 0000000000..3a969362f8 --- /dev/null +++ b/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/.settings/.api_filters @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/.settings/org.eclipse.core.runtime.prefs b/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/.settings/org.eclipse.core.runtime.prefs new file mode 100644 index 0000000000..5a0ad22d2a --- /dev/null +++ b/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/.settings/org.eclipse.core.runtime.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +line.separator=\n diff --git a/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/.settings/org.eclipse.jdt.core.prefs b/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000000..311a6ec65e --- /dev/null +++ b/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,437 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.builder.cleanOutputFolder=clean +org.eclipse.jdt.core.builder.duplicateResourceTask=warning +org.eclipse.jdt.core.builder.invalidClasspath=abort +org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore +org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch +org.eclipse.jdt.core.circularClasspath=error +org.eclipse.jdt.core.classpath.exclusionPatterns=enabled +org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled +org.eclipse.jdt.core.classpath.outputOverlappingAnotherSource=error +org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled +org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore +org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull +org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault +org.eclipse.jdt.core.compiler.annotation.nonnullisdefault=disabled +org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable +org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate +org.eclipse.jdt.core.compiler.codegen.targetPlatform=17 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=17 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.doc.comment.support=enabled +org.eclipse.jdt.core.compiler.maxProblemPerUnit=100 +org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.autoboxing=ignore +org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning +org.eclipse.jdt.core.compiler.problem.deadCode=warning +org.eclipse.jdt.core.compiler.problem.deprecation=warning +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=warning +org.eclipse.jdt.core.compiler.problem.emptyStatement=warning +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=error +org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled +org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore +org.eclipse.jdt.core.compiler.problem.finalParameterBound=error +org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning +org.eclipse.jdt.core.compiler.problem.forbiddenReference=ignore +org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning +org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled +org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning +org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=error +org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning +org.eclipse.jdt.core.compiler.problem.invalidJavadoc=ignore +org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=protected +org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning +org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled +org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore +org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore +org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled +org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public +org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=all_standard_tags +org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore +org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled +org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled +org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=protected +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore +org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning +org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning +org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=error +org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning +org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error +org.eclipse.jdt.core.compiler.problem.nullReference=error +org.eclipse.jdt.core.compiler.problem.nullSpecInsufficientInfo=warning +org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error +org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning +org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore +org.eclipse.jdt.core.compiler.problem.potentialNullSpecViolation=error +org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore +org.eclipse.jdt.core.compiler.problem.rawTypeReference=error +org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore +org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=warning +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore +org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore +org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning +org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled +org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning +org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=enabled +org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled +org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled +org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore +org.eclipse.jdt.core.compiler.problem.typeParameterHiding=ignore +org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=disabled +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=error +org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning +org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore +org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=error +org.eclipse.jdt.core.compiler.problem.unnecessaryElse=error +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=error +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore +org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=warning +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled +org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore +org.eclipse.jdt.core.compiler.problem.unusedImport=error +org.eclipse.jdt.core.compiler.problem.unusedLabel=error +org.eclipse.jdt.core.compiler.problem.unusedLocal=error +org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore +org.eclipse.jdt.core.compiler.problem.unusedParameter=warning +org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled +org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error +org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=error +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning +org.eclipse.jdt.core.compiler.release=enabled +org.eclipse.jdt.core.compiler.source=17 +org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled +org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,NORMAL,HIGH,HIGH +org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX,EXPERIMENTAL,CONTEXTLAUNCHING +org.eclipse.jdt.core.formatter.align_type_members_on_columns=false +org.eclipse.jdt.core.formatter.alignment_for_additive_operator=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=0 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=0 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=0 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=0 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=0 +org.eclipse.jdt.core.formatter.alignment_for_assignment=0 +org.eclipse.jdt.core.formatter.alignment_for_bitwise_operator=16 +org.eclipse.jdt.core.formatter.alignment_for_compact_if=0 +org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80 +org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0 +org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16 +org.eclipse.jdt.core.formatter.alignment_for_logical_operator=16 +org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0 +org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16 +org.eclipse.jdt.core.formatter.alignment_for_multiplicative_operator=16 +org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=0 +org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=0 +org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=0 +org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=0 +org.eclipse.jdt.core.formatter.alignment_for_string_concatenation=16 +org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=0 +org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=0 +org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=0 +org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=0 +org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=0 +org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16 +org.eclipse.jdt.core.formatter.blank_lines_after_imports=1 +org.eclipse.jdt.core.formatter.blank_lines_after_package=1 +org.eclipse.jdt.core.formatter.blank_lines_before_field=0 +org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0 +org.eclipse.jdt.core.formatter.blank_lines_before_imports=1 +org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1 +org.eclipse.jdt.core.formatter.blank_lines_before_method=1 +org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1 +org.eclipse.jdt.core.formatter.blank_lines_before_package=0 +org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1 +org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1 +org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false +org.eclipse.jdt.core.formatter.comment.format_block_comments=true +org.eclipse.jdt.core.formatter.comment.format_header=false +org.eclipse.jdt.core.formatter.comment.format_html=true +org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true +org.eclipse.jdt.core.formatter.comment.format_line_comments=true +org.eclipse.jdt.core.formatter.comment.format_source_code=true +org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true +org.eclipse.jdt.core.formatter.comment.indent_root_tags=true +org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert +org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert +org.eclipse.jdt.core.formatter.comment.line_length=150 +org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true +org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true +org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false +org.eclipse.jdt.core.formatter.compact_else_if=true +org.eclipse.jdt.core.formatter.continuation_indentation=2 +org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2 +org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off +org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on +org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false +org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true +org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true +org.eclipse.jdt.core.formatter.indent_empty_lines=false +org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true +org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true +org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true +org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true +org.eclipse.jdt.core.formatter.indentation.size=4 +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_after_additive_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert +org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_bitwise_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert +org.eclipse.jdt.core.formatter.insert_space_after_logical_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_multiplicative_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_relational_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert +org.eclipse.jdt.core.formatter.insert_space_after_shift_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_string_concatenation=insert +org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_additive_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert +org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_bitwise_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_logical_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_multiplicative_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert +org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert +org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert +org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_relational_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_shift_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_string_concatenation=insert +org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.join_lines_in_comments=true +org.eclipse.jdt.core.formatter.join_wrapped_lines=true +org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false +org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false +org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false +org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false +org.eclipse.jdt.core.formatter.lineSplit=150 +org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false +org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false +org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0 +org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1 +org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true +org.eclipse.jdt.core.formatter.tabulation.char=tab +org.eclipse.jdt.core.formatter.tabulation.size=4 +org.eclipse.jdt.core.formatter.use_on_off_tags=false +org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false +org.eclipse.jdt.core.formatter.wrap_before_additive_operator=true +org.eclipse.jdt.core.formatter.wrap_before_bitwise_operator=true +org.eclipse.jdt.core.formatter.wrap_before_logical_operator=true +org.eclipse.jdt.core.formatter.wrap_before_multiplicative_operator=true +org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true +org.eclipse.jdt.core.formatter.wrap_before_string_concatenation=true +org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true +org.eclipse.jdt.core.incompatibleJDKLevel=ignore +org.eclipse.jdt.core.incompleteClasspath=error diff --git a/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/.settings/org.eclipse.jdt.ui.prefs b/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/.settings/org.eclipse.jdt.ui.prefs new file mode 100644 index 0000000000..121cc3d48a --- /dev/null +++ b/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/.settings/org.eclipse.jdt.ui.prefs @@ -0,0 +1,64 @@ +cleanup_settings_version=2 +eclipse.preferences.version=1 +editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true +formatter_profile=_Platform Debug Formatting +formatter_settings_version=12 +sp_cleanup.add_default_serial_version_id=true +sp_cleanup.add_generated_serial_version_id=false +sp_cleanup.add_missing_annotations=true +sp_cleanup.add_missing_deprecated_annotations=true +sp_cleanup.add_missing_methods=false +sp_cleanup.add_missing_nls_tags=false +sp_cleanup.add_missing_override_annotations=true +sp_cleanup.add_missing_override_annotations_interface_methods=true +sp_cleanup.add_serial_version_id=false +sp_cleanup.always_use_blocks=true +sp_cleanup.always_use_parentheses_in_expressions=false +sp_cleanup.always_use_this_for_non_static_field_access=false +sp_cleanup.always_use_this_for_non_static_method_access=false +sp_cleanup.convert_functional_interfaces=false +sp_cleanup.convert_to_enhanced_for_loop=false +sp_cleanup.correct_indentation=false +sp_cleanup.format_source_code=true +sp_cleanup.format_source_code_changes_only=true +sp_cleanup.insert_inferred_type_arguments=false +sp_cleanup.make_local_variable_final=false +sp_cleanup.make_parameters_final=false +sp_cleanup.make_private_fields_final=true +sp_cleanup.make_type_abstract_if_missing_method=false +sp_cleanup.make_variable_declarations_final=false +sp_cleanup.never_use_blocks=false +sp_cleanup.never_use_parentheses_in_expressions=true +sp_cleanup.on_save_use_additional_actions=true +sp_cleanup.organize_imports=true +sp_cleanup.qualify_static_field_accesses_with_declaring_class=false +sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_with_declaring_class=false +sp_cleanup.qualify_static_method_accesses_with_declaring_class=false +sp_cleanup.remove_private_constructors=true +sp_cleanup.remove_redundant_type_arguments=true +sp_cleanup.remove_trailing_whitespaces=true +sp_cleanup.remove_trailing_whitespaces_all=true +sp_cleanup.remove_trailing_whitespaces_ignore_empty=false +sp_cleanup.remove_unnecessary_casts=true +sp_cleanup.remove_unnecessary_nls_tags=true +sp_cleanup.remove_unused_imports=true +sp_cleanup.remove_unused_local_variables=false +sp_cleanup.remove_unused_private_fields=true +sp_cleanup.remove_unused_private_members=false +sp_cleanup.remove_unused_private_methods=true +sp_cleanup.remove_unused_private_types=true +sp_cleanup.sort_members=false +sp_cleanup.sort_members_all=false +sp_cleanup.update_ibm_copyright_to_current_year=false +sp_cleanup.use_anonymous_class_creation=false +sp_cleanup.use_blocks=true +sp_cleanup.use_blocks_only_for_return_and_throw=false +sp_cleanup.use_lambda=false +sp_cleanup.use_parentheses_in_expressions=false +sp_cleanup.use_this_for_non_static_field_access=false +sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true +sp_cleanup.use_this_for_non_static_method_access=false +sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true +sp_cleanup.use_type_arguments=false diff --git a/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/.settings/org.eclipse.pde.api.tools.prefs b/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/.settings/org.eclipse.pde.api.tools.prefs new file mode 100644 index 0000000000..14ef7d2e3a --- /dev/null +++ b/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/.settings/org.eclipse.pde.api.tools.prefs @@ -0,0 +1,104 @@ +ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error +ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error +ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error +ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error +ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error +ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error +API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error +API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error +API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error +API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error +API_USE_SCAN_FIELD_SEVERITY=Error +API_USE_SCAN_METHOD_SEVERITY=Error +API_USE_SCAN_TYPE_SEVERITY=Error +CLASS_ELEMENT_TYPE_ADDED_FIELD=Error +CLASS_ELEMENT_TYPE_ADDED_METHOD=Error +CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error +CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error +CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error +CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error +CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error +CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error +CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error +CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error +CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error +CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error +CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error +CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error +CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error +CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error +CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error +CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error +CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error +ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error +ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error +ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error +ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error +ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error +ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error +FIELD_ELEMENT_TYPE_ADDED_VALUE=Error +FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error +FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error +FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error +FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error +FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error +FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error +FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error +FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error +FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error +ILLEGAL_EXTEND=Warning +ILLEGAL_IMPLEMENT=Warning +ILLEGAL_INSTANTIATE=Warning +ILLEGAL_OVERRIDE=Warning +ILLEGAL_REFERENCE=Warning +INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Error +INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error +INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error +INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error +INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error +INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error +INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error +INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error +INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error +INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error +INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error +INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error +INVALID_ANNOTATION=Ignore +INVALID_JAVADOC_TAG=Warning +INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Warning +LEAK_EXTEND=Warning +LEAK_FIELD_DECL=Warning +LEAK_IMPLEMENT=Warning +LEAK_METHOD_PARAM=Warning +LEAK_METHOD_RETURN_TYPE=Warning +METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error +METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error +METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error +METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error +METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error +METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error +METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error +METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error +METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error +METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error +MISSING_EE_DESCRIPTIONS=Warning +TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error +TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error +TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error +TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error +TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error +TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error +UNUSED_PROBLEM_FILTERS=Warning +automatically_removed_unused_problem_filters=false +changed_execution_env=Error +eclipse.preferences.version=1 +incompatible_api_component_version=Error +incompatible_api_component_version_include_major_without_breaking_change=Disabled +incompatible_api_component_version_include_minor_without_api_change=Disabled +incompatible_api_component_version_report_major_without_breaking_change=Error +incompatible_api_component_version_report_minor_without_api_change=Error +invalid_since_tag_version=Error +malformed_since_tag=Error +missing_since_tag=Error +report_api_breakage_when_major_version_incremented=Disabled +report_resolution_errors_api_component=Warning diff --git a/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/.settings/org.eclipse.pde.prefs b/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/.settings/org.eclipse.pde.prefs new file mode 100644 index 0000000000..45e1620486 --- /dev/null +++ b/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/.settings/org.eclipse.pde.prefs @@ -0,0 +1,36 @@ +compilers.f.unresolved-features=1 +compilers.f.unresolved-plugins=1 +compilers.incompatible-environment=1 +compilers.p.build=1 +compilers.p.build.bin.includes=1 +compilers.p.build.encodings=2 +compilers.p.build.java.compiler=2 +compilers.p.build.java.compliance=1 +compilers.p.build.missing.output=1 +compilers.p.build.output.library=1 +compilers.p.build.source.library=1 +compilers.p.build.src.includes=1 +compilers.p.deprecated=2 +compilers.p.discouraged-class=1 +compilers.p.illegal-att-value=0 +compilers.p.internal=1 +compilers.p.matching-pom-version=0 +compilers.p.missing-packages=0 +compilers.p.missing-version-export-package=2 +compilers.p.missing-version-import-package=2 +compilers.p.missing-version-require-bundle=2 +compilers.p.no-required-att=0 +compilers.p.not-externalized-att=0 +compilers.p.unknown-attribute=0 +compilers.p.unknown-class=1 +compilers.p.unknown-element=2 +compilers.p.unknown-identifier=1 +compilers.p.unknown-resource=0 +compilers.p.unresolved-ex-points=1 +compilers.p.unresolved-import=0 +compilers.p.unused-element-or-attribute=1 +compilers.s.create-docs=false +compilers.s.doc-folder=doc +compilers.s.open-tags=1 +compilers.use-project=true +eclipse.preferences.version=1 diff --git a/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/META-INF/MANIFEST.MF b/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/META-INF/MANIFEST.MF new file mode 100644 index 0000000000..e2393b6712 --- /dev/null +++ b/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/META-INF/MANIFEST.MF @@ -0,0 +1,36 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: %pluginName +Bundle-SymbolicName: org.eclipse.jdt.debug; singleton:=true +Bundle-Version: 3.22.0.qualifier +Bundle-ClassPath: jdimodel.jar +Bundle-Activator: org.eclipse.jdt.internal.debug.core.JDIDebugPlugin +Bundle-Vendor: %providerName +Bundle-Localization: plugin +Export-Package: org.eclipse.jdi, + org.eclipse.jdi.hcr, + org.eclipse.jdi.internal;x-friends:="org.eclipse.jdt.debug.ui", + org.eclipse.jdi.internal.connect;x-friends:="org.eclipse.jdt.debug.ui", + org.eclipse.jdi.internal.event;x-friends:="org.eclipse.jdt.debug.ui", + org.eclipse.jdi.internal.jdwp;x-friends:="org.eclipse.jdt.debug.ui", + org.eclipse.jdi.internal.request;x-friends:="org.eclipse.jdt.debug.ui", + org.eclipse.jdi.internal.spy;x-friends:="org.eclipse.jdt.debug.ui", + org.eclipse.jdt.debug.core, + org.eclipse.jdt.debug.eval, + org.eclipse.jdt.internal.debug.core;x-friends:="org.eclipse.jdt.debug.ui,org.eclipse.jdt.launching", + org.eclipse.jdt.internal.debug.core.breakpoints;x-friends:="org.eclipse.jdt.debug.ui", + org.eclipse.jdt.internal.debug.core.hcr;x-friends:="org.eclipse.jdt.debug.ui", + org.eclipse.jdt.internal.debug.core.logicalstructures;x-friends:="org.eclipse.jdt.debug.ui", + org.eclipse.jdt.internal.debug.core.model;x-friends:="org.eclipse.jdt.debug.ui", + org.eclipse.jdt.internal.debug.eval;x-friends:="org.eclipse.jdt.debug.ui", + org.eclipse.jdt.internal.debug.eval.ast.engine;x-friends:="org.eclipse.jdt.debug.ui", + org.eclipse.jdt.internal.debug.eval.ast.instructions;x-friends:="org.eclipse.jdt.debug.ui" +Require-Bundle: org.eclipse.core.resources;bundle-version="[3.19.0,4.0.0)", + org.eclipse.debug.core;bundle-version="[3.21.0,4.0.0)", + org.eclipse.jdt.core;bundle-version="[3.34.0,4.0.0)", + org.eclipse.core.runtime;bundle-version="[3.0.0,4.0.0)", + org.eclipse.core.expressions;bundle-version="[3.9.0,4.0.0)" +Bundle-ActivationPolicy: lazy +Bundle-RequiredExecutionEnvironment: JavaSE-17 +Eclipse-BundleShape: dir +Automatic-Module-Name: org.eclipse.jdt.debug diff --git a/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/build.properties b/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/build.properties new file mode 100644 index 0000000000..0e8ad5a407 --- /dev/null +++ b/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/build.properties @@ -0,0 +1,26 @@ +############################################################################### +# Copyright (c) 2000, 2012 IBM Corporation and others. +# +# This program and the accompanying materials +# are made available under the terms of the Eclipse Public License 2.0 +# which accompanies this distribution, and is available at +# https://www.eclipse.org/legal/epl-2.0/ +# +# SPDX-License-Identifier: EPL-2.0 +# +# Contributors: +# IBM Corporation - initial API and implementation +############################################################################### +bin.includes = plugin.xml,\ + plugin.properties,\ + *.jar,\ + META-INF/,\ + +source.jdimodel.jar = model/,\ + jdi/,\ + eval/ +output.jdimodel.jar = bin/ +src.includes = schema/ +jars.compile.order = jdimodel.jar +javacWarnings..=-unavoidableGenericProblems +javacWarnings.jdimodel.jar=-unavoidableGenericProblems \ No newline at end of file diff --git a/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/eval/org/eclipse/jdt/debug/eval/EvaluationManager.java b/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/eval/org/eclipse/jdt/debug/eval/EvaluationManager.java new file mode 100644 index 0000000000..a9f21c0a0d --- /dev/null +++ b/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/eval/org/eclipse/jdt/debug/eval/EvaluationManager.java @@ -0,0 +1,76 @@ +/******************************************************************************* + * Copyright (c) 2000, 2011 IBM Corporation and others. + * + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License 2.0 + * which accompanies this distribution, and is available at + * https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +package org.eclipse.jdt.debug.eval; + +import java.io.File; + +import org.eclipse.jdt.core.IJavaProject; +import org.eclipse.jdt.debug.core.IJavaDebugTarget; + +/** + * The evaluation manager provides factory methods for creating evaluation + * engines. + * + * @see org.eclipse.jdt.debug.eval.IEvaluationEngine + * @see org.eclipse.jdt.debug.eval.IClassFileEvaluationEngine + * @see org.eclipse.jdt.debug.eval.IAstEvaluationEngine + * @see org.eclipse.jdt.debug.eval.IEvaluationResult + * @see org.eclipse.jdt.debug.eval.IEvaluationListener + * @since 2.0 + * @noinstantiate This class is not intended to be instantiated by clients. + * @noextend This class is not intended to be subclassed by clients. + */ +public class EvaluationManager { + + /** + * Not to be instantiated + */ + private EvaluationManager() { + } + + /** + * Creates and returns a new evaluation engine that performs evaluations for + * local Java applications by deploying class files. + * + * @param project + * the Java project in which expressions are to be compiled + * @param target + * the Java debug target in which expressions are to be evaluated + * @param directory + * the directory where support class files are deployed to assist + * in the evaluation. The directory must exist. + * @return an evaluation engine + */ + public static IClassFileEvaluationEngine newClassFileEvaluationEngine( + IJavaProject project, IJavaDebugTarget target, File directory) { + return null; + } + + /** + * Creates and returns a new evaluation engine that performs evaluations by + * compiling expressions into abstract syntax trees (ASTs), and interpreting + * the AST over a JDI connection. This type of evaluation engine is capable + * of performing remote evaluations. + * + * @param project + * the Java project in which expressions are to be compiled + * @param target + * the Java debug target in which expressions are to be evaluated + * @return an evaluation engine + */ + public static IAstEvaluationEngine newAstEvaluationEngine( + IJavaProject project, IJavaDebugTarget target) { + return null; + } +} diff --git a/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/eval/org/eclipse/jdt/debug/eval/IAstEvaluationEngine.java b/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/eval/org/eclipse/jdt/debug/eval/IAstEvaluationEngine.java new file mode 100644 index 0000000000..394f322f36 --- /dev/null +++ b/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/eval/org/eclipse/jdt/debug/eval/IAstEvaluationEngine.java @@ -0,0 +1,235 @@ +/******************************************************************************* + * Copyright (c) 2000, 2011 IBM Corporation and others. + * + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License 2.0 + * which accompanies this distribution, and is available at + * https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +package org.eclipse.jdt.debug.eval; + +import java.util.Map; + +import org.eclipse.debug.core.DebugException; +import org.eclipse.jdt.debug.core.IJavaObject; +import org.eclipse.jdt.debug.core.IJavaReferenceType; +import org.eclipse.jdt.debug.core.IJavaStackFrame; +import org.eclipse.jdt.debug.core.IJavaThread; + +/** + * An evaluation engine that performs evaluations by interpreting abstract + * syntax trees. An AST evaluation engine is capable of creating compiled + * expressions that can be evaluated multiple times in a given runtime context. + * + * @since 2.0 + * @noimplement This interface is not intended to be implemented by clients. + * @noextend This interface is not intended to be extended by clients. + */ +public interface IAstEvaluationEngine extends IEvaluationEngine { + + /** + * Instructs the evaluation engine to disable garbage collection on the result object. The caller is then responsible to call + * {@link IJavaObject#enableCollection()} on the evaluated result. Can be passed as a bit flag to the evaluationDetail parameter. + * + * @since 3.17 + */ + int DISABLE_GC_ON_RESULT = 0x0100; + + /** + * Asynchronously evaluates the given expression in the context of the + * specified stack frame, reporting the result back to the given listener. + * The thread is resumed from the location at which it is currently + * suspended to perform the evaluation. When the evaluation completes, the + * thread will be suspended at this original location. The thread runs the + * evaluation with the given evaluation detail (@see + * IJavaThread#runEvaluation(IEvaluationRunnable, IProgressMonitor, int)). + * Compilation and runtime errors are reported in the evaluation result. + * + * @param expression + * expression to evaluate + * @param frame + * the stack frame context in which to run the evaluation. + * @param listener + * the listener that will receive notification when/if the + * evaluation completes + * @param evaluationDetail + * bitmask of one of DebugEvent.EVALUATION or + * DebugEvent.EVALUATION_IMPLICIT and + * optionally DISABLE_GC_ON_RESULT + * @param hitBreakpoints + * whether or not breakpoints should be honored in the evaluation + * thread during the evaluation. If false, + * breakpoints hit in the evaluation thread will be ignored. + * @exception DebugException + * if this method fails. Reasons include: + * + */ + public void evaluateExpression(ICompiledExpression expression, + IJavaStackFrame frame, IEvaluationListener listener, + int evaluationDetail, boolean hitBreakpoints) throws DebugException; + + /** + * Asynchronously evaluates the given expression in the context of the + * specified type, reporting the result back to the given listener. The + * expression is evaluated in the context of the Java project this + * evaluation engine was created on. If the expression is determined to have + * no errors, the expression is evaluated in the thread associated with the + * given stack frame. When the evaluation completes, the thread will be + * suspended at this original location. The thread runs the evaluation with + * the given evaluation detail (@see + * IJavaThread#runEvaluation(IEvaluationRunnable, IProgressMonitor, int)). + * Compilation and runtime errors are reported in the evaluation result. + * + * @param expression + * the expression to evaluate + * @param object + * the 'this' context for the evaluation + * @param thread + * the thread in which to run the evaluation, which must be + * suspended + * @param listener + * the listener that will receive notification when/if the + * evaluation completes + * @param evaluationDetail + * bitmask of one of DebugEvent.EVALUATION or + * DebugEvent.EVALUATION_IMPLICIT and + * optionally DISABLE_GC_ON_RESULT + * @param hitBreakpoints + * whether or not breakpoints should be honored in the evaluation + * thread during the evaluation. If false, + * breakpoints hit in the evaluation thread will be ignored. + * @exception DebugException + * if this method fails. Reasons include: + * + */ + public void evaluateExpression(ICompiledExpression expression, + IJavaObject object, IJavaThread thread, + IEvaluationListener listener, int evaluationDetail, + boolean hitBreakpoints) throws DebugException; + + /** + * Synchronously generates a compiled expression from the given expression + * in the context of the specified stack frame. The generated expression can + * be stored and evaluated later in a valid runtime context. Compilation + * errors are reported in the returned compiled expression. + * + * @param expression + * expression to compile + * @param frame + * the context in which to compile the expression + * @return the compiled expression + * @exception DebugException + * if this method fails. Reasons include: + * + */ + public ICompiledExpression getCompiledExpression(String expression, + IJavaStackFrame frame) throws DebugException; + + /** + * Synchronously generates a compiled expression from the given expression + * in the context of the specified object. The generated expression can be + * stored and evaluated later in a valid runtime context. Compilation errors + * are reported in the returned compiled expression. + * + * @param expression + * expression to compile + * @param object + * the context in which to compile the expression + * @return the compiled epxression + * @exception DebugException + * if this method fails. Reasons include: + * + */ + public ICompiledExpression getCompiledExpression(String expression, + IJavaObject object) throws DebugException; + + /** + * Synchronously generates a compiled expression from the given expression + * in the context of the specified type. The generated expression can be + * stored and evaluated later in a valid runtime context. Compilation errors + * are reported in the returned compiled expression. + * + * @param expression + * expression to compile + * @param type + * the context in which to compile the expression + * @return the compiled expression + * @exception DebugException + * if this method fails. Reasons include: + * + * @since 3.1 + */ + public ICompiledExpression getCompiledExpression(String expression, + IJavaReferenceType type) throws DebugException; + + /** + * Synchronously generates a compiled expression from the given expression in the context of the specified type. The generated expression can be + * stored and evaluated later in a valid runtime context. Compilation errors are reported in the returned compiled expression. + * + * @param expression + * expression to compile + * @param type + * the context in which to compile the expression + * @param compileOptions + * options to use during the compile + * @return the compiled expression + * @exception DebugException + * if this method fails. Reasons include: + * + * @since 3.13 + */ + public ICompiledExpression getCompiledExpression(String expression, + IJavaReferenceType type, Map compileOptions) throws DebugException; + +} diff --git a/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/eval/org/eclipse/jdt/debug/eval/IClassFileEvaluationEngine.java b/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/eval/org/eclipse/jdt/debug/eval/IClassFileEvaluationEngine.java new file mode 100644 index 0000000000..bef148c5d3 --- /dev/null +++ b/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/eval/org/eclipse/jdt/debug/eval/IClassFileEvaluationEngine.java @@ -0,0 +1,92 @@ +/******************************************************************************* + * Copyright (c) 2000, 2011 IBM Corporation and others. + * + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License 2.0 + * which accompanies this distribution, and is available at + * https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +package org.eclipse.jdt.debug.eval; + +import org.eclipse.debug.core.DebugException; +import org.eclipse.jdt.debug.core.IJavaThread; + +/** + * An evaluation engine that performs evaluations by deploying and executing + * class files locally. + * + * @since 2.0 + * @noimplement This interface is not intended to be implemented by clients. + * @noextend This interface is not intended to be extended by clients. + */ +public interface IClassFileEvaluationEngine extends IEvaluationEngine { + /** + * Returns the import declarations for this evaluation context. An empty + * list indicates there are no imports. The syntax for the import + * corresponds to a fully qualified type name, or to an on-demand package + * name as defined by ImportDeclaration (JLS2 7.5). For example, + * "java.util.Hashtable" or "java.util.*". + * + * @return the list of import names + */ + public String[] getImports(); + + /** + * Sets the import declarations for this evaluation context. An empty list + * indicates there are no imports. The syntax for the import corresponds to + * a fully qualified type name, or to an on-demand package name as defined + * by ImportDeclaration (JLS2 7.5). For example, + * "java.util.Hashtable" or "java.util.*". + * + * @param imports + * the list of import names + */ + public void setImports(String[] imports); + + /** + * Asynchronously evaluates the given snippet in the specified target + * thread, reporting the result back to the given listener. The snippet is + * evaluated in the context of the Java project this evaluation engine was + * created on. If the snippet is determined to be a valid expression, the + * expression is evaluated in the specified thread, which resumes its + * execution from the location at which it is currently suspended. When the + * evaluation completes, the thread will be suspened at this original + * location. Compilation and runtime errors are reported in the evaluation + * result. + * + * @param snippet + * code snippet to evaluate + * @param thread + * the thread in which to run the evaluation, which must be + * suspended + * @param listener + * the listener that will receive notification when/if the + * evalaution completes + * @param hitBreakpoints + * whether or not breakpoints should be honored in the evaluation + * thread during the evaluation. If false, + * breakpoints hit in the evaluation thread will be ignored. + * @exception DebugException + * if this method fails. Reasons include: + * + */ + public void evaluate(String snippet, IJavaThread thread, + IEvaluationListener listener, boolean hitBreakpoints) + throws DebugException; + +} diff --git a/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/eval/org/eclipse/jdt/debug/eval/ICompiledExpression.java b/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/eval/org/eclipse/jdt/debug/eval/ICompiledExpression.java new file mode 100644 index 0000000000..ce05640074 --- /dev/null +++ b/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/eval/org/eclipse/jdt/debug/eval/ICompiledExpression.java @@ -0,0 +1,65 @@ +/******************************************************************************* + * Copyright (c) 2000, 2011 IBM Corporation and others. + * + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License 2.0 + * which accompanies this distribution, and is available at + * https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +package org.eclipse.jdt.debug.eval; + +import org.eclipse.jdt.core.dom.Message; + +/** + * A compiled expression can be compiled once and evaluated multiple times in a + * runtime context. + * + * @see org.eclipse.jdt.debug.eval.IAstEvaluationEngine + * @since 2.0 + * @noimplement This interface is not intended to be implemented by clients. + * @noextend This interface is not intended to be extended by clients. + */ + +public interface ICompiledExpression { + + /** + * Returns the source snippet from which this compiled expression was + * created. + * + * @return the source snippet from which this compiled expression was + * created + */ + public String getSnippet(); + + /** + * Returns whether this compiled expression has any compilation errors. + * + * @return whether this compiled expression has any compilation errors + */ + public boolean hasErrors(); + + /** + * Returns any errors which occurred while creating this compiled + * expression. + * + * @return any errors which occurred while creating this compiled expression + * @deprecated use getErrorMessages() + */ + @Deprecated + public Message[] getErrors(); + + /** + * Returns an array of problem messages. Each message describes a problem + * that occurred while while creating this compiled expression. + * + * @return error messages, or an empty array if no errors occurred + * @since 2.1 + */ + public String[] getErrorMessages(); + +} diff --git a/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/eval/org/eclipse/jdt/debug/eval/IEvaluationEngine.java b/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/eval/org/eclipse/jdt/debug/eval/IEvaluationEngine.java new file mode 100644 index 0000000000..d535e1ec1d --- /dev/null +++ b/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/eval/org/eclipse/jdt/debug/eval/IEvaluationEngine.java @@ -0,0 +1,155 @@ +/******************************************************************************* + * Copyright (c) 2000, 2011 IBM Corporation and others. + * + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License 2.0 + * which accompanies this distribution, and is available at + * https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +package org.eclipse.jdt.debug.eval; + +import org.eclipse.debug.core.DebugException; +import org.eclipse.jdt.core.IJavaProject; +import org.eclipse.jdt.debug.core.IJavaDebugTarget; +import org.eclipse.jdt.debug.core.IJavaObject; +import org.eclipse.jdt.debug.core.IJavaStackFrame; +import org.eclipse.jdt.debug.core.IJavaThread; + +/** + * An evaluation engine performs an evaluation of a code snippet or expression + * in a specified thread of a debug target. An evaluation engine is associated + * with a specific debug target and Java project on creation. + * + * @see IEvaluationResult + * @see IEvaluationListener + * @since 2.0 + * @noimplement This interface is not intended to be implemented by clients. + * @noextend This interface is not intended to be extended by clients. + */ + +public interface IEvaluationEngine { + /** + * Asynchronously evaluates the given snippet in the context of the + * specified stack frame, reporting the result back to the given listener. + * The snippet is evaluated in the context of the Java project this + * evaluation engine was created on. If the snippet is determined to be a + * valid expression, the expression is evaluated in the thread associated + * with the given stack frame. The thread is resumed from the location at + * which it is currently suspended to perform the evaluation. When the + * evaluation completes, the thread will be suspended at this original + * location. The thread runs the evaluation with the given evaluation detail + * (@see IJavaThread#runEvaluation(IEvaluationRunnable, IProgressMonitor, + * int)). Compilation and runtime errors are reported in the evaluation + * result. + * + * @param snippet + * code snippet to evaluate + * @param frame + * the stack frame context in which to run the evaluation. + * @param listener + * the listener that will receive notification when/if the + * evaluation completes + * @param evaluationDetail + * one of DebugEvent.EVALUATION or + * DebugEvent.EVALUATION_IMPLICIT + * @param hitBreakpoints + * whether or not breakpoints should be honored in the evaluation + * thread during the evaluation. If false, + * breakpoints hit in the evaluation thread will be ignored. + * @exception DebugException + * if this method fails. Reasons include: + * + */ + public void evaluate(String snippet, IJavaStackFrame frame, + IEvaluationListener listener, int evaluationDetail, + boolean hitBreakpoints) throws DebugException; + + /** + * Asynchronously evaluates the given snippet in the context of the + * specified type, reporting the result back to the given listener. The + * snippet is evaluated in the context of the Java project this evaluation + * engine was created on. If the snippet is determined to be a valid + * expression, the expression is evaluated in the thread associated with the + * given stack frame. The thread is resumed from the location at which it is + * currently suspended to perform the evaluation. When the evaluation + * completes, the thread will be suspended at this original location. The + * thread runs the evaluation with the given evaluation detail (@see + * IJavaThread#runEvaluation(IEvaluationRunnable, IProgressMonitor, int)). + * Compilation and runtime errors are reported in the evaluation result. + * + * @param snippet + * code snippet to evaluate + * @param thisContext + * the 'this' context for the evaluation + * @param thread + * the thread in which to run the evaluation, which must be + * suspended + * @param listener + * the listener that will receive notification when/if the + * evaluation completes + * @param evaluationDetail + * one of DebugEvent.EVALUATION or + * DebugEvent.EVALUATION_IMPLICIT + * @param hitBreakpoints + * whether or not breakpoints should be honored in the evaluation + * thread during the evaluation. If false, + * breakpoints hit in the evaluation thread will be ignored. + * @exception DebugException + * if this method fails. Reasons include: + * + */ + public void evaluate(String snippet, IJavaObject thisContext, + IJavaThread thread, IEvaluationListener listener, + int evaluationDetail, boolean hitBreakpoints) throws DebugException; + + /** + * Returns the Java project in which expressions are compiled. + * + * @return Java project context + */ + public IJavaProject getJavaProject(); + + /** + * Returns the debug target for which evaluations are executed. + * + * @return Java debug target + */ + public IJavaDebugTarget getDebugTarget(); + + /** + * Disposes this evaluation engine. This causes the evaluation engine to + * cleanup any resources (such as threads) that it maintains. Clients should + * call this method when they are finished performing evaluations with this + * engine. + * + * This engine must not be used to perform evaluations after it has been + * disposed. + */ + public void dispose(); + +} diff --git a/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/eval/org/eclipse/jdt/debug/eval/IEvaluationListener.java b/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/eval/org/eclipse/jdt/debug/eval/IEvaluationListener.java new file mode 100644 index 0000000000..9d9dbc4c1b --- /dev/null +++ b/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/eval/org/eclipse/jdt/debug/eval/IEvaluationListener.java @@ -0,0 +1,39 @@ +/******************************************************************************* + * Copyright (c) 2000, 2011 IBM Corporation and others. + * + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License 2.0 + * which accompanies this distribution, and is available at + * https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +package org.eclipse.jdt.debug.eval; + +/** + * Evaluation results are reported to evaluation listeners on the completion of + * an evaluation. The evaluation may fail but a result will be supplied + * indicating the problems. + *

+ * Clients may implement this interface. + *

+ * + * @see IEvaluationResult + * @since 2.0 + */ + +public interface IEvaluationListener { + + /** + * Notifies this listener that an evaluation has completed, with the given + * result. + * + * @param result + * The result from the evaluation + * @see IEvaluationResult + */ + public void evaluationComplete(IEvaluationResult result); +} diff --git a/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/eval/org/eclipse/jdt/debug/eval/IEvaluationResult.java b/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/eval/org/eclipse/jdt/debug/eval/IEvaluationResult.java new file mode 100644 index 0000000000..8ec4ba4ce1 --- /dev/null +++ b/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/eval/org/eclipse/jdt/debug/eval/IEvaluationResult.java @@ -0,0 +1,119 @@ +/******************************************************************************* + * Copyright (c) 2000, 2011 IBM Corporation and others. + * + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License 2.0 + * which accompanies this distribution, and is available at + * https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +package org.eclipse.jdt.debug.eval; + +import org.eclipse.debug.core.DebugException; +import org.eclipse.jdt.core.dom.Message; +import org.eclipse.jdt.debug.core.IJavaThread; +import org.eclipse.jdt.debug.core.IJavaValue; + +/** + * The result of an evaluation. An evaluation result may contain problems and/or + * a result value. + * + * @see IJavaValue + * @since 2.0 + * @noimplement This interface is not intended to be implemented by clients. + * @noextend This interface is not intended to be extended by clients. + */ + +public interface IEvaluationResult { + + /** + * Returns the value representing the result of the evaluation, or + * null if the associated evaluation failed. If the associated + * evaluation failed, there will be problems, or an exception in this + * result. + *

+ * Since 3.5, this method can also return null if the evaluation was + * terminated before it completed. + *

+ * + * @return the resulting value, possibly null + */ + public IJavaValue getValue(); + + /** + * Returns whether the evaluation had any problems or if an exception + * occurred while performing the evaluation. + * + * @return whether there were any problems. + * @see #getErrors() + * @see #getException() + */ + public boolean hasErrors(); + + /** + * Returns an array of problem messages. Each message describes a problem + * that occurred while compiling the snippet. + * + * @return compilation error messages, or an empty array if no errors + * occurred + * @deprecated use getErrorMessages() + */ + @Deprecated + public Message[] getErrors(); + + /** + * Returns an array of problem messages. Each message describes a problem + * that occurred while compiling the snippet. + * + * @return compilation error messages, or an empty array if no errors + * occurred + * @since 2.1 + */ + public String[] getErrorMessages(); + + /** + * Returns the snippet that was evaluated. + * + * @return The string code snippet. + */ + public String getSnippet(); + + /** + * Returns any exception that occurred while performing the evaluation or + * null if an exception did not occur. The exception will be a + * debug exception or a debug exception that wrappers a JDI exception that + * indicates a problem communicating with the target or with actually + * performing some action in the target. + * + * @return The exception that occurred during the evaluation + * @see com.sun.jdi.InvocationException + * @see org.eclipse.debug.core.DebugException + */ + public DebugException getException(); + + /** + * Returns the thread in which the evaluation was performed. + * + * @return the thread in which the evaluation was performed + */ + public IJavaThread getThread(); + + /** + * Returns the evaluation engine used to evaluate the original snippet. + * + * @return the evaluation engine used to evaluate the original snippet + */ + public IEvaluationEngine getEvaluationEngine(); + + /** + * Returns whether this evaluation was terminated before it completed. + * + * @return whether terminated. + * @since 3.5 + */ + public boolean isTerminated(); +} diff --git a/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/eval/org/eclipse/jdt/debug/eval/package.html b/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/eval/org/eclipse/jdt/debug/eval/package.html new file mode 100644 index 0000000000..0b63b63be7 --- /dev/null +++ b/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/eval/org/eclipse/jdt/debug/eval/package.html @@ -0,0 +1,21 @@ + + + + + +Java Debug Model + + + + +Provides a set classes and interfaces that support evaluations in the Java debugger. + +

Package Specification

+ + This package defines a set of classes and interfaces that support evaluations + in the Java debugger. Two evaluation engines are provided - one that performs + evaluations by compiling and deploying class files locally for execution, and + one that performs an interpretation over an abstract syntax tree. The later + supports remote evaluation via JDI. + + diff --git a/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/Bootstrap.java b/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/Bootstrap.java new file mode 100644 index 0000000000..1c0e831b49 --- /dev/null +++ b/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/Bootstrap.java @@ -0,0 +1,26 @@ +/******************************************************************************* + * Copyright (c) 2000, 2022 IBM Corporation and others. + * + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License 2.0 + * which accompanies this distribution, and is available at + * https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +package org.eclipse.jdi; + +public class Bootstrap { + private static com.sun.jdi.VirtualMachineManager fVirtualMachineManager; + + public Bootstrap() { + } + + public static synchronized com.sun.jdi.VirtualMachineManager virtualMachineManager() { + + return fVirtualMachineManager; + } +} diff --git a/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/OpaqueFrameException.java b/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/OpaqueFrameException.java new file mode 100644 index 0000000000..39c4669bd4 --- /dev/null +++ b/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/OpaqueFrameException.java @@ -0,0 +1,32 @@ +/******************************************************************************* + * Copyright (c) 2022 Microsoft Corporation and others. + * + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License 2.0 + * which accompanies this distribution, and is available at + * https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * Microsoft Corporation - initial API and implementation + *******************************************************************************/ +package org.eclipse.jdi; + +/** + * Thrown to indicate an operation could not be performed on a frame. + * + * @since 3.20 + */ +public class OpaqueFrameException extends RuntimeException { + + private static final long serialVersionUID = 3779456734107108574L; + + public OpaqueFrameException() { + super(); + } + + public OpaqueFrameException(String message) { + super(message); + } +} diff --git a/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/TimeoutException.java b/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/TimeoutException.java new file mode 100644 index 0000000000..bdf53dc0df --- /dev/null +++ b/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/TimeoutException.java @@ -0,0 +1,25 @@ +/******************************************************************************* + * Copyright (c) 2000, 2011 IBM Corporation and others. + * + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License 2.0 + * which accompanies this distribution, and is available at + * https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +package org.eclipse.jdi; + +public class TimeoutException extends RuntimeException { + private static final long serialVersionUID = 6009335074727417445L; + + public TimeoutException() { + } + + public TimeoutException(String message) { + super(message); + } +} diff --git a/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/VirtualMachine.java b/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/VirtualMachine.java new file mode 100644 index 0000000000..5ce009e424 --- /dev/null +++ b/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/VirtualMachine.java @@ -0,0 +1,28 @@ +/******************************************************************************* + * Copyright (c) 2000, 2011 IBM Corporation and others. + * + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License 2.0 + * which accompanies this distribution, and is available at + * https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +package org.eclipse.jdi; + +public interface VirtualMachine { + /** + * Sets request timeout in milliseconds + * + * @param timeout the timeout for the request + */ + public void setRequestTimeout(int timeout); + + /** + * @return Returns request timeout in milliseconds + */ + public int getRequestTimeout(); +} diff --git a/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/hcr/EventRequestManager.java b/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/hcr/EventRequestManager.java new file mode 100644 index 0000000000..f14daa4fa2 --- /dev/null +++ b/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/hcr/EventRequestManager.java @@ -0,0 +1,52 @@ +/******************************************************************************* + * Copyright (c) 2000, 2011 IBM Corporation and others. + * + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License 2.0 + * which accompanies this distribution, and is available at + * https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +package org.eclipse.jdi.hcr; + +import com.sun.jdi.ObjectCollectedException; +import com.sun.jdi.ThreadReference; +import com.sun.jdi.request.DuplicateRequestException; +import com.sun.jdi.request.EventRequest; + +/** + * Hot code replacement extension to + * com.sun.jdi.request.EventRequestManager. + */ +public interface EventRequestManager extends com.sun.jdi.Mirror { + /** + * Creates a new disabled {@link ReenterStepRequest}. The new event request + * is added to the list managed by this EventRequestManager. Use + * {@link EventRequest#enable()} to activate this event request. + *

+ * The returned request will control stepping only in the specified + * thread; all other threads will be unaffected. + *

+ * Only one pending reenter step request is allowed per thread. + *

+ * Note that enabling such a request can throw an + * OperationRefusedException if the VM refused to perform this + * operation. This in recognition that the VM may be in an awkward state and + * unable to comply. For example, execution is suspended in a native method + * and the arguments would be unavailable on return . + * + * @param thread + * the thread in which to step + * @return the created {@link ReenterStepRequest} + * @throws DuplicateRequestException + * if there is already a pending step request for the specified + * thread. + * @throws ObjectCollectedException + * if the thread object has been garbage collected. + */ + public ReenterStepRequest createReenterStepRequest(ThreadReference thread); +} diff --git a/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/hcr/OperationRefusedException.java b/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/hcr/OperationRefusedException.java new file mode 100644 index 0000000000..1e08336f02 --- /dev/null +++ b/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/hcr/OperationRefusedException.java @@ -0,0 +1,32 @@ +/******************************************************************************* + * Copyright (c) 2000, 2011 IBM Corporation and others. + * + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License 2.0 + * which accompanies this distribution, and is available at + * https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +package org.eclipse.jdi.hcr; + +/** + * Thrown to indicate that the target VM refused to perform an operation. + */ +public class OperationRefusedException extends RuntimeException { + + /** + * All serializable objects should have a stable serialVersionUID + */ + private static final long serialVersionUID = 1L; + + public OperationRefusedException() { + } + + public OperationRefusedException(String s) { + super(s); + } +} diff --git a/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/hcr/ReenterStepRequest.java b/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/hcr/ReenterStepRequest.java new file mode 100644 index 0000000000..b74cfaa192 --- /dev/null +++ b/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/hcr/ReenterStepRequest.java @@ -0,0 +1,82 @@ +/******************************************************************************* + * Copyright (c) 2000, 2015 IBM Corporation and others. + * + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License 2.0 + * which accompanies this distribution, and is available at + * https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +package org.eclipse.jdi.hcr; + +import com.sun.jdi.ReferenceType; +import com.sun.jdi.ThreadReference; +import com.sun.jdi.request.StepRequest; + +/** + * A reenter step request is a step event request that will be activated when + * the given thread is about to pop the top stack frame. At this point, the VM + * is expected to do the following: + *

    + *
  1. The arguments to the method are carefully set aside, along with the + * identity of the actual method. + *
  2. The stack frame is popped. Any value being returned is discarded. Any + * exception being thrown is ignored. Instruction counter in caller is set + * at (rather than after) the send bytecode. + *
  3. Suspend the thread depending on the suspend policy and report a + * StepEvent for this request. + *
  4. When the thread is resumed, the method is re-retrieved; if the class had + * recently been reloaded, this must find the new bytecodes. If the method is no + * longer present, throw a java.lang.NoSuchMethodError as specified + * in the Java VM Specification. + *
  5. The method is entered as per normal, using the saved arguments. + *
+ *

+ * Note that other events may need to be reported as well (e.g., hit breakpoint + * on first instruction). Execution does not reenter the caller at any point; so + * no step out or step into events are reported. + * + */ +public interface ReenterStepRequest extends StepRequest { + /** + * Restricts the events generated by this request to those whose location is + * in a class whose name does NOT match this restricted regular expression. + * e.g. "java.*" or "*.Foo". + * + * @param classPattern + * the pattern String to filter against. + */ + @Override + public void addClassExclusionFilter(String classPattern); + + /** + * Restricts the events generated by this request to those whose location is + * in this class.. + * + * @param clazz + * the class to filter on. + */ + @Override + public void addClassFilter(ReferenceType clazz); + + /** + * Restricts the events generated by this request to those whose location is + * in a class whose name matches this restricted regular expression. e.g. + * "java.*" or "*.Foo". + * + * @param classPattern + * the pattern String to filter for. + */ + @Override + public void addClassFilter(String classPattern); + + /** + * @return the thread on which the step event is being requested. + */ + @Override + public ThreadReference thread(); +} diff --git a/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/hcr/ReferenceType.java b/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/hcr/ReferenceType.java new file mode 100644 index 0000000000..c775c23f80 --- /dev/null +++ b/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/hcr/ReferenceType.java @@ -0,0 +1,80 @@ +/******************************************************************************* + * Copyright (c) 2000, 2011 IBM Corporation and others. + * + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License 2.0 + * which accompanies this distribution, and is available at + * https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +package org.eclipse.jdi.hcr; + +/** + * Hot code replacement extension to com.sun.jdi.ReferenceType. + */ +public interface ReferenceType { + /** + * An HCR-eligible class file may now be loaded and reloaded at some later + * point(s). Methods on the stack may come from any of several versions of + * the same HCR-eligible class. The debugger can query any class file + * related object (class, method, or field) for information about the + * version of the class file from which it came. + *

+ * Classes loaded by a cooperating class loader are flagged as HCR-eligible + * for hot code replacement. + *

+ * Class file versions are identified by the CRC-32 of the entire class file + * contents. + *

+ * The VM typically computes and remembers the CRC when it digests a class + * file. Note this behavior is optional; VM need not retain any CRCs. A + * debugger can query any class for its class CRC and eligibility: + *

+ * All information returned does not change over the lifetime of the + * reference type object (replacing the class results in a new reference + * type object). This info can therefore be cached client-side with + * impunity. + *

+ * This simple mechanism allows the IDE to detect that an object does not + * belong to the current class file base (debugger computes CRC of current + * class file and queries VM and compares to its CRC). It also allows the + * debugger to quickly detect whether two objects come from the same class + * file (debugger queries VM and compares CRCs). By checking the + * HCR-eligibility bit, the debugger can determine whether the class could + * be hot replaced in principle. + *

+ * @return the CRC-32 of the entire class file contents for this reference + * type. + * + * @see org.eclipse.jdi.hcr.VirtualMachine#classesHaveChanged + */ + public int getClassFileVersion(); + + /** + * Returns whether this reference type is eligible for hot code replacement. + * + * @return whether this reference type is eligible for hot code replacement + * + * @see org.eclipse.jdi.hcr.ReferenceType#getClassFileVersion + */ + public boolean isHCREligible(); + + /** + * Returns whether this reference type knows its class file version. Returns + * false for ArrayTypes. + * @return whether this reference type knows its class file version + */ + public boolean isVersionKnown(); +} diff --git a/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/hcr/ThreadReference.java b/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/hcr/ThreadReference.java new file mode 100644 index 0000000000..c0c1696cee --- /dev/null +++ b/tycho-its/projects/api-tools/single-jar/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/hcr/ThreadReference.java @@ -0,0 +1,90 @@ +/******************************************************************************* + * Copyright (c) 2000, 2011 IBM Corporation and others. + * + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License 2.0 + * which accompanies this distribution, and is available at + * https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +package org.eclipse.jdi.hcr; + +import com.sun.jdi.Value; + +/** + * Hot code replacement extension to com.sun.jdi.ThreadReference. + */ +public interface ThreadReference { + /** + * Resumes the execution of this thread as if the next instruction was a + * return instruction with the given value. This causes the top stack frame + * to be popped with the given value. + *

+ * A breakpoint instruction at the current instruction is not triggered that + * is, this operation takes precedence over breakpoints. + * try-finally blocks enclosing the current location will be + * triggered in due course. + *

+ * The triggerFinallyAndSynchronizedBlocks option on this operation controls + * whether try-finally and synchronized blocks + * enclosing the current location should be triggered: + *