<!doctype html public "-//w3c//dtd html 4.0 transitional//en">

<html>
<head>
   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
   <meta name="Author" content="IBM">
   <meta name="GENERATOR" content="Mozilla/4.75 [en] (WinNT; U) [Netscape]">
   <title>Core Expressions Release Notes</title>
</head>
<body>

<h1>
Eclipse Platform Build Notes&nbsp;<br>
Core Expressions</h1>
<h3>Mai 7, 2004</h3>
<h4>Problem Reports Fixed</h4>
<h4>Implemenation Changes</h4>
<ul>
  <li>The ability to resolve a plug-in descriptor via the resolve expression has been removed
      from the expression language. This was necessary since IPluginDescriptor is deprecated
      for 3.0 and the functionality was new in 3.0 anyways.</li>
</ul>
<h3>March 23, 2004</h3>
<h4>Problem Reports Fixed</h4>
<h4>Implemenation Changes</h4>
<ul>
  <li>removed the constructor public EvaluationContext(IEvaluationContext parent, Object defaultVariable, 
  Object selection). Instead of calling this constructor, the following code has to be written:
  <pre>
     EvaluationContext evalContext= new EvaluationContext(null, cunit);
     evalContext.addVariable("selection", cunit); //$NON-NLS-1$
  </pre>
  </li>
  <li> removed the two string constants:
  <pre>
     public static final String SYSTEM= "System";  //$NON-NLS-1$
     public static final String SELECTION= "selection";  //$NON-NLS-1$
  </pre>
  </li>
  <li>added support for custom variable resolver (see new class IVariableResolver). So there is no need
      to subclass EvaluationContext anymore to add your own resolving strategy.
  </li>
  <li>added support for an equals expression. </li>
</ul>

<h3>March 16, 2004</h3>
<h4>Problem Reports Fixed</h4>
<h4>Implemenation Changes</h4>
The adapt expression now uses the new IAdapterManager API hasAdapter(Object, String) and 
getAdapter(Object, String). This ensures that the right class loader is used to convert
the string representing a type into a corresponding Class. However, this change now requires
that the adapters requested via an adapt expression must be declared in XML using the new
org.eclipse.core.runtime.adapters extension point.
</body>
</html>

