This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 106629 - API review: support for Java features in JSPs and dialogs
Summary: API review: support for Java features in JSPs and dialogs
Status: RESOLVED FIXED
Alias: None
Product: java
Classification: Unclassified
Component: Source (show other bugs)
Version: 6.x
Hardware: All All
: P1 blocker (vote)
Assignee: apireviews
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-06-14 10:50 UTC by Jan Lahoda
Modified: 2007-06-15 14:48 UTC (History)
0 users

See Also:
Issue Type: TASK
Exception Reporter:


Attachments
Proposed change. (57.30 KB, text/plain)
2007-06-14 10:51 UTC, Jan Lahoda
Details
Updated patch. (72.01 KB, patch)
2007-06-15 12:00 UTC, Jan Lahoda
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Jan Lahoda 2007-06-14 10:50:11 UTC
We are proposing extension for java/source to allow use of (some) Java features in non-Java (especially JSP) files and
in dialogs. A "virtual" Java source code needs to be created for non-Java files (and dialogs), which is then parsed and
used by selected features (eg. semantic highlighting, code completion, hyperlinking, mark occurrences).

Highlights of the proposed change:
-java/source/preprocessorbridge (friend API) has been extended, JSP editor has been added as a friend
-new API class ConversionInfo has been created in java/source, to allow translation from document positions into virtual
Java source positions, and vice versa. An instance can be get using CompilationInfo.getConversionInfo(). Please note
that only clients that wish to work over non-Java files or in dialogs need to use this class.
-new method JavaSource.forFileObjectBinding has been added, to allow binding of a JTextComponent (presumably inside a
dialog) and a Java source file. Creates a virtual Java Source, which combines the text from the Java source file and the
text inside the JTextComponent
-JavaSource.forDocument now returns JavaSource also for Documents which have binding created using
JavaSource.forFileObjectBinding
-the JavaSourceTaskFactory supports now allow to specify mime types on which the tasks should be run. The default is to
run only on Java source file.

I am attaching diff of the API, full code is in "retouche_jsp_2007_2" branch, in "java" CVS module and in web/jspsyntax.
Comment 1 Jan Lahoda 2007-06-14 10:51:19 UTC
Created attachment 43675 [details]
Proposed change.
Comment 2 Jan Lahoda 2007-06-14 10:51:47 UTC
@since tags will be added to appropriate methods/classes before commit.
Comment 3 Tomas Zezula 2007-06-15 08:47:25 UTC
Several comments:
1) ConversionInfo and CI.getCnversionInfo() are misleading. What they should convert? It's not clear from the name. I
suggest to rename them into PositionConversionInfo and CI.getPositionConverionInfo or something more descriptive.

2) JS.forFileObjectBinding - uffff, the name should change, it says nothing about the method at all, no one will use this.

3) PositionInfoJavaFileFilterImplementation extends JavaFileFilterImplementation interface which is in preprocessor
bridge module, maybe it should be moved also into preprocessor bridge, but this is not important.

4) The issue number in the apichanges is strange.
Comment 4 Dusan Balek 2007-06-15 10:23:51 UTC
Comments:

1) Placing JavaSourceProvider interface inside of the preprocessorbridge module seems a bit strange.
2) ad TZ1 - based on the public API methods of the class I suggest to omit "Info" part of the names and use
PositionConvertor and getPositionConvertor()

The rest of the API seems to be OK for me.
Comment 5 Jan Lahoda 2007-06-15 10:45:53 UTC
TZ1&TZ2&DB2: unfortunately, I do not have a good proposal for names, so I will use whatever names you agree on
TZ3&DB1: (this is based on Dusan's original proposal :-) ). given that this is only a friend SPI, I do not think this is
a big problem. Or is it?
TZ4: yes, it is intentionally very strange, will be corrected before commit
Comment 6 Jan Lahoda 2007-06-15 12:00:25 UTC
Created attachment 43779 [details]
Updated patch.
Comment 7 Jan Lahoda 2007-06-15 12:02:22 UTC
Attached is updated patch:
-(get)ConversionInfo->(get)PositionConverter
-JavaSource.forFileObjectBinding->DialogBinding.bindComponentToFile in java/sourceui
Comment 8 Tomas Zezula 2007-06-15 12:42:15 UTC
The new patch looks good.
Comment 9 Jan Lahoda 2007-06-15 14:48:01 UTC
Done:
Checking in java/editor/nbproject/project.properties;
/cvs/java/editor/nbproject/project.properties,v  <--  project.properties
new revision: 1.18; previous revision: 1.17
done
Checking in java/editor/nbproject/project.xml;
/cvs/java/editor/nbproject/project.xml,v  <--  project.xml
new revision: 1.37; previous revision: 1.36
done
Checking in java/editor/src/org/netbeans/modules/editor/java/GoToSupport.java;
/cvs/java/editor/src/org/netbeans/modules/editor/java/GoToSupport.java,v  <--  GoToSupport.java
new revision: 1.14; previous revision: 1.13
done
Checking in java/editor/src/org/netbeans/modules/editor/java/JavaCompletionItem.java;
/cvs/java/editor/src/org/netbeans/modules/editor/java/JavaCompletionItem.java,v  <--  JavaCompletionItem.java
new revision: 1.47; previous revision: 1.46
done
Checking in java/editor/src/org/netbeans/modules/editor/java/JavaCompletionProvider.java;
/cvs/java/editor/src/org/netbeans/modules/editor/java/JavaCompletionProvider.java,v  <--  JavaCompletionProvider.java
new revision: 1.117; previous revision: 1.116
done
Checking in java/editor/src/org/netbeans/modules/editor/java/Utilities.java;
/cvs/java/editor/src/org/netbeans/modules/editor/java/Utilities.java,v  <--  Utilities.java
new revision: 1.26; previous revision: 1.25
done
Checking in java/editor/src/org/netbeans/modules/java/editor/rename/InstantRenamePerformer.java;
/cvs/java/editor/src/org/netbeans/modules/java/editor/rename/InstantRenamePerformer.java,v  <--  InstantRenamePerformer.java
new revision: 1.7; previous revision: 1.6
done
Checking in java/editor/src/org/netbeans/modules/java/editor/semantic/FindLocalUsagesQuery.java;
/cvs/java/editor/src/org/netbeans/modules/java/editor/semantic/FindLocalUsagesQuery.java,v  <--  FindLocalUsagesQuery.java
new revision: 1.4; previous revision: 1.3
done
Checking in java/editor/src/org/netbeans/modules/java/editor/semantic/MarkOccurrencesHighlighter.java;
/cvs/java/editor/src/org/netbeans/modules/java/editor/semantic/MarkOccurrencesHighlighter.java,v  <-- 
MarkOccurrencesHighlighter.java
new revision: 1.5; previous revision: 1.4
done
Checking in java/editor/src/org/netbeans/modules/java/editor/semantic/MarkOccurrencesHighlighterFactory.java;
/cvs/java/editor/src/org/netbeans/modules/java/editor/semantic/MarkOccurrencesHighlighterFactory.java,v  <-- 
MarkOccurrencesHighlighterFactory.java
new revision: 1.6; previous revision: 1.5
done
Checking in java/editor/src/org/netbeans/modules/java/editor/semantic/MethodExitDetector.java;
/cvs/java/editor/src/org/netbeans/modules/java/editor/semantic/MethodExitDetector.java,v  <--  MethodExitDetector.java
new revision: 1.4; previous revision: 1.3
done
Checking in java/editor/src/org/netbeans/modules/java/editor/semantic/SemanticHighlighter.java;
/cvs/java/editor/src/org/netbeans/modules/java/editor/semantic/SemanticHighlighter.java,v  <--  SemanticHighlighter.java
new revision: 1.15; previous revision: 1.14
done
Checking in java/editor/src/org/netbeans/modules/java/editor/semantic/SemanticHighlighterFactory.java;
/cvs/java/editor/src/org/netbeans/modules/java/editor/semantic/SemanticHighlighterFactory.java,v  <-- 
SemanticHighlighterFactory.java
new revision: 1.4; previous revision: 1.3
done
Checking in java/editor/src/org/netbeans/modules/java/editor/semantic/Utilities.java;
/cvs/java/editor/src/org/netbeans/modules/java/editor/semantic/Utilities.java,v  <--  Utilities.java
new revision: 1.8; previous revision: 1.7
done
Checking in java/editor/test/unit/src/org/netbeans/modules/java/editor/semantic/DetectorTest.java;
/cvs/java/editor/test/unit/src/org/netbeans/modules/java/editor/semantic/DetectorTest.java,v  <--  DetectorTest.java
new revision: 1.13; previous revision: 1.12
done
Checking in java/hints/nbproject/project.properties;
/cvs/java/hints/nbproject/project.properties,v  <--  project.properties
new revision: 1.25; previous revision: 1.24
done
Checking in java/hints/nbproject/project.xml;
/cvs/java/hints/nbproject/project.xml,v  <--  project.xml
new revision: 1.31; previous revision: 1.30
done
Checking in java/hints/src/org/netbeans/modules/java/hints/AddOverrideAnnotation.java;
/cvs/java/hints/src/org/netbeans/modules/java/hints/AddOverrideAnnotation.java,v  <--  AddOverrideAnnotation.java
new revision: 1.3; previous revision: 1.2
done
Checking in java/hints/src/org/netbeans/modules/java/hints/EmptyCancelForCancellableTask.java;
/cvs/java/hints/src/org/netbeans/modules/java/hints/EmptyCancelForCancellableTask.java,v  <-- 
EmptyCancelForCancellableTask.java
new revision: 1.2; previous revision: 1.1
done
Checking in java/hints/src/org/netbeans/modules/java/hints/ExportNonAccessibleElement.java;
/cvs/java/hints/src/org/netbeans/modules/java/hints/ExportNonAccessibleElement.java,v  <--  ExportNonAccessibleElement.java
new revision: 1.8; previous revision: 1.7
done
Checking in java/hints/src/org/netbeans/modules/java/hints/HideField.java;
/cvs/java/hints/src/org/netbeans/modules/java/hints/HideField.java,v  <--  HideField.java
new revision: 1.5; previous revision: 1.4
done
Checking in java/hints/src/org/netbeans/modules/java/hints/HideFieldByVar.java;
/cvs/java/hints/src/org/netbeans/modules/java/hints/HideFieldByVar.java,v  <--  HideFieldByVar.java
new revision: 1.3; previous revision: 1.2
done
Checking in java/hints/src/org/netbeans/modules/java/hints/MissingHashCode.java;
/cvs/java/hints/src/org/netbeans/modules/java/hints/MissingHashCode.java,v  <--  MissingHashCode.java
new revision: 1.3; previous revision: 1.2
done
Checking in java/hints/src/org/netbeans/modules/java/hints/SuspiciousNamesCombination.java;
/cvs/java/hints/src/org/netbeans/modules/java/hints/SuspiciousNamesCombination.java,v  <--  SuspiciousNamesCombination.java
new revision: 1.2; previous revision: 1.1
done
Checking in java/hints/src/org/netbeans/modules/java/hints/UtilityClass.java;
/cvs/java/hints/src/org/netbeans/modules/java/hints/UtilityClass.java,v  <--  UtilityClass.java
new revision: 1.7; previous revision: 1.6
done
Checking in java/hints/src/org/netbeans/modules/java/hints/errors/CreateElement.java;
/cvs/java/hints/src/org/netbeans/modules/java/hints/errors/CreateElement.java,v  <--  CreateElement.java
new revision: 1.7; previous revision: 1.6
done
Checking in java/hints/src/org/netbeans/modules/java/hints/errors/ImportClass.java;
/cvs/java/hints/src/org/netbeans/modules/java/hints/errors/ImportClass.java,v  <--  ImportClass.java
new revision: 1.4; previous revision: 1.3
done
Checking in java/hints/src/org/netbeans/modules/java/hints/infrastructure/ErrorHintsFactory.java;
/cvs/java/hints/src/org/netbeans/modules/java/hints/infrastructure/ErrorHintsFactory.java,v  <--  ErrorHintsFactory.java
new revision: 1.2; previous revision: 1.1
done
Checking in java/hints/src/org/netbeans/modules/java/hints/infrastructure/ErrorHintsProvider.java;
/cvs/java/hints/src/org/netbeans/modules/java/hints/infrastructure/ErrorHintsProvider.java,v  <--  ErrorHintsProvider.java
new revision: 1.4; previous revision: 1.3
done
Checking in java/hints/test/unit/src/org/netbeans/modules/java/hints/errors/CreateClassTest.java;
/cvs/java/hints/test/unit/src/org/netbeans/modules/java/hints/errors/CreateClassTest.java,v  <--  CreateClassTest.java
new revision: 1.3; previous revision: 1.2
done
Checking in java/hints/test/unit/src/org/netbeans/modules/java/hints/errors/CreateMethodTest.java;
/cvs/java/hints/test/unit/src/org/netbeans/modules/java/hints/errors/CreateMethodTest.java,v  <--  CreateMethodTest.java
new revision: 1.5; previous revision: 1.4
done
Checking in java/hints/test/unit/src/org/netbeans/modules/java/hints/infrastructure/ErrorHintsTestBase.java;
/cvs/java/hints/test/unit/src/org/netbeans/modules/java/hints/infrastructure/ErrorHintsTestBase.java,v  <-- 
ErrorHintsTestBase.java
new revision: 1.4; previous revision: 1.3
done
Checking in java/source/apichanges.xml;
/cvs/java/source/apichanges.xml,v  <--  apichanges.xml
new revision: 1.16; previous revision: 1.15
done
Checking in java/source/nbproject/project.properties;
/cvs/java/source/nbproject/project.properties,v  <--  project.properties
new revision: 1.28; previous revision: 1.27
done
Checking in java/source/nbproject/project.xml;
/cvs/java/source/nbproject/project.xml,v  <--  project.xml
new revision: 1.20; previous revision: 1.19
done
Checking in java/source/preprocessorbridge/manifest.mf;
/cvs/java/source/preprocessorbridge/manifest.mf,v  <--  manifest.mf
new revision: 1.2; previous revision: 1.1
done
Checking in java/source/preprocessorbridge/nbproject/project.xml;
/cvs/java/source/preprocessorbridge/nbproject/project.xml,v  <--  project.xml
new revision: 1.2; previous revision: 1.1
done
Checking in java/source/preprocessorbridge/src/org/netbeans/modules/java/preprocessorbridge/spi/JavaSourceProvider.java;
/cvs/java/source/preprocessorbridge/src/org/netbeans/modules/java/preprocessorbridge/spi/JavaSourceProvider.java,v  <--
 JavaSourceProvider.java
new revision: 1.2; previous revision: 1.1
done
Checking in java/source/src/org/netbeans/api/java/source/CompilationController.java;
/cvs/java/source/src/org/netbeans/api/java/source/CompilationController.java,v  <--  CompilationController.java
new revision: 1.9; previous revision: 1.8
done
Checking in java/source/src/org/netbeans/api/java/source/CompilationInfo.java;
/cvs/java/source/src/org/netbeans/api/java/source/CompilationInfo.java,v  <--  CompilationInfo.java
new revision: 1.13; previous revision: 1.12
done
Checking in java/source/src/org/netbeans/api/java/source/JavaSource.java;
/cvs/java/source/src/org/netbeans/api/java/source/JavaSource.java,v  <--  JavaSource.java
new revision: 1.64; previous revision: 1.63
done
RCS file: /cvs/java/source/src/org/netbeans/api/java/source/PositionConverter.java,v
done
Checking in java/source/src/org/netbeans/api/java/source/PositionConverter.java;
/cvs/java/source/src/org/netbeans/api/java/source/PositionConverter.java,v  <--  PositionConverter.java
initial revision: 1.1
done
Checking in java/source/src/org/netbeans/api/java/source/SourceUtils.java;
/cvs/java/source/src/org/netbeans/api/java/source/SourceUtils.java,v  <--  SourceUtils.java
new revision: 1.37; previous revision: 1.36
done
Checking in java/source/src/org/netbeans/api/java/source/support/CaretAwareJavaSourceTaskFactory.java;
/cvs/java/source/src/org/netbeans/api/java/source/support/CaretAwareJavaSourceTaskFactory.java,v  <-- 
CaretAwareJavaSourceTaskFactory.java
new revision: 1.4; previous revision: 1.3
done
Checking in java/source/src/org/netbeans/api/java/source/support/EditorAwareJavaSourceTaskFactory.java;
/cvs/java/source/src/org/netbeans/api/java/source/support/EditorAwareJavaSourceTaskFactory.java,v  <-- 
EditorAwareJavaSourceTaskFactory.java
new revision: 1.4; previous revision: 1.3
done
Checking in java/source/src/org/netbeans/api/java/source/support/LookupBasedJavaSourceTaskFactory.java;
/cvs/java/source/src/org/netbeans/api/java/source/support/LookupBasedJavaSourceTaskFactory.java,v  <-- 
LookupBasedJavaSourceTaskFactory.java
new revision: 1.4; previous revision: 1.3
done
Checking in java/source/src/org/netbeans/api/java/source/support/OpenedEditors.java;
/cvs/java/source/src/org/netbeans/api/java/source/support/OpenedEditors.java,v  <--  OpenedEditors.java
new revision: 1.4; previous revision: 1.3
done
Checking in java/source/src/org/netbeans/modules/java/source/JavaSourceAccessor.java;
/cvs/java/source/src/org/netbeans/modules/java/source/JavaSourceAccessor.java,v  <--  JavaSourceAccessor.java
new revision: 1.11; previous revision: 1.10
done
Checking in java/source/src/org/netbeans/modules/java/source/parsing/SourceFileObject.java;
/cvs/java/source/src/org/netbeans/modules/java/source/parsing/SourceFileObject.java,v  <--  SourceFileObject.java
new revision: 1.13; previous revision: 1.12
done
Checking in java/source/test/unit/src/org/netbeans/api/java/source/JavaSourceTest.java;
/cvs/java/source/test/unit/src/org/netbeans/api/java/source/JavaSourceTest.java,v  <--  JavaSourceTest.java
new revision: 1.16; previous revision: 1.15
done
Checking in java/source/test/unit/src/org/netbeans/api/java/source/SourceUtilsTest.java;
/cvs/java/source/test/unit/src/org/netbeans/api/java/source/SourceUtilsTest.java,v  <--  SourceUtilsTest.java
new revision: 1.5; previous revision: 1.4
done
Checking in java/sourceui/nbproject/project.properties;
/cvs/java/sourceui/nbproject/project.properties,v  <--  project.properties
new revision: 1.2; previous revision: 1.1
done
Checking in java/sourceui/nbproject/project.xml;
/cvs/java/sourceui/nbproject/project.xml,v  <--  project.xml
new revision: 1.3; previous revision: 1.2
done
RCS file: /cvs/java/sourceui/src/org/netbeans/api/java/source/ui/DialogBinding.java,v
done
Checking in java/sourceui/src/org/netbeans/api/java/source/ui/DialogBinding.java;
/cvs/java/sourceui/src/org/netbeans/api/java/source/ui/DialogBinding.java,v  <--  DialogBinding.java
initial revision: 1.1
done
Checking in web/jspsyntax/nbproject/project.properties;
/cvs/web/jspsyntax/nbproject/project.properties,v  <--  project.properties
new revision: 1.26; previous revision: 1.25
done
Checking in web/jspsyntax/nbproject/project.xml;
/cvs/web/jspsyntax/nbproject/project.xml,v  <--  project.xml
new revision: 1.31; previous revision: 1.30
done
Checking in web/jspsyntax/src/META-INF/services/org.netbeans.modules.java.preprocessorbridge.spi.JavaSourceProvider;
/cvs/web/jspsyntax/src/META-INF/services/org.netbeans.modules.java.preprocessorbridge.spi.JavaSourceProvider,v  <-- 
org.netbeans.modules.java.preprocessorbridge.spi.JavaSourceProvider
new revision: 1.2; previous revision: 1.1
done
Checking in web/jspsyntax/src/org/netbeans/modules/web/core/syntax/JavaSourceProviderImpl.java;
/cvs/web/jspsyntax/src/org/netbeans/modules/web/core/syntax/JavaSourceProviderImpl.java,v  <--  JavaSourceProviderImpl.java
new revision: 1.2; previous revision: 1.1
done
Checking in web/jspsyntax/src/org/netbeans/modules/web/core/syntax/SimplifiedJSPServlet.java;
/cvs/web/jspsyntax/src/org/netbeans/modules/web/core/syntax/SimplifiedJSPServlet.java,v  <--  SimplifiedJSPServlet.java
new revision: 1.5; previous revision: 1.4
done
Checking in web/jspsyntax/src/org/netbeans/modules/web/core/syntax/resources/layer.xml;
/cvs/web/jspsyntax/src/org/netbeans/modules/web/core/syntax/resources/layer.xml,v  <--  layer.xml
new revision: 1.14; previous revision: 1.13
done