#################################################################################
## Copyright (c) 2014 Obeo 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:
##     Obeo - initial API and implementation
#################################################################################
source.. = src/main/java/
output.. = bin/
bin.includes = META-INF/,\
               .,\
               bundle.properties,\
               OSGI-INF/
javacProjectSettings = true
additional.bundles = com.google.guava,\
                     com.google.gson,\
                     org.apache.httpcomponents.httpclient,\
                     org.apache.httpcomponents.httpcore,\
                     org.eclipse.jgit,\
                     org.eclipse.wst.jsdt.nodejs.core
