alvinalexander.com | career | drupal | java | mac | mysql | perl | scala | uml | unix  

What this is

This file is included in the DevDaily.com "Java Source Code Warehouse" project. The intent of this project is to help you "Learn Java by Example" TM.

Other links

The source code

**********************************************************
* BREAKING API CHANGES ***********************************
**********************************************************
  None
  
**********************************************************
* NON-BREAKING API CHANGES *******************************
**********************************************************

  * Added API to set both the classpath and the output location at once.
  	IJavaProject.setRawClasspath(
  		IClasspathEntry[] newClasspath, 
  		IPath newOutputLocation, 
  		IProgressMonitor monitor)
  	
  * ICodeCompletionRequestor got deprecated, should use ICompletionRequestor
    instead to obtain:
     (1) - local variable name suggestions
     (2) - parameter name hints
     (3) - method declaration suggestions.
    
   ICompletionRequestor is equivalent to ICodeCompletionRequestor except for
   the following API changes:
   
   (1) + Added API for suggest variable name:
      void acceptVariableName(
          char[] typePackageName,
          char[] typeName,
          char[] name,
          char[] completionName,
          int completionStart,
          int completionEnd);

    (2) + Added parameterNames to normal method results API:
      void acceptMethod(
          char[] declaringTypePackageName,
          char[] declaringTypeName,
          char[] selector,
          char[][] parameterPackageNames,
          char[][] parameterTypeNames,
          char[][] parameterNames,<<<<<<<<<<<<<<<< ADDED
          char[] returnTypePackageName,
          char[] returnTypeName,
          char[] completionName,
          int modifiers,
          int completionStart,
          int completionEnd);

   (3) + Added API for answering method declaration completions:
      void acceptMethodDeclaration(
          char[] declaringTypePackageName,
          char[] declaringTypeName,
          char[] selector,
          char[][] parameterPackageNames,
          char[][] parameterTypeNames,
          char[][] parameterNames,
          char[] returnTypePackageName,
          char[] returnTypeName,
          char[] completionName,
          int modifiers,
          int completionStart,
          int completionEnd);

  * SearchEngine.createJavaSearchScope(IResource[]) has been deprecated.
  	Use SearchEngine.createJavaSearchScope(IJavaElement[]) instead.
  	The rational is that createJavaSearchScope(IResource[]) was not well
  	defined for projects, and it could not define a search scope for java
  	elements that didn't have a corresponding resource (e.g. external jars).
  	
  	The specification of createJavaSearchScope(IJavaElement[]) is as follows:
	- If an element is an IJavaProject, then the project's source folders, 
      its jars (external and internal) and its references projects (with their 
      source folders and jars, recursively) will be included.
    - If an element is an IPackageFragmentRoot, then only the package fragments of 
      this package fragment root will be included.
    - If an element is an IPackageFragment, then only the compilation unit and class 
      files of this package fragment will be included. Subpackages will NOT be 
      included.
      
  * Classpath entries (except for source folders) can be tagged as exported upon
    creation. When exported, an entry is contributed to dependent projects along 
    with its output location.
    Added APIs:
    
    Testing status of a given entry
     + IClasspathEntry.isExported()

    Creating entries with export flag
     + JavaCore.newProjectEntry(IPath, boolean)
     + JavaCore.newLibraryEntry(IPath, IPath, IPath, boolean)
     + JavaCore.newVariableEntry(IPath, boolean)
           
  * Search for field read and field write accesses. Two new constants have been added
    on IJavaSearchConstants to be used when creating a field reference search pattern:
    - READ_ACCESSES: the search results contain *only* read access to a field.
    - WRITE_ACCESSES: the search results contain *only* write access to a field.
    Note that if REFERENCES is used, then search results contain both read and write
    accesss to a field.

  * org.eclipse.jdt.core.search.IJavaSearchResultCollector now clearly states that
    the order of the search result is unspecified.

  * Added 2 new APIs on JavaConventions for classpath validation.
         - IJavaModelStatus validateClasspath(IJavaProject project, IClasspathEntry[] classpath, IPath outputLocation) 
         - IJavaModelStatus validateClasspathEntry(IJavaProject project, IClasspathEntry entry, boolean checkSourceAttachment) 
 
  
**********************************************************
* FUNCTIONALITY CHANGES **********************************
**********************************************************
    
  * CodeAssist provides variable name suggestions.
  * CodeAssist provides argument names in method completions.
  * CodeAssist completes on method declarations (just enter selector prefix)  
  * Project can contribute more than their output folder, using exported classpath entries.
  * CodeAssist inserts qualification on field/method/type references in case of ambiguities (optionally these
    qualification can be forced to occur).
  * CodeAssist optionally performs visibility checks (see JavaCore option: "org.eclipse.jdt.core.codeComplete.visibilityCheck").
  * OpenOnSelection can now locate selected declarations.
  * Search can narrow field read/write access.
  * Assertions support enabled: by default the compiler is 1.3 compliant, but it can 
    optionally be turned into source 1.4 mode cf. JavaCore options.
  * Evaluation in binaries is functional
  * Search for references now finds results in binaries. Indexes in old workspaces are recomputed when restarted 
     which may result in longer startup times.
  * Search in inner-classes now works. Indexes are recomputed automatically on start-up.
 
      
... this post is sponsored by my books ...

#1 New Release!

FP Best Seller

 

new blog posts

 

Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.

A percentage of advertising revenue from
pages under the /java/jwarehouse URI on this website is
paid back to open source projects.