<?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.
-->

<project name="props">
    <property name="project.name" value="bsf"/>
    <property name="project.fullName" value="Bean Scripting Framework"/>
    <property name="project.version" value="2.4.1-20061208"/>
    <property name="project.debug" value="on"/>
    <property name="project.deprecation" value="on"/>

    <property name="build.file" value="build.xml"/>
    <property name="build.dir" value="build"/>
    <property name="build.dest" value="build/classes"/>
    <property name="build.lib" value="build/lib"/>
    <property name="build.lib.win32" value="build/lib/win32"/>
    <property name="build.samples" value="build/samples"/>
    <property name="build.samples.calc" value="build/samples/calc"/>
    <property name="build.samples.scriptedui" value="build/samples/scriptedui"/>
    <property name="build.samples.xsl" value="build/samples/xsl"/>
    <property name="build.javadocs" value="build/javadocs"/>
    <property name="build.tests" value="build/testcases" />

    <property name="dist.dir" value="dist"/>
    <property name="dist.dir.root" value="${dist.dir}/${project.name}-${project.version}"/>
    <property name="dist.bin.file" value="${dist.dir}/${project.name}-bin-${project.version}"/>
    <property name="dist.src.file" value="${dist.dir}/${project.name}-src-${project.version}"/>

    <property name="packages" value="org.apache.*"/>

    <property name="samples.dir" value="samples"/>

    <property name="site.src" location="xdocs"/>
    <property name="site.dest" location="docs"/>
    <property name="site.projectFile" value="stylesheets/project.xml"/>

    <property name="source.level" value="1.3" />

    <property name="src.dir" value="src"/>

    <property name="templ.path" location="xdocs/stylesheets"/>

    <property name="tests.dir" value="test"/>

    <property name="velocity.props" location="${site.src}/velocity.properties"/>
</project>
