###############################################################################
# Copyright (c) 2009, 2011 EclipseSource 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
# 
# Contributors:
#     EclipseSource - initial API and implementation
#		IBM - Ongoing changes
###############################################################################
bin.includes = feature.xml,feature.properties

generate.plugin@org.apache.commons.codec.source=org.apache.commons.codec
generate.plugin@org.apache.commons.httpclient.source=org.apache.commons.httpclient
generate.plugin@org.apache.commons.logging.source=org.apache.commons.logging
generate.plugin@org.eclipse.ecf.filetransfer.source=org.eclipse.ecf.filetransfer
generate.plugin@org.eclipse.ecf.identity.source=org.eclipse.ecf.identity
generate.plugin@org.eclipse.ecf.provider.filetransfer.httpclient4.source=org.eclipse.ecf.provider.filetransfer.httpclient4
generate.plugin@org.eclipse.ecf.provider.filetransfer.httpclient4.ssl.source=org.eclipse.ecf.provider.filetransfer.httpclient4.ssl
generate.plugin@org.eclipse.ecf.provider.filetransfer.source=org.eclipse.ecf.provider.filetransfer
generate.plugin@org.eclipse.ecf.provider.filetransfer.ssl.source=org.eclipse.ecf.provider.filetransfer.ssl
generate.plugin@org.eclipse.ecf.source=org.eclipse.ecf
generate.plugin@org.eclipse.ecf.ssl.source=org.eclipse.ecf.ssl
generate.plugin@org.eclipse.equinox.frameworkadmin.equinox.source=org.eclipse.equinox.frameworkadmin.equinox
generate.plugin@org.eclipse.equinox.frameworkadmin.source=org.eclipse.equinox.frameworkadmin
generate.plugin@org.eclipse.equinox.p2.artifact.repository.source=org.eclipse.equinox.p2.artifact.repository
generate.plugin@org.eclipse.equinox.p2.console.source=org.eclipse.equinox.p2.console
generate.plugin@org.eclipse.equinox.p2.core.source=org.eclipse.equinox.p2.core
generate.plugin@org.eclipse.equinox.p2.director.app.source=org.eclipse.equinox.p2.director.app
generate.plugin@org.eclipse.equinox.p2.director.source=org.eclipse.equinox.p2.director
generate.plugin@org.eclipse.equinox.p2.directorywatcher.source=org.eclipse.equinox.p2.directorywatcher
generate.plugin@org.eclipse.equinox.p2.engine.source=org.eclipse.equinox.p2.engine
generate.plugin@org.eclipse.equinox.p2.extensionlocation.source=org.eclipse.equinox.p2.extensionlocation
generate.plugin@org.eclipse.equinox.p2.garbagecollector.source=org.eclipse.equinox.p2.garbagecollector
generate.plugin@org.eclipse.equinox.p2.installer.source=org.eclipse.equinox.p2.installer
generate.plugin@org.eclipse.equinox.p2.jarprocessor.source=org.eclipse.equinox.p2.jarprocessor
generate.plugin@org.eclipse.equinox.p2.metadata.repository.source=org.eclipse.equinox.p2.metadata.repository
generate.plugin@org.eclipse.equinox.p2.metadata.source=org.eclipse.equinox.p2.metadata
generate.plugin@org.eclipse.equinox.p2.operations.source=org.eclipse.equinox.p2.operations
generate.plugin@org.eclipse.equinox.p2.publisher.source=org.eclipse.equinox.p2.publisher
generate.plugin@org.eclipse.equinox.p2.reconciler.dropins.source=org.eclipse.equinox.p2.reconciler.dropins
generate.plugin@org.eclipse.equinox.p2.repository.source=org.eclipse.equinox.p2.repository
generate.plugin@org.eclipse.equinox.p2.repository.tools.source=org.eclipse.equinox.p2.repository.tools
generate.plugin@org.eclipse.equinox.p2.touchpoint.eclipse.source=org.eclipse.equinox.p2.touchpoint.eclipse
generate.plugin@org.eclipse.equinox.p2.touchpoint.natives.source=org.eclipse.equinox.p2.touchpoint.natives
generate.plugin@org.eclipse.equinox.p2.ui.admin.rcp.source=org.eclipse.equinox.p2.ui.admin.rcp
generate.plugin@org.eclipse.equinox.p2.ui.admin.source=org.eclipse.equinox.p2.ui.admin
generate.plugin@org.eclipse.equinox.p2.ui.importexport.source=org.eclipse.equinox.p2.ui.importexport
generate.plugin@org.eclipse.equinox.p2.ui.sdk.scheduler.source=org.eclipse.equinox.p2.ui.sdk.scheduler
generate.plugin@org.eclipse.equinox.p2.ui.sdk.source=org.eclipse.equinox.p2.ui.sdk
generate.plugin@org.eclipse.equinox.p2.ui.source=org.eclipse.equinox.p2.ui
generate.plugin@org.eclipse.equinox.p2.updatechecker.source=org.eclipse.equinox.p2.updatechecker
generate.plugin@org.eclipse.equinox.p2.updatesite.source=org.eclipse.equinox.p2.updatesite
generate.plugin@org.eclipse.equinox.simpleconfigurator.manipulator.source=org.eclipse.equinox.simpleconfigurator.manipulator
generate.plugin@org.eclipse.equinox.simpleconfigurator.source=org.eclipse.equinox.simpleconfigurator
generate.plugin@org.eclipse.equinox.p2.publisher.eclipse.source=org.eclipse.equinox.p2.publisher.eclipse