<?xml version='1.0' encoding='utf-8'?>
<!--
Copyright 1999-2004 The Apache Software Foundation
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.
-->
<jnlp spec='1.0+' codebase='$codebase'> 
	<information> 
		<title>Screen Sharing Application</title> 
		<vendor>$APP_NAME</vendor> 
		<homepage>http://incubator.apache.org/openmeetings/</homepage>
		<icon href="icon.jpg" />
		<icon kind="splash" href="splashicon.jpg" />
		<description>ScreenViewer Client Application</description> 
		<description kind="short">A File to grab a screen and send it to a Server</description> 
		<offline-allowed/> 
	</information>
	<security>
	    <all-permissions/>
	</security>	
	<resources> 
		<j2se version='1.4+'/>
$LIBRARIES
    </resources> 
    <application-desc main-class='$startUpClass'>
    	<argument>$red5-host</argument> 
    	<argument>$red5-app</argument> 
    	<argument>$port</argument> 
    	<argument>$PUBLIC_SID</argument>   
    	<argument>$LABELSHARER</argument> 
    	<argument>$organization_id</argument> 
    	<argument>$default_quality_screensharing</argument>
    	<argument>$user_id</argument>   
    	<argument>$allowRecording</argument>
$KEYSTORE
    </application-desc> 
</jnlp> 
