<?xml version="1.0" encoding="UTF-8"?>
<!--

    Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
    distributed with this work for additional information
    regarding copyright ownership.  The ASF licenses this file
    to you 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.

-->
<!DOCTYPE filesystem PUBLIC "-//NetBeans//DTD Filesystem 1.1//EN" "http://www.netbeans.org/dtds/filesystem-1_1.dtd">
<filesystem>
    <folder name="Templates">
        <folder name="SaaSServices">
            <attr name="position" intvalue="3000"/>
            <attr name="SystemFileSystem.localizingBundle" stringvalue="org.netbeans.modules.websvc.saas.codegen.java.Bundle"/>
            <file name="RestConnection.java" url="/org/netbeans/modules/websvc/saas/codegen/java/resources/RestConnection.template">
                <attr name="position" intvalue="10"/>
                <attr name="javax.script.ScriptEngine" stringvalue="freemarker"/>
                <attr name="SystemFileSystem.icon" urlvalue="nbresloc:/org/netbeans/modules/java/resources/class.gif"/>
            </file>
            <file name="RestResponse.java" url="/org/netbeans/modules/websvc/saas/codegen/java/resources/RestResponse.template">
                <attr name="position" intvalue="20"/>
                <attr name="javax.script.ScriptEngine" stringvalue="freemarker"/>
                <attr name="SystemFileSystem.icon" urlvalue="nbresloc:/org/netbeans/modules/java/resources/class.gif"/>
            </file>
            <file name="SaasService.java" url="/org/netbeans/modules/websvc/saas/codegen/java/resources/SaasService.template">
                <attr name="position" intvalue="30"/>
                <attr name="javax.script.ScriptEngine" stringvalue="freemarker"/>
                <attr name="SystemFileSystem.icon" urlvalue="nbresloc:/org/netbeans/modules/java/resources/class.gif"/>
            </file>
            <file name="ApiKeyAuthenticator.java" url="/org/netbeans/modules/websvc/saas/codegen/java/resources/ApiKeyAuthenticator.template">
                <attr name="position" intvalue="40"/>
                <attr name="javax.script.ScriptEngine" stringvalue="freemarker"/>
                <attr name="SystemFileSystem.icon" urlvalue="nbresloc:/org/netbeans/modules/java/resources/class.gif"/>
            </file>
            <file name="apikey.properties" url="/org/netbeans/modules/websvc/saas/codegen/java/resources/apikey.properties">
                <attr name="position" intvalue="50"/>
                <attr name="javax.script.ScriptEngine" stringvalue="freemarker"/>
                <attr name="SystemFileSystem.icon" urlvalue="nbresloc:/org/netbeans/modules/java/resources/class.gif"/>
            </file>
            <file name="HttpBasicAuthenticatorDesktop.java" url="/org/netbeans/modules/websvc/saas/codegen/java/resources/HttpBasicAuthenticator.template">
                <attr name="position" intvalue="60"/>
                <attr name="javax.script.ScriptEngine" stringvalue="freemarker"/>
                <attr name="SystemFileSystem.icon" urlvalue="nbresloc:/org/netbeans/modules/java/resources/class.gif"/>
            </file>
            <file name="httpbasic.properties" url="/org/netbeans/modules/websvc/saas/codegen/java/resources/httpbasic.properties">
                <attr name="position" intvalue="70"/>
                <attr name="javax.script.ScriptEngine" stringvalue="freemarker"/>
                <attr name="SystemFileSystem.icon" urlvalue="nbresloc:/org/netbeans/modules/java/resources/class.gif"/>
            </file>
            <file name="SessionKeyAuthenticator.java" url="/org/netbeans/modules/websvc/saas/codegen/java/resources/SessionKeyAuthenticator.template">
                <attr name="position" intvalue="80"/>
                <attr name="javax.script.ScriptEngine" stringvalue="freemarker"/>
                <attr name="SystemFileSystem.icon" urlvalue="nbresloc:/org/netbeans/modules/java/resources/class.gif"/>
            </file>
            <file name="sessionkey.properties" url="/org/netbeans/modules/websvc/saas/codegen/java/resources/sessionkey.properties">
                <attr name="position" intvalue="90"/>
                <attr name="javax.script.ScriptEngine" stringvalue="freemarker"/>
                <attr name="SystemFileSystem.icon" urlvalue="nbresloc:/org/netbeans/modules/java/resources/class.gif"/>
            </file>
            <file name="SignedUrlAuthenticator.java" url="/org/netbeans/modules/websvc/saas/codegen/java/resources/SignedUrlAuthenticator.template">
                <attr name="position" intvalue="100"/>
                <attr name="javax.script.ScriptEngine" stringvalue="freemarker"/>
                <attr name="SystemFileSystem.icon" urlvalue="nbresloc:/org/netbeans/modules/java/resources/class.gif"/>
            </file>
            <file name="signedurl.properties" url="/org/netbeans/modules/websvc/saas/codegen/java/resources/signedurl.properties">
                <attr name="position" intvalue="110"/>
                <attr name="javax.script.ScriptEngine" stringvalue="freemarker"/>
                <attr name="SystemFileSystem.icon" urlvalue="nbresloc:/org/netbeans/modules/java/resources/class.gif"/>
            </file>

        </folder>
    </folder>
</filesystem>

