Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package apache-commons-io.16121 for 
openSUSE:Leap:15.2:Update checked in at 2021-04-23 18:05:50
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Leap:15.2:Update/apache-commons-io.16121 (Old)
 and      
/work/SRC/openSUSE:Leap:15.2:Update/.apache-commons-io.16121.new.12324 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "apache-commons-io.16121"

Fri Apr 23 18:05:50 2021 rev:1 rq:887066 version:2.6

Changes:
--------
New Changes file:

--- /dev/null   2021-04-15 00:52:17.177990775 +0200
+++ 
/work/SRC/openSUSE:Leap:15.2:Update/.apache-commons-io.16121.new.12324/apache-commons-io.changes
    2021-04-23 18:05:51.168364711 +0200
@@ -0,0 +1,95 @@
+-------------------------------------------------------------------
+Wed Apr 14 16:22:24 UTC 2021 - Pedro Monreal <[email protected]>
+
+- Security fix: [bsc#1184755, CVE-2021-29425]
+  * Limited path traversal when invoking the method
+    FileNameUtils.normalize with an improper input string
+  * Add apache-commons-io-CVE-2021-29425.patch
+
+-------------------------------------------------------------------
+Wed Mar 27 10:17:25 UTC 2019 - Fridrich Strba <[email protected]>
+
+- Remove pom parent, since we don't use it when not building with
+  maven
+
+-------------------------------------------------------------------
+Tue Feb 26 17:34:25 UTC 2019 - Fridrich Strba <[email protected]>
+
+- Update to upstream version 2.6
+  * many bugfixes, features and enhancenments, like
+    Automatic-Module-Name entry in manifest
+  * requires jdk7 or later
+  * see RELEASE-NOTES.txt for details
+- Generated a build.xml to be able to build with ant
+- Build with tests is now optional
+- Removed patch:
+  * commons-io-version-property.patch
+    + not needed anymore in this version
+
+-------------------------------------------------------------------
+Tue May 15 10:41:03 UTC 2018 - [email protected]
+
+- Build with source and target 8 to prepare for a possible removal
+  of 1.6 compatibility
+- Run fdupes on documentation
+
+-------------------------------------------------------------------
+Thu Sep 14 11:39:40 UTC 2017 - [email protected]
+
+- Fix build with jdk9 by specifying source and target level 1.6
+
+-------------------------------------------------------------------
+Sun May 21 07:52:44 UTC 2017 - [email protected]
+
+- Remove unused depedencies
+
+-------------------------------------------------------------------
+Fri May 19 09:52:13 UTC 2017 - [email protected]
+
+- New build dependency: javapackages-local 
+
+-------------------------------------------------------------------
+Wed Mar 18 09:45:59 UTC 2015 - [email protected]
+
+- Fix build with new javapackages-tools
+
+-------------------------------------------------------------------
+Mon Jul  7 14:53:05 UTC 2014 - [email protected]
+
+- Use junit not junit4
+
+-------------------------------------------------------------------
+Mon Sep  9 11:05:28 UTC 2013 - [email protected]
+
+- Move from jpackage-utils to javapackage-tools
+
+-------------------------------------------------------------------
+Wed Mar 20 12:45:16 UTC 2013 - [email protected]
+
+- Added url as source. 
+  Please see http://en.opensuse.org/SourceUrls
+
+-------------------------------------------------------------------
+Thu Oct 25 08:21:33 UTC 2012 - [email protected]
+
+- update to the latest upstream version 2.4 (needed by fop 1.1)
+  * many bugfixes, features and enhancenments, like
+  * XmlStreamReader support for UTF-32
+  * requires jdk6 or later
+  * see RELEASE-NOTES.txt for details
+- rename to apache-commons-io to stay compatible with upstream and fedora
+- add commons-io-version-property.patch to fix the version in build.xml
+
+-------------------------------------------------------------------
+Mon Aug 25 10:26:55 CEST 2008 - [email protected]
+
+- target=1.5
+- removed a build gcj support 
+- removed a javadoc %post/postun
+- fixed a wrong end of line encoding
+
+-------------------------------------------------------------------
+Thu Mar 13 11:37:36 CET 2008 - [email protected]
+
+- Initial package created with version 1.3.2 (JPackage 1.7)
+

New:
----
  apache-commons-io-CVE-2021-29425.patch
  apache-commons-io-build.xml
  apache-commons-io.changes
  apache-commons-io.spec
  commons-io-2.6-src.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ apache-commons-io.spec ++++++
#
# spec file for package apache-commons-io
#
# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via https://bugs.opensuse.org/
#


%define base_name       io
%define short_name      commons-%{base_name}
%bcond_with tests
Name:           apache-%{short_name}
Version:        2.6
Release:        0
Summary:        Utilities to assist with developing IO functionality
License:        Apache-2.0
Group:          Development/Libraries/Java
URL:            http://commons.apache.org/%{base_name}
Source0:        
http://archive.apache.org/dist/commons/%{base_name}/source/%{short_name}-%{version}-src.tar.gz
Source1:        %{name}-build.xml
# PATCH-FIX-UPSTREAM bsc#1184755 CVE-2021-29425 Limited path traversal
Patch0:         apache-commons-io-CVE-2021-29425.patch
BuildRequires:  ant >= 1.6
BuildRequires:  fdupes
BuildRequires:  java-devel >= 1.8
BuildRequires:  javapackages-local
Provides:       %{short_name} = %{version}-%{release}
Provides:       jakarta-%{short_name} = %{version}-%{release}
Obsoletes:      jakarta-%{short_name} < %{version}-%{release}
BuildArch:      noarch
%if %{with tests}
BuildRequires:  ant-junit
%endif

%description
Commons-IO contains utility classes, stream implementations,
file filters, and endian classes. It is a library of utilities
to assist with developing IO functionality.

%package        javadoc
Summary:        API documentation for %{name}
Group:          Documentation/HTML

%description    javadoc
This package provides %{summary}.

%prep
%setup -q -n %{short_name}-%{version}-src
%patch0 -p1
cp %{SOURCE1} build.xml

%pom_remove_parent

%build
%{ant} \
        -Dcompiler.source=1.8 \
%if %{without tests }
        -Dtest.skip=true \
%endif
    jar javadoc

%install
# jars
install -d -m 0755 %{buildroot}%{_javadir}
install -p -m 0644 target/%{short_name}-%{version}.jar \
  %{buildroot}%{_javadir}/%{short_name}.jar
ln -sf %{short_name}.jar %{buildroot}%{_javadir}/%{name}.jar
# pom
install -d -m 755 %{buildroot}%{_mavenpomdir}
install -pm 644 pom.xml %{buildroot}%{_mavenpomdir}/%{short_name}.pom
%add_maven_depmap %{short_name}.pom %{short_name}.jar -a 
"org.apache.commons:commons-io"
# javadoc
install -d -m 755 %{buildroot}%{_javadocdir}/%{name}
cp -pr target/site/apidocs/* %{buildroot}%{_javadocdir}/%{name}
%fdupes -s %{buildroot}%{_javadocdir}

%files -f .mfiles
%license LICENSE.txt NOTICE.txt
%doc RELEASE-NOTES.txt
%{_javadir}/%{name}.jar

%files javadoc
%doc %{_javadocdir}/%{name}

%changelog
++++++ apache-commons-io-CVE-2021-29425.patch ++++++
>From 2736b6fe0b3fa22ec8e2b4184897ecadb021fc78 Mon Sep 17 00:00:00 2001
From: Stefan Bodewig <[email protected]>
Date: Thu, 21 Dec 2017 13:49:06 +0100
Subject: [PATCH 2088/2940] IO-559 verify hostname part of suspected UNC paths
 in FileNameUtils

---
 .../org/apache/commons/io/FilenameUtils.java  | 147 +++++++++++++++++-
 .../commons/io/FilenameUtilsTestCase.java     |  18 +++
 2 files changed, 164 insertions(+), 1 deletion(-)

Index: commons-io-2.6-src/src/main/java/org/apache/commons/io/FilenameUtils.java
===================================================================
--- 
commons-io-2.6-src.orig/src/main/java/org/apache/commons/io/FilenameUtils.java
+++ commons-io-2.6-src/src/main/java/org/apache/commons/io/FilenameUtils.java
@@ -19,8 +19,12 @@ package org.apache.commons.io;
 import java.io.File;
 import java.io.IOException;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Collection;
+import java.util.List;
 import java.util.Stack;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 /**
  * General filename and filepath manipulation utilities.
@@ -679,7 +683,9 @@ public class FilenameUtils {
                 }
                 posUnix = posUnix == NOT_FOUND ? posWin : posUnix;
                 posWin = posWin == NOT_FOUND ? posUnix : posWin;
-                return Math.min(posUnix, posWin) + 1;
+                int pos = Math.min(posUnix, posWin) + 1;
+                String hostnamePart = filename.substring(2, pos - 1);
+                return isValidHostName(hostnamePart) ? pos : NOT_FOUND;
             } else {
                 return isSeparator(ch0) ? 1 : 0;
             }
@@ -1450,4 +1456,143 @@ public class FilenameUtils {
         return list.toArray( new String[ list.size() ] );
     }
 
+    /**
+     * Checks whether a given string is a valid host name according to
+     * RFC 3986.
+     *
+     * <p>Accepted are IP addresses (v4 and v6) as well as what the
+     * RFC calls a "reg-name". Percent encoded names don't seem to be
+     * valid names in UNC paths.</p>
+     *
+     * @see "https://tools.ietf.org/html/rfc3986#section-3.2.2";
+     * @param name the hostname to validate
+     * @return true if the given name is a valid host name
+     */
+    private static boolean isValidHostName(String name) {
+        return isIPv4Address(name) || isIPv6Address(name) || 
isRFC3986HostName(name);
+    }
+
+    private static final Pattern IPV4_PATTERN =
+        Pattern.compile("^(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})$");
+    private static final int IPV4_MAX_OCTET_VALUE = 255;
+
+    // mostly copied from 
org.apache.commons.validator.routines.InetAddressValidator#isValidInet4Address
+    private static boolean isIPv4Address(String name) {
+        Matcher m = IPV4_PATTERN.matcher(name);
+        if (!m.matches() || m.groupCount() != 4) {
+            return false;
+        }
+
+        // verify that address subgroups are legal
+        for (int i = 1; i < 5; i++) {
+            String ipSegment = m.group(i);
+            if (ipSegment == null || ipSegment.length() == 0) {
+                return false;
+            }
+
+            int iIpSegment = 0;
+
+            try {
+                iIpSegment = Integer.parseInt(ipSegment);
+            } catch(NumberFormatException e) {
+                return false;
+            }
+
+            if (iIpSegment > IPV4_MAX_OCTET_VALUE) {
+                return false;
+            }
+
+            if (ipSegment.length() > 1 && ipSegment.startsWith("0")) {
+                return false;
+            }
+
+        }
+
+        return true;
+    }
+
+    private static final int IPV6_MAX_HEX_GROUPS = 8;
+    private static final int IPV6_MAX_HEX_DIGITS_PER_GROUP = 4;
+    private static final int MAX_UNSIGNED_SHORT = 0xffff;
+    private static final int BASE_16 = 16;
+
+    // copied from 
org.apache.commons.validator.routines.InetAddressValidator#isValidInet6Address
+    private static boolean isIPv6Address(String inet6Address) {
+        boolean containsCompressedZeroes = inet6Address.contains("::");
+        if (containsCompressedZeroes && (inet6Address.indexOf("::") != 
inet6Address.lastIndexOf("::"))) {
+            return false;
+        }
+        if ((inet6Address.startsWith(":") && !inet6Address.startsWith("::"))
+                || (inet6Address.endsWith(":") && 
!inet6Address.endsWith("::"))) {
+            return false;
+        }
+        String[] octets = inet6Address.split(":");
+        if (containsCompressedZeroes) {
+            List<String> octetList = new 
ArrayList<String>(Arrays.asList(octets));
+            if (inet6Address.endsWith("::")) {
+                // String.split() drops ending empty segments
+                octetList.add("");
+            } else if (inet6Address.startsWith("::") && !octetList.isEmpty()) {
+                octetList.remove(0);
+            }
+            octets = octetList.toArray(new String[octetList.size()]);
+        }
+        if (octets.length > IPV6_MAX_HEX_GROUPS) {
+            return false;
+        }
+        int validOctets = 0;
+        int emptyOctets = 0; // consecutive empty chunks
+        for (int index = 0; index < octets.length; index++) {
+            String octet = octets[index];
+            if (octet.length() == 0) {
+                emptyOctets++;
+                if (emptyOctets > 1) {
+                    return false;
+                }
+            } else {
+                emptyOctets = 0;
+                // Is last chunk an IPv4 address?
+                if (index == octets.length - 1 && octet.contains(".")) {
+                    if (!isIPv4Address(octet)) {
+                        return false;
+                    }
+                    validOctets += 2;
+                    continue;
+                }
+                if (octet.length() > IPV6_MAX_HEX_DIGITS_PER_GROUP) {
+                    return false;
+                }
+                int octetInt = 0;
+                try {
+                    octetInt = Integer.parseInt(octet, BASE_16);
+                } catch (NumberFormatException e) {
+                    return false;
+                }
+                if (octetInt < 0 || octetInt > MAX_UNSIGNED_SHORT) {
+                    return false;
+                }
+            }
+            validOctets++;
+        }
+        if (validOctets > IPV6_MAX_HEX_GROUPS || (validOctets < 
IPV6_MAX_HEX_GROUPS && !containsCompressedZeroes)) {
+            return false;
+        }
+        return true;
+    }
+
+    private static final Pattern REG_NAME_PART_PATTERN = 
Pattern.compile("^[a-zA-Z0-9][a-zA-Z0-9-]*$");
+
+    private static boolean isRFC3986HostName(String name) {
+        String[] parts = name.split("\\.", -1);
+        for (int i = 0; i < parts.length; i++) {
+            if (parts[i].length() == 0) {
+                // trailing dot is legal, otherwise we've hit a .. sequence
+                return i == parts.length - 1;
+            }
+            if (!REG_NAME_PART_PATTERN.matcher(parts[i]).matches()) {
+                return false;
+            }
+        }
+        return true;
+    }
 }
Index: 
commons-io-2.6-src/src/test/java/org/apache/commons/io/FilenameUtilsTestCase.java
===================================================================
--- 
commons-io-2.6-src.orig/src/test/java/org/apache/commons/io/FilenameUtilsTestCase.java
+++ 
commons-io-2.6-src/src/test/java/org/apache/commons/io/FilenameUtilsTestCase.java
@@ -244,6 +244,15 @@ public class FilenameUtilsTestCase {
         assertEquals(null, FilenameUtils.normalize("//server/../a"));
         assertEquals(null, FilenameUtils.normalize("//server/.."));
         assertEquals(SEP + SEP + "server" + SEP + "", 
FilenameUtils.normalize("//server/"));
+
+        assertEquals(SEP + SEP + "127.0.0.1" + SEP + "a" + SEP + "b" + SEP + 
"c.txt", FilenameUtils.normalize("\\\\127.0.0.1\\a\\b\\c.txt"));
+        assertEquals(SEP + SEP + "::1" + SEP + "a" + SEP + "b" + SEP + 
"c.txt", FilenameUtils.normalize("\\\\::1\\a\\b\\c.txt"));
+        assertEquals(SEP + SEP + "server.example.org" + SEP + "a" + SEP + "b" 
+ SEP + "c.txt", 
FilenameUtils.normalize("\\\\server.example.org\\a\\b\\c.txt"));
+        assertEquals(SEP + SEP + "server." + SEP + "a" + SEP + "b" + SEP + 
"c.txt", FilenameUtils.normalize("\\\\server.\\a\\b\\c.txt"));
+
+        assertEquals(null, 
FilenameUtils.normalize("\\\\-server\\a\\b\\c.txt"));
+        assertEquals(null, FilenameUtils.normalize("\\\\.\\a\\b\\c.txt"));
+        assertEquals(null, FilenameUtils.normalize("\\\\..\\a\\b\\c.txt"));
     }
 
     @Test
@@ -560,6 +569,15 @@ public class FilenameUtilsTestCase {
         assertEquals(1, FilenameUtils.getPrefixLength("/:foo"));
         assertEquals(1, FilenameUtils.getPrefixLength("/:/"));
         assertEquals(1, FilenameUtils.getPrefixLength("/:::::::.txt"));
+
+        assertEquals(12, 
FilenameUtils.getPrefixLength("\\\\127.0.0.1\\a\\b\\c.txt"));
+        assertEquals(6, FilenameUtils.getPrefixLength("\\\\::1\\a\\b\\c.txt"));
+        assertEquals(21, 
FilenameUtils.getPrefixLength("\\\\server.example.org\\a\\b\\c.txt"));
+        assertEquals(10, 
FilenameUtils.getPrefixLength("\\\\server.\\a\\b\\c.txt"));
+
+        assertEquals(-1, 
FilenameUtils.getPrefixLength("\\\\-server\\a\\b\\c.txt"));
+        assertEquals(-1, FilenameUtils.getPrefixLength("\\\\.\\a\\b\\c.txt"));
+        assertEquals(-1, FilenameUtils.getPrefixLength("\\\\..\\a\\b\\c.txt"));
     }
 
     @Test
++++++ apache-commons-io-build.xml ++++++
<?xml version="1.0" encoding="UTF-8"?>

<project name="commons-io" default="package" basedir=".">

  <!-- ====================================================================== 
-->
  <!-- Build environment properties                                           
-->
  <!-- ====================================================================== 
-->

  <property file="maven-build.properties"/>

  <property name="project.groupId" value="commons-io"/>
  <property name="project.artifactId" value="commons-io"/>
  <property name="project.version" value="2.6"/>
  <property name="project.name" value="Apache Commons IO"/>
  <property name="project.description" value="The Apache Commons IO library 
contains utility classes, stream implementations, file filters, 
file comparators, endian transformation classes, and much more."/>
  <property name="project.organization.name" value="The Apache Software 
Foundation"/>
  
  <property name="bundle.symbolicName" value="org.apache.commons.io"/>
  <property name="bundle.version" value="${project.version}.0"/>

  <property name="compiler.source" value="1.7"/>
  <property name="compiler.target" value="${compiler.source}"/>

  <property name="build.finalName" 
value="${project.artifactId}-${project.version}"/>
  <property name="build.dir" value="target"/>
  <property name="build.outputDir" value="${build.dir}/classes"/>
  <property name="build.srcDir" value="src/main/java"/>
  <property name="build.resourceDir.0" value="src/main/resources"/>
  <property name="build.resourceDir.1" value="."/>
  <property name="build.testOutputDir" value="${build.dir}/test-classes"/>
  <property name="build.testDir" value="src/test/java"/>
  <property name="build.testResourceDir.0" value="src/test/resources"/>
  <property name="build.testResourceDir.1" value="."/>
  <property name="test.reports" value="${build.dir}/test-reports"/>
  <property name="reporting.outputDirectory" value="${build.dir}/site"/>

  <!-- ====================================================================== 
-->
  <!-- Defining classpaths                                                    
-->
  <!-- ====================================================================== 
-->

  <path id="build.classpath"/>
  <path id="build.test.classpath"/>

  <!-- ====================================================================== 
-->
  <!-- Cleaning up target                                                     
-->
  <!-- ====================================================================== 
-->

  <target name="clean" description="Clean the output directory">
    <delete dir="${build.dir}"/>
  </target>

  <!-- ====================================================================== 
-->
  <!-- Compilation target                                                     
-->
  <!-- ====================================================================== 
-->

  <target name="compile" description="Compile the code">
    <mkdir dir="${build.outputDir}"/>
    <javac destdir="${build.outputDir}"
           encoding="iso-8859-1"
           nowarn="false"
           debug="true"
           optimize="false"
           deprecation="true"
           target="${compiler.target}"
           verbose="false"
           fork="false"
           source="${compiler.source}">
      <src>
        <pathelement location="${build.srcDir}"/>
      </src>
      <classpath refid="build.classpath"/>
    </javac>
    <mkdir dir="${build.outputDir}/META-INF"/>
    <copy todir="${build.outputDir}/META-INF">
      <fileset dir="${build.resourceDir.1}">
        <include name="NOTICE.txt"/>
        <include name="LICENSE.txt"/>
      </fileset>
    </copy>
  </target>

  <!-- ====================================================================== 
-->
  <!-- Test-compilation target                                                
-->
  <!-- ====================================================================== 
-->

  <target name="compile-tests"
          depends="compile"
          description="Compile the test code"
          unless="test.skip">
    <mkdir dir="${build.testOutputDir}"/>
    <javac destdir="${build.testOutputDir}"
           encoding="iso-8859-1"
           nowarn="false"
           debug="true"
           optimize="false"
           deprecation="true"
           target="${compiler.target}"
           verbose="false"
           fork="false"
           source="${compiler.source}">
      <src>
        <pathelement location="${build.testDir}"/>
      </src>
      <classpath>
        <path refid="build.test.classpath"/>
        <pathelement location="${build.outputDir}"/>
      </classpath>
    </javac>
    <copy todir="${build.testOutputDir}">
      <fileset dir="${build.testResourceDir.0}"/>
    </copy>
    <mkdir dir="${build.testOutputDir}/META-INF"/>
    <copy todir="${build.testOutputDir}/META-INF">
      <fileset dir="${build.testResourceDir.1}">
        <include name="NOTICE.txt"/>
        <include name="LICENSE.txt"/>
      </fileset>
    </copy>
  </target>

  <!-- ====================================================================== 
-->
  <!-- Run all tests                                                          
-->
  <!-- ====================================================================== 
-->

  <target name="test"
          depends="compile-tests, junit-missing"
          unless="junit.skipped"
          description="Run the test cases">
    <mkdir dir="${test.reports}"/>
    <junit printSummary="yes" haltonerror="true" haltonfailure="true" 
fork="true" dir=".">
      <sysproperty key="basedir" value="."/>
      <formatter type="xml"/>
      <formatter type="plain" usefile="false"/>
      <classpath>
        <path refid="build.test.classpath"/>
        <pathelement location="${build.outputDir}"/>
        <pathelement location="${build.testOutputDir}"/>
      </classpath>
      <batchtest todir="${test.reports}" unless="test">
        <fileset dir="${build.testDir}">
          <include name="**/*Test*.java"/>
          <exclude name="**/*Abstract*TestCase*"/>
          <exclude name="**/testtools/**"/>
        </fileset>
      </batchtest>
      <batchtest todir="${test.reports}" if="test">
        <fileset dir="${build.testDir}">
          <include name="**/${test}.java"/>
          <exclude name="**/*Abstract*TestCase*"/>
          <exclude name="**/testtools/**"/>
        </fileset>
      </batchtest>
    </junit>
  </target>

  <target name="test-junit-present">
    <available classname="junit.framework.Test" property="junit.present" 
classpathref="build.test.classpath"/>
  </target>

  <target name="test-junit-status"
          depends="test-junit-present">
    <condition property="junit.missing">
      <and>
        <isfalse value="${junit.present}"/>
        <isfalse value="${test.skip}"/>
      </and>
    </condition>
    <condition property="junit.skipped">
      <or>
        <isfalse value="${junit.present}"/>
        <istrue value="${test.skip}"/>
      </or>
    </condition>
  </target>

  <target name="junit-missing"
          depends="test-junit-status"
          if="junit.missing">
    <echo>=================================== WARNING 
===================================</echo>
    <echo> JUnit is not present in the test classpath or your $ANT_HOME/lib 
directory. Tests not executed.</echo>
    
<echo>===============================================================================</echo>
  </target>

  <!-- ====================================================================== 
-->
  <!-- Javadoc target                                                         
-->
  <!-- ====================================================================== 
-->

  <target name="javadoc" description="Generates the Javadoc of the application">
    <javadoc sourcepath="${build.srcDir}"
             packagenames="*"
             destdir="${reporting.outputDirectory}/apidocs"
             access="protected"
             verbose="false"
             encoding="iso-8859-1"
             version="true"
             use="true"
             author="true"
             splitindex="false"
             nodeprecated="false"
             nodeprecatedlist="false"
             notree="false"
             noindex="false"
             nohelp="false"
             nonavbar="false"
             serialwarn="false"
             source="${compiler.source}"
             linksource="true"
             breakiterator="false">
    </javadoc>
  </target>

  <!-- ====================================================================== 
-->
  <!-- Package target                                                         
-->
  <!-- ====================================================================== 
-->

  <target name="package" depends="compile,test" description="Package the 
application">
    <jar jarfile="${build.dir}/${build.finalName}.jar"
         compress="true"
         index="false"
         basedir="${build.outputDir}"
         excludes="**/package.html">
      <manifest>
        <attribute name="Automatic-Module-Name" value="${bundle.symbolicName}"/>
        <attribute name="Bundle-Description" value="${project.description}"/>
        <attribute name="Bundle-DocURL" 
value="http://commons.apache.org/proper/commons-io/"/>
        <attribute name="Bundle-License" 
value="https://www.apache.org/licenses/LICENSE-2.0.txt"/>
        <attribute name="Bundle-ManifestVersion" value="2"/>
        <attribute name="Bundle-Name" value="${project.name}"/>
        <attribute name="Bundle-SymbolicName" value="${bundle.symbolicName}"/>
        <attribute name="Bundle-Vendor" value="${project.organization.name}"/>
        <attribute name="Bundle-Version" value="${bundle.version}"/>
        <attribute name="Export-Package" 
value="org.apache.commons.io;version=&quot;1.4.9999&quot;,org.apache.commons.io.comparator;version=&quot;1.4.9999&quot;,org.apache.commons.io.filefilter;version=&quot;1.4.9999&quot;,org.apache.commons.io.input;version=&quot;1.4.9999&quot;,org.apache.commons.io.output;version=&quot;1.4.9999&quot;,org.apache.commons.io.monitor;version=&quot;${project.version}&quot;,org.apache.commons.io.serialization;version=&quot;${project.version}&quot;,org.apache.commons.io;version=&quot;${project.version}&quot;,org.apache.commons.io.comparator;version=&quot;${project.version}&quot;,org.apache.commons.io.filefilter;version=&quot;${project.version}&quot;,org.apache.commons.io.input;version=&quot;${project.version}&quot;,org.apache.commons.io.output;version=&quot;${project.version}&quot;"/>
        <attribute name="Include-Resource" 
value="META-INF/NOTICE.txt=NOTICE.txt,META-INF/LICENSE.txt=LICENSE.txt"/>
        <attribute name="JavaPackages-ArtifactId" 
value="${project.artifactId}"/>
        <attribute name="JavaPackages-GroupId" value="${project.groupId}"/>
        <attribute name="JavaPackages-Version" value="${project.version}"/>
        <attribute name="Require-Capability" 
value="osgi.ee;filter:=&quot;(&amp;(osgi.ee=JavaSE)(version=${compiler.target}))&quot;"/>
      </manifest>
    </jar>
  </target>

  <!-- ====================================================================== 
-->
  <!-- A dummy target for the package named after the type it creates         
-->
  <!-- ====================================================================== 
-->

  <target name="jar" depends="package" description="Builds the jar for the 
application"/>

</project>

Reply via email to