<!--
   Licensed to the Apache Software Foundation (ASF) under one or more
   contributor license agreements.  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 default="run" xmlns:j="jelly:core" xmlns:ant="jelly:ant">

  <goal name="run" prereqs="java:compile">
    <ant:mkdir dir="${maven.build.dir}/repo"/>
    <ant:copy todir="${maven.build.dir}/repo">
      <ant:fileset dir="${maven.src.dir}/repo"/>
    </ant:copy>
    <ant:java classname="org.apache.jackrabbit.examples.Main" fork="true">
      <ant:jvmarg value="-Djava.security.auth.login.config==${maven.build.dir}/repo/jaas.config"/>
      <ant:classpath>
        <ant:path refid="maven.dependency.classpath"/>
        <ant:pathelement path="${maven.build.dest}"/>
      </ant:classpath>
    </ant:java>
  </goal>

</project>
