<!--
   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="upload" xmlns:ivy="antlib:org.apache.ivy.ant">
  <fail unless="upload.user" message="supply upload.user on the command line"/>
  <fail unless="upload.password" message="supply upload.password on the command line"/>
  <property name="upload.url" value="https://repository.apache.org/service/local/staging/deploy/maven2"/>
  <ivy:configure file="ivysettings.xml"/>
  <ivy:resolve file="ivy.xml"/>  
  <ivy:retrieve/>
  <ivy:deliver/>
  <ivy:publish publishivy="false" artifactspattern="${basedir}/../java-repository/[organisation]/[module]/[artifact]/[revision]/[artifact]-[revision](-[classifier]).[ext]" resolver="nexus"/>
</project>