<?xml version="1.0" encoding="UTF-8"?>
<!--#======================================================================= -->
<!--# Copyright (c) 2011, 2014 - Lunifera GmbH (Gross Enzersdorf), -->
<!--# Loetz GmbH&Co.KG (Heidelberg) -->
<!--# All rights reserved. This program and the accompanying materials -->
<!--# are made available under the terms of the Eclipse Public License 2.0  -->
<!--# which accompanies this distribution, and is available at -->
<!--# https://www.eclipse.org/legal/epl-2.0/    -->
<!--#                                           -->
<!--# SPDX-License-Identifier: EPL-2.0          -->
<!--# -->
<!--# Contributors: -->
<!--# Florian Pirchner - Initial implementation -->
<!--#======================================================================= -->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>org.eclipse.osbp.ecview</groupId>
		<artifactId>org.eclipse.osbp.ecview.aggregator</artifactId>
		<version>0.9.0-SNAPSHOT</version>
		<relativePath>..</relativePath>
	</parent>

	<artifactId>org.eclipse.osbp.ecview.xtext.builder.participant</artifactId>
	<packaging>eclipse-plugin</packaging>
	<description>This bundle contains a builder participant. It will setup the Xtext types model and exposes a service IJvmTypeMetadataService. 

Using the method "JvmType getJvmType(String qualifiedName)" the JvmType for the given name will be returned. All bundles in the BundleSpace will be scanned for a matching class.</description>

	<build>
		<sourceDirectory>src</sourceDirectory>
	</build>
</project>
