# Stream Merger

###### Identifier:

org.eclipse.compare.streamMergers

###### Since:

3.0

###### Description:

This extension point allows a plug-in to register a stream merger for specific content types. The stream merger is expected to perform a three-way merge on three input streams and writes the result to an output stream. The extension point must implement the interface `org.eclipse.compare.IStreamMerger`.

###### Configuration Markup:

<!ELEMENT extension (streamMerger* , contentTypeBinding*)>

<!ATTLIST extension

point CDATA #REQUIRED

id CDATA #IMPLIED

name CDATA #IMPLIED

>

Deprecated. The `org.eclipse.team.core.storageMergers` extension point should be used instead.

- point - a fully qualified identifier of the target extension point
- id - an optional identifier of the extension instance
- name - an optional name of the extension instance

<!ELEMENT streamMerger EMPTY>

<!ATTLIST streamMerger

id CDATA #REQUIRED

class CDATA #REQUIRED

extensions CDATA #IMPLIED

>

- id - a unique identifier that can be used to reference the stream merger
- class - a fully qualified name of a class that implements `org.eclipse.compare.IStreamMerger`
- extensions - a comma separated list of file extensions e.g. "java, properties"

<!ELEMENT contentTypeBinding EMPTY>

<!ATTLIST contentTypeBinding

contentTypeId IDREF #REQUIRED

streamMergerId IDREF #REQUIRED

>

A `contentTypeBinding` binds a stream merger to a content type.

- contentTypeId - The id of a content type defined using the `org.eclipse.core.contenttype.contentTypes` extension point.
- streamMergerId - The id of a stream merger defined using the `streamMerger` element of this extension point (i.e. `org.eclipse.compare.streamMergers`)

###### Examples:

The following is an example of a stream merger for property files (extension "properties"):

    <extension point = "org.eclipse.compare.streamMergers">
         <streamMerger
             id="org.eclipse.compare.internal.merge.TextStreamMerger"
             class="org.eclipse.compare.internal.merge.TextStreamMerger"
             extensions="properties"
        />
    </extension>

###### API Information:

The contributed class must implement `org.eclipse.compare.IStreamMerger`

###### Supplied Implementation:

The Compare UI plugin defines a stream merger for line oriented text files.

Copyright (c) 2000, 2008 IBM Corporation and others.
All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html