<?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.5.0-20110829"/>
    <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="src/site/xdoc"/>
    <property name="site.images" location="src/site/resources/images"/>
    <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/main/java"/>

    <property name="templ.path" location="src/site/xdoc/stylesheets"/>

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

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