# Adopting 3.4 mechanisms and APIs

This section describes changes that are required if you are trying to change your 3.3 plug-in to adopt the 3.4 mechanisms and APIs.

1. Quick Fix command moved to Dialogs and Windows context
2. IFile.getCharset() caches character set values
3. Optimizing your update site for use with p2

## 1. Quick Fix command moved to Dialogs and Windows context

In order to enable Quick Fix in dialogs we moved the `org.eclipse.jdt.ui.edit.text.java.correction.assist.proposals` command to the Dialogs and Windows context. Clients who registered that command for the Dialogs or Dialogs and Windows context can now remove their contribution from their `plugin.xml`.

## 2. IFile.getCharset() caches character set values

The method `IFile.getCharset` returns a cached value for the file's encoding. If the file's encoding has been changed externally, and has not since been synchronized with the workspace using `IResource.refreshLocal`, it may return a stale result. Clients that call this method should revisit their usage to determine if a cached result is acceptable. While using a cached encoding has better performance, it could lead to data corruption if the wrong encoding is used to write a file.

## 3. Optimizing your update site for use with p2

Eclipse 3.4 includes a new provisioning platform called p2. This is a replacement for the Update Manager technology in previous Eclipse platform releases. While p2 can load update sites designed for Update Manager, you can optimize your site for p2 by generating p2 metadata for your update site. This metadata contains higher fidelity dependency information about the plug-ins and features in your update site, allowing for more accurate resolution of dependencies at install-time. See Generating p2 metadata for more details on how to generate p2 metadata for your update site.

p2 isn't capable of installing from update sites that make use of install handlers. When install handlers are encountered, p2 defers installation to the classic Update Manager. Although end users will still be able to install such features, the end user experience is less polished and the more advanced download technology of p2 cannot be exploited. It is recommended that install handlers be avoided for this reason.