diff -r b0d96cd8edd2 api.java/apichanges.xml --- a/api.java/apichanges.xml Wed Apr 14 14:16:39 2010 +0200 +++ b/api.java/apichanges.xml Wed Apr 14 17:11:00 2010 +0200 @@ -73,6 +73,20 @@ + + + Introducing AnnotationProcessingQuery.Result.Trigger + + + + + +

Modifying AnnotationProcessingQuery.Result.annotationProcessingEnabled() to return a set of triggers on which the annotation processors should be run. +

+
+ + +
Introducing AnnotationProcessingQuery.Result.processorOptions diff -r b0d96cd8edd2 api.java/manifest.mf --- a/api.java/manifest.mf Wed Apr 14 14:16:39 2010 +0200 +++ b/api.java/manifest.mf Wed Apr 14 17:11:00 2010 +0200 @@ -1,6 +1,6 @@ Manifest-Version: 1.0 OpenIDE-Module: org.netbeans.api.java/1 -OpenIDE-Module-Specification-Version: 1.27 +OpenIDE-Module-Specification-Version: 1.28 OpenIDE-Module-Localizing-Bundle: org/netbeans/api/java/queries/Bundle.properties AutoUpdate-Show-In-Client: false diff -r b0d96cd8edd2 api.java/src/org/netbeans/api/java/queries/AnnotationProcessingQuery.java --- a/api.java/src/org/netbeans/api/java/queries/AnnotationProcessingQuery.java Wed Apr 14 14:16:39 2010 +0200 +++ b/api.java/src/org/netbeans/api/java/queries/AnnotationProcessingQuery.java Wed Apr 14 17:11:00 2010 +0200 @@ -41,7 +41,9 @@ import java.net.URL; import java.util.Collections; +import java.util.EnumSet; import java.util.Map; +import java.util.Set; import javax.swing.event.ChangeListener; import org.netbeans.api.annotations.common.CheckForNull; import org.netbeans.api.annotations.common.NonNull; @@ -85,11 +87,12 @@ */ public static interface Result { - /**Whether the annotation processors should be run inside Java editor. + /**When the annotation processors should be run. * - * @return true if and only if the annotation processors should be run inside the Java editor + * @return returns a set of triggers on which the annotation processors should be run + * @since org.netbeans.api.java/1 1.27 */ - public boolean annotationProcessingEnabled(); + public @NonNull Set annotationProcessingEnabled(); /**Which annotation processors should be run. * @@ -128,9 +131,22 @@ public void removeChangeListener(@NonNull ChangeListener l); } + /** Annotation processing triggers + */ + public static enum Trigger { + + /** Annotation processors should run on scanning + */ + ON_SCAN, + /** Annotation processors should run on every modification of a file in editor + */ + IN_EDITOR + } + private static final Result EMPTY = new Result() { - public boolean annotationProcessingEnabled() { - return false; + + public Set annotationProcessingEnabled() { + return EnumSet.noneOf(Trigger.class); } public Iterable annotationProcessorsToRun() { diff -r b0d96cd8edd2 apisupport.project/manifest.mf --- a/apisupport.project/manifest.mf Wed Apr 14 14:16:39 2010 +0200 +++ b/apisupport.project/manifest.mf Wed Apr 14 17:11:00 2010 +0200 @@ -6,5 +6,5 @@ org.netbeans.api.javahelp.Help OpenIDE-Module-Layer: org/netbeans/modules/apisupport/project/ui/resources/layer.xml AutoUpdate-Show-In-Client: false -OpenIDE-Module-Specification-Version: 1.41 +OpenIDE-Module-Specification-Version: 1.42 diff -r b0d96cd8edd2 apisupport.project/src/org/netbeans/modules/apisupport/project/queries/AnnotationProcessingQueryImpl.java --- a/apisupport.project/src/org/netbeans/modules/apisupport/project/queries/AnnotationProcessingQueryImpl.java Wed Apr 14 14:16:39 2010 +0200 +++ b/apisupport.project/src/org/netbeans/modules/apisupport/project/queries/AnnotationProcessingQueryImpl.java Wed Apr 14 17:11:00 2010 +0200 @@ -41,9 +41,12 @@ import java.net.URL; import java.util.Collections; +import java.util.EnumSet; import java.util.Map; +import java.util.Set; import javax.swing.event.ChangeListener; import org.netbeans.api.java.queries.AnnotationProcessingQuery.Result; +import org.netbeans.api.java.queries.AnnotationProcessingQuery.Trigger; import org.netbeans.modules.apisupport.project.NbModuleProject; import org.netbeans.spi.java.queries.AnnotationProcessingQueryImplementation; import org.openide.filesystems.FileObject; @@ -82,8 +85,8 @@ } @Override - public boolean annotationProcessingEnabled() { - return true; + public Set annotationProcessingEnabled() { + return EnumSet.allOf(Trigger.class); } @Override diff -r b0d96cd8edd2 java.api.common/manifest.mf --- a/java.api.common/manifest.mf Wed Apr 14 14:16:39 2010 +0200 +++ b/java.api.common/manifest.mf Wed Apr 14 17:11:00 2010 +0200 @@ -1,4 +1,4 @@ Manifest-Version: 1.0 OpenIDE-Module: org.netbeans.modules.java.api.common/0 OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/java/api/common/resources/Bundle.properties -OpenIDE-Module-Specification-Version: 1.16 +OpenIDE-Module-Specification-Version: 1.17 diff -r b0d96cd8edd2 java.api.common/src/org/netbeans/modules/java/api/common/queries/AnnotationProcessingQueryImpl.java --- a/java.api.common/src/org/netbeans/modules/java/api/common/queries/AnnotationProcessingQueryImpl.java Wed Apr 14 14:16:39 2010 +0200 +++ b/java.api.common/src/org/netbeans/modules/java/api/common/queries/AnnotationProcessingQueryImpl.java Wed Apr 14 17:11:00 2010 +0200 @@ -47,7 +47,7 @@ import java.net.MalformedURLException; import java.net.URL; import java.util.Arrays; -import java.util.Collections; +import java.util.EnumSet; import java.util.HashSet; import java.util.LinkedHashMap; import java.util.Map; @@ -56,6 +56,7 @@ import java.util.logging.Logger; import javax.swing.event.ChangeListener; import org.netbeans.api.java.queries.AnnotationProcessingQuery.Result; +import org.netbeans.api.java.queries.AnnotationProcessingQuery.Trigger; import org.netbeans.spi.java.queries.AnnotationProcessingQueryImplementation; import org.netbeans.spi.project.support.ant.AntProjectHelper; import org.netbeans.spi.project.support.ant.PropertyEvaluator; @@ -113,9 +114,13 @@ evaluator.addPropertyChangeListener(WeakListeners.propertyChange(this, evaluator)); } - public boolean annotationProcessingEnabled() { - return TRUE.contains(evaluator.getProperty(annotationProcessingEnabledProperty)) - && TRUE.contains(evaluator.getProperty(annotationProcessingEnabledInEditorProperty)); + public Set annotationProcessingEnabled() { + EnumSet set = EnumSet.noneOf(Trigger.class); + if (TRUE.contains(evaluator.getProperty(annotationProcessingEnabledProperty))) + set.add(Trigger.ON_SCAN); + if (TRUE.contains(evaluator.getProperty(annotationProcessingEnabledInEditorProperty))) + set.add(Trigger.IN_EDITOR); + return set; } public Iterable annotationProcessorsToRun() { diff -r b0d96cd8edd2 java.api.common/src/org/netbeans/modules/java/api/common/queries/QuerySupport.java --- a/java.api.common/src/org/netbeans/modules/java/api/common/queries/QuerySupport.java Wed Apr 14 14:16:39 2010 +0200 +++ b/java.api.common/src/org/netbeans/modules/java/api/common/queries/QuerySupport.java Wed Apr 14 17:11:00 2010 +0200 @@ -288,6 +288,7 @@ * @param helper project's AntProjectHelper * @param evaluator project's evaluator * @param annotationProcessingEnabledProperty property whose value says whether the annotation processing is enabled for the given project at all + * (will be returned from {@link Result#annotationProcessingEnabled()}) * @param annotationProcessingEnabledInEditorProperty property whose value says whether the annotation processing should be enabled * in the editor (will be returned from {@link Result#annotationProcessingEnabled())} * @param runAllAnnotationProcessorsProperty when true, {@link Result#annotationProcessorsToRun()} will return null diff -r b0d96cd8edd2 java.freeform/manifest.mf --- a/java.freeform/manifest.mf Wed Apr 14 14:16:39 2010 +0200 +++ b/java.freeform/manifest.mf Wed Apr 14 17:11:00 2010 +0200 @@ -1,6 +1,6 @@ Manifest-Version: 1.0 OpenIDE-Module: org.netbeans.modules.java.freeform/1 -OpenIDE-Module-Specification-Version: 1.19 +OpenIDE-Module-Specification-Version: 1.20 OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/java/freeform/Bundle.properties OpenIDE-Module-Layer: org/netbeans/modules/java/freeform/resources/layer.xml AutoUpdate-Show-In-Client: false diff -r b0d96cd8edd2 java.freeform/src/org/netbeans/modules/java/freeform/AnnotationProcessingQueryImpl.java --- a/java.freeform/src/org/netbeans/modules/java/freeform/AnnotationProcessingQueryImpl.java Wed Apr 14 14:16:39 2010 +0200 +++ b/java.freeform/src/org/netbeans/modules/java/freeform/AnnotationProcessingQueryImpl.java Wed Apr 14 17:11:00 2010 +0200 @@ -41,9 +41,12 @@ import java.net.URL; import java.util.Collections; +import java.util.EnumSet; import java.util.Map; +import java.util.Set; import javax.swing.event.ChangeListener; import org.netbeans.api.java.queries.AnnotationProcessingQuery.Result; +import org.netbeans.api.java.queries.AnnotationProcessingQuery.Trigger; import org.netbeans.spi.java.queries.AnnotationProcessingQueryImplementation; import org.openide.filesystems.FileObject; @@ -56,8 +59,8 @@ public @Override Result getAnnotationProcessingOptions(FileObject file) { return new Result() { - public @Override boolean annotationProcessingEnabled() { - return true; + public @Override Set annotationProcessingEnabled() { + return EnumSet.of(Trigger.ON_SCAN); } public @Override Iterable annotationProcessorsToRun() { return null; diff -r b0d96cd8edd2 java.j2seproject/src/org/netbeans/modules/java/j2seproject/J2SEPersistenceProvider.java --- a/java.j2seproject/src/org/netbeans/modules/java/j2seproject/J2SEPersistenceProvider.java Wed Apr 14 14:16:39 2010 +0200 +++ b/java.j2seproject/src/org/netbeans/modules/java/j2seproject/J2SEPersistenceProvider.java Wed Apr 14 17:11:00 2010 +0200 @@ -315,8 +315,8 @@ changed = true; } } - if (!J2SEProjectUtil.isTrue(prop.getProperty(ProjectProperties.ANNOTATION_PROCESSING_ENABLED_IN_EDITOR))) { - prop.setProperty(ProjectProperties.ANNOTATION_PROCESSING_ENABLED_IN_EDITOR, "true"); //NOI18N + if (!J2SEProjectUtil.isTrue(prop.getProperty(ProjectProperties.ANNOTATION_PROCESSING_ENABLED))) { + prop.setProperty(ProjectProperties.ANNOTATION_PROCESSING_ENABLED, "true"); //NOI18N changed = true; } if (changed) { diff -r b0d96cd8edd2 java.j2seproject/src/org/netbeans/modules/java/j2seproject/J2SEProjectGenerator.java --- a/java.j2seproject/src/org/netbeans/modules/java/j2seproject/J2SEProjectGenerator.java Wed Apr 14 14:16:39 2010 +0200 +++ b/java.j2seproject/src/org/netbeans/modules/java/j2seproject/J2SEProjectGenerator.java Wed Apr 14 17:11:00 2010 +0200 @@ -248,7 +248,7 @@ data.appendChild (testRoots); h.putPrimaryConfigurationData(data, true); ep.setProperty(ProjectProperties.ANNOTATION_PROCESSING_ENABLED, "true"); // NOI18N - ep.setProperty(ProjectProperties.ANNOTATION_PROCESSING_ENABLED_IN_EDITOR, "true"); // NOI18N + ep.setProperty(ProjectProperties.ANNOTATION_PROCESSING_ENABLED_IN_EDITOR, "false"); // NOI18N ep.setProperty(ProjectProperties.ANNOTATION_PROCESSING_RUN_ALL_PROCESSORS, "true"); // NOI18N ep.setProperty(ProjectProperties.ANNOTATION_PROCESSING_PROCESSORS_LIST, ""); // NOI18N ep.setProperty(ProjectProperties.ANNOTATION_PROCESSING_SOURCE_OUTPUT, "${build.generated.sources.dir}/ap-source-output"); // NOI18N diff -r b0d96cd8edd2 java.source/nbproject/project.properties --- a/java.source/nbproject/project.properties Wed Apr 14 14:16:39 2010 +0200 +++ b/java.source/nbproject/project.properties Wed Apr 14 17:11:00 2010 +0200 @@ -43,7 +43,7 @@ javadoc.title=Java Source javadoc.arch=${basedir}/arch.xml javadoc.apichanges=${basedir}/apichanges.xml -spec.version.base=0.58.0 +spec.version.base=0.59.0 test.qa-functional.cp.extra=${refactoring.java.dir}/modules/ext/javac-api-nb-7.0-b07.jar test.unit.run.cp.extra=${o.n.core.dir}/core/core.jar:\ ${o.n.core.dir}/lib/boot.jar:\ diff -r b0d96cd8edd2 java.source/src/org/netbeans/modules/java/source/indexing/APTUtils.java --- a/java.source/src/org/netbeans/modules/java/source/indexing/APTUtils.java Wed Apr 14 14:16:39 2010 +0200 +++ b/java.source/src/org/netbeans/modules/java/source/indexing/APTUtils.java Wed Apr 14 17:11:00 2010 +0200 @@ -66,6 +66,7 @@ import org.netbeans.api.java.classpath.JavaClassPathConstants; import org.netbeans.api.java.queries.AnnotationProcessingQuery; import org.netbeans.api.java.queries.AnnotationProcessingQuery.Result; +import org.netbeans.api.java.queries.AnnotationProcessingQuery.Trigger; import org.netbeans.modules.parsing.api.indexing.IndexingManager; import org.openide.filesystems.FileObject; import org.openide.util.Exceptions; @@ -115,8 +116,12 @@ return utils; } - public boolean aptEnabled() { - return aptOptions.annotationProcessingEnabled(); + public boolean aptEnabledOnScan() { + return aptOptions.annotationProcessingEnabled().contains(Trigger.ON_SCAN); + } + + public boolean aptEnabledInEditor() { + return aptOptions.annotationProcessingEnabled().contains(Trigger.IN_EDITOR); } public Collection resolveProcessors() { @@ -205,7 +210,7 @@ IndexingManager.getDefault().refreshIndex(url, null); return true; } - if (JavaIndex.ensureAttributeValue(url, APT_ENABLED, aptOptions.annotationProcessingEnabled() ? Boolean.TRUE.toString() : null) && !allFilesIndexing) { + if (JavaIndex.ensureAttributeValue(url, APT_ENABLED, aptOptions.annotationProcessingEnabled().contains(Trigger.ON_SCAN) ? Boolean.TRUE.toString() : null) && !allFilesIndexing) { JavaIndex.LOG.fine("forcing reindex due to change in annotation processing options"); //NOI18N IndexingManager.getDefault().refreshIndex(url, null); return true; diff -r b0d96cd8edd2 java.source/src/org/netbeans/modules/java/source/parsing/JavacParser.java --- a/java.source/src/org/netbeans/modules/java/source/parsing/JavacParser.java Wed Apr 14 14:16:39 2010 +0200 +++ b/java.source/src/org/netbeans/modules/java/source/parsing/JavacParser.java Wed Apr 14 17:11:00 2010 +0200 @@ -662,7 +662,8 @@ options.add("-g:vars"); // NOI18N, Make the compiler to maintain local variables table options.add("-source"); // NOI18N options.add(validatedSourceLevel.name); - boolean aptEnabled = aptUtils != null && aptUtils.aptEnabled() && !ClasspathInfoAccessor.getINSTANCE().getCachedClassPath(cpInfo, PathKind.SOURCE).entries().isEmpty(); + boolean aptEnabled = aptUtils != null && (backgroundCompilation ? aptUtils.aptEnabledOnScan() : aptUtils.aptEnabledInEditor()) + && !ClasspathInfoAccessor.getINSTANCE().getCachedClassPath(cpInfo, PathKind.SOURCE).entries().isEmpty(); if (aptEnabled) { for (Map.Entry entry : aptUtils.processorOptions().entrySet()) { StringBuilder sb = new StringBuilder();