<?xml version="1.0" encoding="UTF-8"?>
<!--
   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
 -->
<projectDescription>
	<name>Openmeetings 2.x</name>
	<comment></comment>
	<projects>
	</projects>
	<buildSpec>
		<buildCommand>
			<name>org.eclipse.wst.jsdt.core.javascriptValidator</name>
			<arguments>
			</arguments>
		</buildCommand>
		<buildCommand>
			<name>org.eclipse.jdt.core.javabuilder</name>
			<arguments>
			</arguments>
		</buildCommand>
		<buildCommand>
			<name>org.eclipse.wst.common.project.facet.core.builder</name>
			<arguments>
			</arguments>
		</buildCommand>
		<buildCommand>
			<name>org.eclipse.wst.validation.validationbuilder</name>
			<arguments>
			</arguments>
		</buildCommand>
		<buildCommand>
			<name>org.springframework.ide.eclipse.core.springbuilder</name>
			<arguments>
			</arguments>
		</buildCommand>
		<buildCommand>
			<name>org.zeroturnaround.eclipse.remoting.remotingBuilder</name>
			<arguments>
			</arguments>
		</buildCommand>
		<buildCommand>
			<name>org.zeroturnaround.eclipse.rebelXmlBuilder</name>
			<arguments>
			</arguments>
		</buildCommand>
	</buildSpec>
	<natures>
		<nature>org.springframework.ide.eclipse.core.springnature</nature>
		<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
		<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
		<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
		<nature>org.eclipse.jdt.core.javanature</nature>
		<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
		<nature>org.apache.ivyde.eclipse.ivynature</nature>
		<nature>org.zeroturnaround.eclipse.remoting.remotingNature</nature>
		<nature>org.zeroturnaround.eclipse.jrebelNature</nature>
	</natures>
	<filteredResources>
		<filter>
			<id>1361089169002</id>
			<name></name>
			<type>26</type>
			<matcher>
				<id>org.eclipse.ui.ide.multiFilter</id>
				<arguments>1.0-name-matches-false-false-.svn</arguments>
			</matcher>
		</filter>
		<filter>
			<id>1361089169005</id>
			<name></name>
			<type>10</type>
			<matcher>
				<id>org.eclipse.ui.ide.multiFilter</id>
				<arguments>1.0-projectRelativePath-matches-false-false-dist</arguments>
			</matcher>
		</filter>
		<filter>
			<id>1361089169008</id>
			<name></name>
			<type>26</type>
			<matcher>
				<id>org.eclipse.ui.ide.multiFilter</id>
				<arguments>1.0-projectRelativePath-matches-false-false-build/classes/openmeetings</arguments>
			</matcher>
		</filter>
		<filter>
			<id>1361089169010</id>
			<name></name>
			<type>26</type>
			<matcher>
				<id>org.eclipse.ui.ide.multiFilter</id>
				<arguments>1.0-projectRelativePath-matches-false-false-build/openlaszlo*</arguments>
			</matcher>
		</filter>
		<filter>
			<id>1361089169013</id>
			<name></name>
			<type>30</type>
			<matcher>
				<id>org.eclipse.ui.ide.multiFilter</id>
				<arguments>1.0-projectRelativePath-matches-false-false-build/red5/server/bin</arguments>
			</matcher>
		</filter>
		<filter>
			<id>1361089169024</id>
			<name></name>
			<type>30</type>
			<matcher>
				<id>org.eclipse.ui.ide.multiFilter</id>
				<arguments>1.0-projectRelativePath-matches-false-false-build/red5/client/bin</arguments>
			</matcher>
		</filter>
		<filter>
			<id>1361089169027</id>
			<name></name>
			<type>6</type>
			<matcher>
				<id>org.eclipse.ui.ide.multiFilter</id>
				<arguments>1.0-name-matches-false-false-.ant-targets-build.xml</arguments>
			</matcher>
		</filter>
	</filteredResources>
</projectDescription>
