###############################################################################
# Copyright (c) 2010, 2015 Ministry of Internal Affairs and Communications 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:
#     Yasuharu GOTOU (MIC) - initial API and implementation
#     IBM Corporation - initial API and implementation
###############################################################################
bin.includes = plugin.xml,\
               META-INF/,\
               icons/,\
               plugin.properties,\
               plugin_ja.properties,\
               plugin_customization.ini,\
               about.gif,\
               .,\
               resource/,\
               about.html

source.. = src/
output.. = bin/

