<?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.
 -->
<document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="website.xsd">

	<properties>
		<title>How to check which Openmeetings version running</title>
		<author email="sebawagner@apache.org">
			OpenMeetings Team
		</author>
	</properties>

	<body>
		<section name="How to check which Openmeetings version running (3.0.0 - )">
			<p>Use Top Menu -&gt; About</p>
		</section>
		<section name="How to check which Openmeetings version running (2.1.1 - )">
			<p>The version is printed into openmeetings.log file</p>
			<p>
				Run openmeetings<br/>
				Open OM_HOME/log/openmeetings.log
			</p>
			<p>You get something like this: </p>
			<div class="xmlcode"><pre>
	##################################################
	#               Openmeetings is up               #
	#       2.1.1-RELEASE 1490720 7-June-2013        #
	#                and ready to use                #
	##################################################
			</pre></div>
		</section>
		<section name="How to check which Openmeetings version running (1.8.0 - 2.1.0)">
			<p>If you need to know what version of OpenMeetings you are running,
				you can check that by the file: openmeetings-*.jar
			</p>
			<p>
				Unzip: /webapps/openmeetings/WEB-INF/lib/openmeetings-*.jar (jars are
				zips)
				<br />
				<br />
				In the resulting unzipped folder open the file to read:
				/META-INF/MANIFEST.MF
			</p>
			<p>You get something like this: </p>
			<div class="xmlcode">
				Manifest-Version: 1.0
				<br />
				Ant-Version: Apache Ant 1.8.2
				<br />
				Created-By: 1.6.0_26-b03-383-11A511 (Apple Inc.)
				<br />
				Built-By: OpenMeetings - http://openmeetings.googlecode.com
				<br />
				Built-On: 23-October-2011
				<br />
				Svn-Revision: 4368
				<br />
			</div>
			<p>This version info is available since version 1.8.0. If you have an
				older version as version 1.8.0 then you might simply check the
				language files and the labelid in there, the numbers of labels are
				almost always unique in the versions. </p>

		</section>

	</body>

</document>