You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@netbeans.apache.org by ma...@apache.org on 2018/06/17 17:54:31 UTC

[incubator-netbeans] branch release90 updated (fc01343 -> ea59d3e)

This is an automated email from the ASF dual-hosted git repository.

matthiasblaesing pushed a change to branch release90
in repository https://gitbox.apache.org/repos/asf/incubator-netbeans.git.


    from fc01343  Adds Apache feather and hyperlink in Start Page
     new b19ee55  [NETBEANS-837] Update winp to released 1.26 version and fix license
     new 64c30fd  [NETBEANS-844] Use released version of maven-indexer 6.0.0
     new f64da9b  [NETBEANS-824] Correct license for BIndex
     new a7cb8e7  [NETBEANS-846] Add notice file for Spring libraries
     new 786df5a  [NETBEANS-848] Update license info for testng
     new ea59d3e  Merge branch 'licenses_backport' into release90

The 6 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 apisupport.harness/external/bindex-2.2-license.txt |   27 +-
 apisupport.harness/external/bindex-2.2-notice.txt  |    7 +
 extexecution.process/build.xml                     |   43 -
 extexecution.process/external/binaries-list        |    2 +-
 ...4-patched-license.txt => winp-1.26-license.txt} |   21 +-
 extexecution.process/external/winp.patch           |   31 -
 extexecution.process/nbproject/project.properties  |    2 +-
 extexecution.process/nbproject/project.xml         |    4 +-
 .../spring-framework-3.2.7.RELEASE-notice.txt      |    2 +
 .../spring-framework-4.0.1.RELEASE-notice.txt      |    2 +
 libs.testng/external/testng-6.8.1-dist-license.txt |   35 +-
 libs.testng/external/testng-6.8.1-dist-notice.txt  |    4 +
 maven.indexer/build.xml                            |   18 -
 .../external/NOTICE-patched-indexer-core-6.0.0     |    6 -
 maven.indexer/external/binaries-list               |   10 +-
 ...-license.txt => indexer-core-6.0.0-license.txt} |    2 +-
 .../external/indexer-core-6.0.0-notice.txt         |    5 +
 ...-5.5.3-license.txt => lucene-5.5.5-license.txt} |    4 +-
 ...ne-5.5.3-notice.txt => lucene-5.5.5-notice.txt} |    0
 maven.indexer/external/mvn-indexer.patch           | 1617 --------------------
 maven.indexer/nbproject/project.properties         |   10 +-
 maven.indexer/nbproject/project.xml                |   20 +-
 .../licenses/Apache-2.0+MIT+testng                 |   39 +-
 .../licenses/Apache-2.0+MIT-Bindex                 |   30 +-
 .../licenses/MIT-winp                              |   20 +-
 25 files changed, 179 insertions(+), 1782 deletions(-)
 create mode 100644 apisupport.harness/external/bindex-2.2-notice.txt
 copy extexecution.process/external/{winp-1.14-patched-license.txt => winp-1.26-license.txt} (76%)
 delete mode 100644 extexecution.process/external/winp.patch
 create mode 100644 libs.springframework/external/spring-framework-3.2.7.RELEASE-notice.txt
 create mode 100644 libs.springframework/external/spring-framework-4.0.1.RELEASE-notice.txt
 create mode 100644 libs.testng/external/testng-6.8.1-dist-notice.txt
 delete mode 100644 maven.indexer/external/NOTICE-patched-indexer-core-6.0.0
 rename maven.indexer/external/{indexer-core-6.0-SNAPSHOT-patched-license.txt => indexer-core-6.0.0-license.txt} (99%)
 create mode 100644 maven.indexer/external/indexer-core-6.0.0-notice.txt
 rename maven.indexer/external/{lucene-5.5.3-license.txt => lucene-5.5.5-license.txt} (98%)
 rename maven.indexer/external/{lucene-5.5.3-notice.txt => lucene-5.5.5-notice.txt} (100%)
 delete mode 100644 maven.indexer/external/mvn-indexer.patch
 copy libs.testng/external/testng-6.8.1-dist-license.txt => nbbuild/licenses/Apache-2.0+MIT+testng (89%)
 copy apisupport.harness/external/bindex-2.2-license.txt => nbbuild/licenses/Apache-2.0+MIT-Bindex (90%)
 rename extexecution.process/external/winp-1.14-patched-license.txt => nbbuild/licenses/MIT-winp (73%)

-- 
To stop receiving notification emails like this one, please contact
matthiasblaesing@apache.org.

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@netbeans.apache.org
For additional commands, e-mail: commits-help@netbeans.apache.org

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists


[incubator-netbeans] 01/06: [NETBEANS-837] Update winp to released 1.26 version and fix license

Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

matthiasblaesing pushed a commit to branch release90
in repository https://gitbox.apache.org/repos/asf/incubator-netbeans.git

commit b19ee550c26caf0127f973caec27219de2993cce
Author: Matthias Bläsing <mb...@doppel-helix.eu>
AuthorDate: Thu Jun 14 20:58:52 2018 +0200

    [NETBEANS-837] Update winp to released 1.26 version and fix license
    
    winp is actively developed at: https://github.com/kohsuke/winp
    
    The code in recent versions of winp looks very similar to the state after the
    patching. The API is stable (checked with ``japi-compliance-checker``), so
    the upgrade should be save.
    
    Part of the license problem that the license integration code is not prepared
    for files showing up at build time (winp was build from source) and not coming
    from the normal download route.
---
 extexecution.process/build.xml                     | 43 ----------------------
 extexecution.process/external/binaries-list        |  2 +-
 ...4-patched-license.txt => winp-1.26-license.txt} | 21 +++++------
 extexecution.process/external/winp.patch           | 31 ----------------
 extexecution.process/nbproject/project.properties  |  2 +-
 extexecution.process/nbproject/project.xml         |  4 +-
 .../licenses/MIT-winp                              | 20 +++-------
 7 files changed, 20 insertions(+), 103 deletions(-)

diff --git a/extexecution.process/build.xml b/extexecution.process/build.xml
index cd40819..f13ec34 100644
--- a/extexecution.process/build.xml
+++ b/extexecution.process/build.xml
@@ -22,47 +22,4 @@
 <project basedir="." default="build" name="extexecution.process">
     <description>Builds, tests, and runs the project org.netbeans.modules.extexecution.process</description>
     <import file="../nbbuild/templates/projectized.xml"/>
-
-    <!-- A task to check if the binary 'external/winp-1.14-patched.jar exists -->
-    <target name="-check-requires-patching-maven-sources">
-        <available file="external/winp-1.14-patched.jar" property="sources-already-patched" />
-    </target>
-
-    <!-- 
-         '-javac-init' task is invoked after maven sources have been downloaded 
-         to 'external/winp-1.14-sources.jar'
-         (see external/binaries-list).
-         Then if 'external/winp-1.14-patched.jar does NOT exist...
-    -->
-    <target name="-prepare-patched-binary" depends="-check-requires-patching-maven-sources" unless="sources-already-patched">
-        <echo message="Patching winp-1.14-sources.jar for Netbeans..." />
-        <taskdef name="patchfile" classname="org.netbeans.nbbuild.extlibs.PatchFile" classpath="${nbantext.jar}"/>
-        <!-- ... 1. Prepares a 'build/external-patch/[sources|classes]' working directories -->
-        <delete dir="build/external-patch" />
-        <mkdir dir="build/external-patch/sources" />
-        <!-- ... 2. Unzips maven sources -->
-        <unzip src="external/winp-1.14-sources.jar" dest="build/external-patch/sources" />
-        <!-- ... 3. Applies patch 'external/winp-1.14-netbeans.patch -->
-        <patchfile dir="build/external-patch/sources"
-            patchfile="external/winp.patch" />
-        <!-- ... 4. Compiles sources to build/external-patch/classes -->
-        <mkdir dir="build/external-patch/classes" />
-        <javac srcdir="build/external-patch/sources"
-            destdir="build/external-patch/classes" >
-            <exclude name="org/apache/xml/resolver/tests/**" />
-        </javac>
-        <!-- ... 4.1. Copy DLLs in sources to classes -->
-        <copy todir="build/external-patch/classes">
-            <fileset dir="build/external-patch/sources">
-                <include name="**/**.dll" />
-            </fileset>
-        </copy>
-        <!-- ... 5. Creates a jar in 'external/winp-1.14-patched.jar' -->
-        <jar destfile="external/winp-1.14-patched.jar">
-            <fileset dir="build/external-patch/classes" />
-        </jar>
-    </target>
-
-    <!-- Hook into harness "-javac-init" task -->
-    <target name="-javac-init" depends="-prepare-patched-binary, projectized-common.-javac-init" />
 </project>
diff --git a/extexecution.process/external/binaries-list b/extexecution.process/external/binaries-list
index 2cc34cd..8337bc6 100644
--- a/extexecution.process/external/binaries-list
+++ b/extexecution.process/external/binaries-list
@@ -15,7 +15,7 @@
 # specific language governing permissions and limitations
 # under the License.
 #
-40E6E127818C371375F8E8D42BBEAF613BDA63A2 org.jvnet.winp:winp:1.14:sources
+4E84CDA13657513FAE498C45D77075B38CF6EE21 org.jvnet.winp:winp:1.26
 2E07375E5CA3A452472F0E87FB33F243F7A5C08C org.jvnet.libpam4j:libpam4j:1.1
 # processtreekiller is not available in Maven, and its web page was hosted in Kenai, now extinct.
 6819C79348FCF4F5125C834E7D3B742582DCA34D processtreekiller-1.0.7.jar
diff --git a/extexecution.process/external/winp-1.14-patched-license.txt b/extexecution.process/external/winp-1.26-license.txt
similarity index 76%
copy from extexecution.process/external/winp-1.14-patched-license.txt
copy to extexecution.process/external/winp-1.26-license.txt
index e686e17..a54ca6d 100644
--- a/extexecution.process/external/winp-1.14-patched-license.txt
+++ b/extexecution.process/external/winp-1.26-license.txt
@@ -1,14 +1,13 @@
 Name: winp
-Version: 1.14
-License: MIT
-Origin: https://winp.dev.java.net
-Source: https://winp.dev.java.net
+Version: 1.26
+License: MIT-winp
+Origin: https://github.com/kohsuke/winp
+Source: https://github.com/kohsuke/winp
 Description: Library allowing to control windows processes.
-Files: winp-1.14-sources.jar
 
-The MIT License
+MIT License
 
-Copyright (c) __YEARS__, __NAMES__
+Copyright (c) 2008-, Kohsuke Kawaguchi, Sun Microsystems, Inc., and a number of other of contributors
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
@@ -17,13 +16,13 @@ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 copies of the Software, and to permit persons to whom the Software is
 furnished to do so, subject to the following conditions:
 
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
 
 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/extexecution.process/external/winp.patch b/extexecution.process/external/winp.patch
deleted file mode 100644
index c6669bb..0000000
--- a/extexecution.process/external/winp.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-# 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.
-diff -ruN org/jvnet/winp/Native.java patched-org/jvnet/winp/Native.java
---- org/jvnet/winp/Native.java	2009-11-10 10:30:26.000000000 +0100
-+++ patched-org/jvnet/winp/Native.java	2017-10-22 07:11:19.462328071 +0200
-@@ -73,8 +73,9 @@
-                         filePortion = filePortion.substring(2);
-                     filePortion = URLDecoder.decode(filePortion);
-                     String preferred = System.getProperty(DLL_TARGET);
--                    File jarFile = new File(preferred != null ? preferred : filePortion);
--                    File dllFile = new File(jarFile.getParentFile(),dllName+".dll");
-+                    File jarFile = new File(filePortion);
-+                    File dllFile = new File(preferred != null
-+                            ? new File(preferred) : jarFile.getParentFile(),dllName+".dll");
-                     if(!dllFile.exists() || jarFile.lastModified()>dllFile.lastModified()) {
-                         // try to extract from within the jar
-                         try {
diff --git a/extexecution.process/nbproject/project.properties b/extexecution.process/nbproject/project.properties
index c05a340..2295b3d 100644
--- a/extexecution.process/nbproject/project.properties
+++ b/extexecution.process/nbproject/project.properties
@@ -17,6 +17,6 @@
 is.autoload=true
 javac.source=1.7
 javac.compilerargs=-Xlint -Xlint:-serial
-release.external/winp-1.14-patched.jar=modules/ext/winp-1.14-patched.jar
+release.external/winp-1.26.jar=modules/ext/winp-1.26.jar
 release.external/libpam4j-1.1.jar=modules/ext/libpam4j-1.1.jar
 release.external/processtreekiller-1.0.7.jar=modules/ext/processtreekiller-1.0.7.jar
diff --git a/extexecution.process/nbproject/project.xml b/extexecution.process/nbproject/project.xml
index cc1b41d..81c88cf 100644
--- a/extexecution.process/nbproject/project.xml
+++ b/extexecution.process/nbproject/project.xml
@@ -68,8 +68,8 @@
             </module-dependencies>
             <public-packages/>
             <class-path-extension>
-                <runtime-relative-path>ext/winp-1.14-patched.jar</runtime-relative-path>
-                <binary-origin>external/winp-1.14-patched.jar</binary-origin>
+                <runtime-relative-path>ext/winp-1.26.jar</runtime-relative-path>
+                <binary-origin>external/winp-1.26.jar</binary-origin>
             </class-path-extension>
             <class-path-extension>
                 <runtime-relative-path>ext/libpam4j-1.1.jar</runtime-relative-path>
diff --git a/extexecution.process/external/winp-1.14-patched-license.txt b/nbbuild/licenses/MIT-winp
similarity index 73%
rename from extexecution.process/external/winp-1.14-patched-license.txt
rename to nbbuild/licenses/MIT-winp
index e686e17..8ae0b3f 100644
--- a/extexecution.process/external/winp-1.14-patched-license.txt
+++ b/nbbuild/licenses/MIT-winp
@@ -1,14 +1,6 @@
-Name: winp
-Version: 1.14
-License: MIT
-Origin: https://winp.dev.java.net
-Source: https://winp.dev.java.net
-Description: Library allowing to control windows processes.
-Files: winp-1.14-sources.jar
+MIT License
 
-The MIT License
-
-Copyright (c) __YEARS__, __NAMES__
+Copyright (c) 2008-, Kohsuke Kawaguchi, Sun Microsystems, Inc., and a number of other of contributors
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
@@ -17,13 +9,13 @@ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 copies of the Software, and to permit persons to whom the Software is
 furnished to do so, subject to the following conditions:
 
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
 
 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
\ No newline at end of file

-- 
To stop receiving notification emails like this one, please contact
matthiasblaesing@apache.org.

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@netbeans.apache.org
For additional commands, e-mail: commits-help@netbeans.apache.org

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists


[incubator-netbeans] 04/06: [NETBEANS-846] Add notice file for Spring libraries

Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

matthiasblaesing pushed a commit to branch release90
in repository https://gitbox.apache.org/repos/asf/incubator-netbeans.git

commit a7cb8e7be3815ab122ffcd1beecaf3f61d7ae351
Author: Matthias Bläsing <mb...@doppel-helix.eu>
AuthorDate: Thu Jun 14 19:59:58 2018 +0200

    [NETBEANS-846] Add notice file for Spring libraries
---
 libs.springframework/external/spring-framework-3.2.7.RELEASE-notice.txt | 2 ++
 libs.springframework/external/spring-framework-4.0.1.RELEASE-notice.txt | 2 ++
 2 files changed, 4 insertions(+)

diff --git a/libs.springframework/external/spring-framework-3.2.7.RELEASE-notice.txt b/libs.springframework/external/spring-framework-3.2.7.RELEASE-notice.txt
new file mode 100644
index 0000000..9823622
--- /dev/null
+++ b/libs.springframework/external/spring-framework-3.2.7.RELEASE-notice.txt
@@ -0,0 +1,2 @@
+Spring Framework 3.2.7.RELEASE
+Copyright (c) 2002-2014 Pivotal, Inc.
\ No newline at end of file
diff --git a/libs.springframework/external/spring-framework-4.0.1.RELEASE-notice.txt b/libs.springframework/external/spring-framework-4.0.1.RELEASE-notice.txt
new file mode 100644
index 0000000..f4a1589
--- /dev/null
+++ b/libs.springframework/external/spring-framework-4.0.1.RELEASE-notice.txt
@@ -0,0 +1,2 @@
+Spring Framework 4.0.1.RELEASE
+Copyright (c) 2002-2014 Pivotal, Inc.
\ No newline at end of file

-- 
To stop receiving notification emails like this one, please contact
matthiasblaesing@apache.org.

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@netbeans.apache.org
For additional commands, e-mail: commits-help@netbeans.apache.org

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists


[incubator-netbeans] 02/06: [NETBEANS-844] Use released version of maven-indexer 6.0.0

Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

matthiasblaesing pushed a commit to branch release90
in repository https://gitbox.apache.org/repos/asf/incubator-netbeans.git

commit 64c30fd617cef1b9f55d29da96dec0424c10fc9f
Author: Matthias Bläsing <mb...@doppel-helix.eu>
AuthorDate: Wed Jun 13 22:45:09 2018 +0200

    [NETBEANS-844] Use released version of maven-indexer 6.0.0
    
    The patches, that were applied to the snapshot of the 6.0.0 branch,
    seem to be have been integrated into the released version 6.0.0 of
    maven indexer.
    
    The lucene dependency of maven-indexer was moved to 5.5.5 in the 6.0.0
    release, so the dependencies are also adjusted here.
    
    The changeset was tested by running the unittests and multiple
    reindex runs on the local m2 repository of the author. In addition parts
    of the patch were manually checked against the released version and
    found to be applied.
---
 maven.indexer/build.xml                            |   18 -
 .../external/NOTICE-patched-indexer-core-6.0.0     |    6 -
 maven.indexer/external/binaries-list               |   10 +-
 ...-license.txt => indexer-core-6.0.0-license.txt} |    2 +-
 .../external/indexer-core-6.0.0-notice.txt         |    5 +
 ...-5.5.3-license.txt => lucene-5.5.5-license.txt} |    4 +-
 ...ne-5.5.3-notice.txt => lucene-5.5.5-notice.txt} |    0
 maven.indexer/external/mvn-indexer.patch           | 1617 --------------------
 maven.indexer/nbproject/project.properties         |   10 +-
 maven.indexer/nbproject/project.xml                |   20 +-
 10 files changed, 28 insertions(+), 1664 deletions(-)

diff --git a/maven.indexer/build.xml b/maven.indexer/build.xml
index 33cae5e..84a2d37 100644
--- a/maven.indexer/build.xml
+++ b/maven.indexer/build.xml
@@ -23,22 +23,4 @@
 <project basedir="." default="build" name="maven.indexer">
     <description>Builds, tests, and runs the project org.netbeans.modules.maven.indexer2</description>
     <import file="../nbbuild/templates/projectized.xml"/>
-        
-    <condition property="indexer.file.notfound">
-        <not>
-            <!-- make sure notice-patched is added to indexer-core only once -->
-            <available file="external/indexer-core-6.0-SNAPSHOT-patched.jar"/>
-        </not>
-    </condition>    
-    
-    <target name="maven-indexer-notice" depends="projectized-common.-release.files" if="indexer.file.notfound">
-        <jar destfile="external/indexer-core-6.0-SNAPSHOT-patched.jar" update="true">            
-            <mappedresources>
-                <fileset file="external/NOTICE-patched-indexer-core-5.1.1"/>
-                <globmapper from="NOTICE-patched-indexer-core-6.0-SNAPSHOT" to="META-INF/NOTICE-patched"/>
-            </mappedresources>
-        </jar>
-    </target>    
-    
-    <target name="netbeans-extra" depends="maven-indexer-notice"/>
 </project>
diff --git a/maven.indexer/external/NOTICE-patched-indexer-core-6.0.0 b/maven.indexer/external/NOTICE-patched-indexer-core-6.0.0
deleted file mode 100644
index 58c6bf0..0000000
--- a/maven.indexer/external/NOTICE-patched-indexer-core-6.0.0
+++ /dev/null
@@ -1,6 +0,0 @@
-Patched indexer-core-6.0.0-SNAPSHOT.jar
-=======================================
-
-Contents of original indexer-core-6.0.0-SNAPSHOT.jar changed by Oracle.
-Patch url:             http://hg.netbeans.org/main-golden/file/tip/maven.indexer/external/mvn-indexer.patch
-maven-indexer sources: https://github.com/apache/maven-indexer #a7aeb9f2fe34e6c9f52
\ No newline at end of file
diff --git a/maven.indexer/external/binaries-list b/maven.indexer/external/binaries-list
index 0527a4b..a2474f6 100644
--- a/maven.indexer/external/binaries-list
+++ b/maven.indexer/external/binaries-list
@@ -14,9 +14,9 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
-627EC612B8D50EE42C2D0F13DF5476E26D696634 indexer-core-6.0-SNAPSHOT-patched.jar
-20540C6347259F35A0D264605B22CE2A13917066 org.apache.lucene:lucene-core:5.5.3
-D276E74D57C64ED5F9A09A48DA05B75555E8709A org.apache.lucene:lucene-highlighter:5.5.3
-E2452203D2C44CAC5AC42B34E5DCC0A44BF29A53 org.apache.lucene:lucene-queryparser:5.5.3
-CF734AB72813AF33DC1544CE61ABC5C17B9D35E9 org.apache.lucene:lucene-analyzers-common:5.5.3
+677D6A3009E8619D39E3F8BDB39352DD7CA7D155 org.apache.maven.indexer:indexer-core:6.0.0
+C34BCD9274859DC07CFED2A935AACA90C4F4B861 org.apache.lucene:lucene-core:5.5.5
+65642FBAD8D42403B679438B22A493EE114D8DE5 org.apache.lucene:lucene-highlighter:5.5.5
+6C965EB5838A2BA58B0DE0FD860A420DCDA11937 org.apache.lucene:lucene-queryparser:5.5.5
+E6B3F5D1B33ED24DA7EEF0A72F8062BD4652700C org.apache.lucene:lucene-analyzers-common:5.5.5
 479C1E06DB31C432330183F5CAE684163F186146 javax.annotation:javax.annotation-api:1.2
diff --git a/maven.indexer/external/indexer-core-6.0-SNAPSHOT-patched-license.txt b/maven.indexer/external/indexer-core-6.0.0-license.txt
similarity index 99%
rename from maven.indexer/external/indexer-core-6.0-SNAPSHOT-patched-license.txt
rename to maven.indexer/external/indexer-core-6.0.0-license.txt
index e26c1ee..5213744 100644
--- a/maven.indexer/external/indexer-core-6.0-SNAPSHOT-patched-license.txt
+++ b/maven.indexer/external/indexer-core-6.0.0-license.txt
@@ -1,6 +1,6 @@
 Name: Maven Indexer
 Description: Maven remote repository indexing engine.
-Version: 6.0-SNAPSHOT-patched
+Version: 6.0.0
 Origin: Apache Software Foundation
 License: Apache-2.0
 URL: http://repo1.maven.org/maven2/org/apache/maven/indexer/
diff --git a/maven.indexer/external/indexer-core-6.0.0-notice.txt b/maven.indexer/external/indexer-core-6.0.0-notice.txt
new file mode 100644
index 0000000..04c2039
--- /dev/null
+++ b/maven.indexer/external/indexer-core-6.0.0-notice.txt
@@ -0,0 +1,5 @@
+Maven :: Indexer Core
+Copyright 2002-2017 The Apache Software Foundation
+
+This product includes software developed at
+The Apache Software Foundation (http://www.apache.org/).
diff --git a/maven.indexer/external/lucene-5.5.3-license.txt b/maven.indexer/external/lucene-5.5.5-license.txt
similarity index 98%
rename from maven.indexer/external/lucene-5.5.3-license.txt
rename to maven.indexer/external/lucene-5.5.5-license.txt
index 3b0068c..52802f7 100644
--- a/maven.indexer/external/lucene-5.5.3-license.txt
+++ b/maven.indexer/external/lucene-5.5.5-license.txt
@@ -1,11 +1,11 @@
 Name: Apache Lucene
 Description: Java-based indexing and search technology
-Version: 5.5.3
+Version: 5.5.5
 Origin: Apache Software Foundation
 License: Apache-2.0
 URL: http://lucene.apache.org/
 Source: http://svn.apache.org/repos/asf/lucene/java/trunk
-Files: lucene-analyzers-common-5.5.3.jar lucene-core-5.5.3.jar lucene-highlighter-5.5.3.jar lucene-queryparser-5.5.3.jar
+Files: lucene-analyzers-common-5.5.5.jar lucene-core-5.5.5.jar lucene-highlighter-5.5.5.jar lucene-queryparser-5.5.5.jar
 
                                  Apache License
                            Version 2.0, January 2004
diff --git a/maven.indexer/external/lucene-5.5.3-notice.txt b/maven.indexer/external/lucene-5.5.5-notice.txt
similarity index 100%
rename from maven.indexer/external/lucene-5.5.3-notice.txt
rename to maven.indexer/external/lucene-5.5.5-notice.txt
diff --git a/maven.indexer/external/mvn-indexer.patch b/maven.indexer/external/mvn-indexer.patch
deleted file mode 100644
index d9591d5..0000000
--- a/maven.indexer/external/mvn-indexer.patch
+++ /dev/null
@@ -1,1617 +0,0 @@
-/*
- * 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.
- */
-diff --git a/indexer-cli/src/main/java/org/apache/maven/index/cli/NexusIndexerCli.java b/indexer-cli/src/main/java/org/apache/maven/index/cli/NexusIndexerCli.java
-index 9f33f67..e57a2a7 100644
---- a/indexer-cli/src/main/java/org/apache/maven/index/cli/NexusIndexerCli.java
-+++ b/indexer-cli/src/main/java/org/apache/maven/index/cli/NexusIndexerCli.java
-@@ -418,7 +418,7 @@ public class NexusIndexerCli
-         final List<IndexCreator> indexers = getIndexers( cli, plexus );
- 
-         try (BufferedInputStream is = new BufferedInputStream( new FileInputStream( indexArchive ) ); //
--             FSDirectory directory = FSDirectory.open( outputFolder ))
-+             FSDirectory directory = FSDirectory.open( outputFolder.toPath() ))
-         {
-             DefaultIndexUpdater.unpackIndexData( is, directory, (IndexingContext) Proxy.newProxyInstance(
-                 getClass().getClassLoader(), new Class[] { IndexingContext.class }, new PartialImplementation()
-diff --git a/indexer-core/src/main/java/org/apache/maven/index/DefaultIteratorResultSet.java b/indexer-core/src/main/java/org/apache/maven/index/DefaultIteratorResultSet.java
-index 5abebc5..d8d7120 100644
---- a/indexer-core/src/main/java/org/apache/maven/index/DefaultIteratorResultSet.java
-+++ b/indexer-core/src/main/java/org/apache/maven/index/DefaultIteratorResultSet.java
-@@ -368,7 +368,6 @@ public class DefaultIteratorResultSet
-         
-         Analyzer analyzer = context.getAnalyzer();
-         TokenStream baseTokenStream = analyzer.tokenStream( field.getKey(), new StringReader( text ) );
--        baseTokenStream.reset();
-         
-         CachingTokenFilter tokenStream = new CachingTokenFilter(baseTokenStream);
- 
-@@ -389,9 +388,6 @@ public class DefaultIteratorResultSet
- 
-         List<String> bestFragments = getBestFragments( hr.getQuery(), formatter, tokenStream, text, 3 );
-         
--        tokenStream.end();
--        tokenStream.close();
--        
-         return bestFragments;
-     }
- 
-diff --git a/indexer-core/src/main/java/org/apache/maven/index/DefaultNexusIndexer.java b/indexer-core/src/main/java/org/apache/maven/index/DefaultNexusIndexer.java
-index 0d976a1..5453caa 100644
---- a/indexer-core/src/main/java/org/apache/maven/index/DefaultNexusIndexer.java
-+++ b/indexer-core/src/main/java/org/apache/maven/index/DefaultNexusIndexer.java
-@@ -279,7 +279,7 @@ public class DefaultNexusIndexer
-         IndexingContext tmpContext = null;
-         try
-         {
--            final FSDirectory directory = FSDirectory.open( tmpDir );
-+            final FSDirectory directory = FSDirectory.open( tmpDir.toPath() );
-             if ( update )
-             {
-                 IndexUtils.copyDirectory( context.getIndexDirectory(), directory );
-diff --git a/indexer-core/src/main/java/org/apache/maven/index/DefaultQueryCreator.java b/indexer-core/src/main/java/org/apache/maven/index/DefaultQueryCreator.java
-index b00cd96..f47bead 100644
---- a/indexer-core/src/main/java/org/apache/maven/index/DefaultQueryCreator.java
-+++ b/indexer-core/src/main/java/org/apache/maven/index/DefaultQueryCreator.java
-@@ -141,7 +141,7 @@ public class DefaultQueryCreator
-         }
-         else
-         {
--            QueryParser qp = new QueryParser( Version.LUCENE_46, field, new NexusAnalyzer() );
-+            QueryParser qp = new QueryParser( field, new NexusAnalyzer() );
- 
-             // small cheap trick
-             // if a query is not "expert" (does not contain field:val kind of expression)
-@@ -273,7 +273,7 @@ public class DefaultQueryCreator
-             {
-                 String qpQuery = query.toLowerCase().replaceAll( "\\.", " " ).replaceAll( "/", " " );
-                 // tokenization should happen against the field!
--                QueryParser qp = new QueryParser( Version.LUCENE_46, indexerField.getKey(), new NexusAnalyzer() );
-+                QueryParser qp = new QueryParser( indexerField.getKey(), new NexusAnalyzer() );
-                 qp.setDefaultOperator( Operator.AND );
-                 return qp.parse( qpQuery );
-             }
-@@ -306,7 +306,7 @@ public class DefaultQueryCreator
-                 String qpQuery = query;
- 
-                 // tokenization should happen against the field!
--                QueryParser qp = new QueryParser( Version.LUCENE_46, indexerField.getKey(), new NexusAnalyzer() );
-+                QueryParser qp = new QueryParser( indexerField.getKey(), new NexusAnalyzer() );
-                 qp.setDefaultOperator( Operator.AND );
- 
-                 // small cheap trick
-diff --git a/indexer-core/src/main/java/org/apache/maven/index/DefaultScannerListener.java b/indexer-core/src/main/java/org/apache/maven/index/DefaultScannerListener.java
-index 52b94ec..6da05f2 100644
---- a/indexer-core/src/main/java/org/apache/maven/index/DefaultScannerListener.java
-+++ b/indexer-core/src/main/java/org/apache/maven/index/DefaultScannerListener.java
-@@ -261,7 +261,7 @@ public class DefaultScannerListener
-         {
-             for ( String uinfo : uinfos )
-             {
--                TopScoreDocCollector collector = TopScoreDocCollector.create( 1, false );
-+                TopScoreDocCollector collector = TopScoreDocCollector.create( 1 );
- 
-                 indexSearcher.search( new TermQuery( new Term( ArtifactInfo.UINFO, uinfo ) ), collector );
- 
-@@ -318,4 +318,4 @@ public class DefaultScannerListener
-         result.setDeletedFiles( deleted );
-     }
- 
--}
-\ No newline at end of file
-+}
-diff --git a/indexer-core/src/main/java/org/apache/maven/index/DefaultSearchEngine.java b/indexer-core/src/main/java/org/apache/maven/index/DefaultSearchEngine.java
-index 841bf1c..4bef62b 100644
---- a/indexer-core/src/main/java/org/apache/maven/index/DefaultSearchEngine.java
-+++ b/indexer-core/src/main/java/org/apache/maven/index/DefaultSearchEngine.java
-@@ -330,7 +330,7 @@ public class DefaultSearchEngine
-         if ( AbstractSearchRequest.UNDEFINED != topHitCount )
-         {
-             // count is set, simply just execute it as-is
--            final TopScoreDocCollector hits = TopScoreDocCollector.create( topHitCount, true );
-+            final TopScoreDocCollector hits = TopScoreDocCollector.create( topHitCount );
- 
-             indexSearcher.search( query, hits );
- 
-@@ -342,7 +342,7 @@ public class DefaultSearchEngine
-             topHitCount = 1000;
- 
-             // perform search
--            TopScoreDocCollector hits = TopScoreDocCollector.create( topHitCount, true );
-+            TopScoreDocCollector hits = TopScoreDocCollector.create( topHitCount );
-             indexSearcher.search( query, hits );
- 
-             // check total hits against, does it fit?
-@@ -361,7 +361,7 @@ public class DefaultSearchEngine
-                 }
- 
-                 // redo all, but this time with correct numbers
--                hits = TopScoreDocCollector.create( topHitCount, true );
-+                hits = TopScoreDocCollector.create( topHitCount );
-                 indexSearcher.search( query, hits );
-             }
- 
-diff --git a/indexer-core/src/main/java/org/apache/maven/index/context/AbstractIndexingContext.java b/indexer-core/src/main/java/org/apache/maven/index/context/AbstractIndexingContext.java
-index 37ec5c1..c2e864d 100644
---- a/indexer-core/src/main/java/org/apache/maven/index/context/AbstractIndexingContext.java
-+++ b/indexer-core/src/main/java/org/apache/maven/index/context/AbstractIndexingContext.java
-@@ -28,7 +28,8 @@ public abstract class AbstractIndexingContext
-     {
-         try
-         {
--            return getIndexDirectory().fileExists( INDEX_UPDATER_PROPERTIES_FILE );
-+            getIndexDirectory().fileLength(INDEX_UPDATER_PROPERTIES_FILE);
-+            return true;
-         }
-         catch ( IOException e )
-         {
-diff --git a/indexer-core/src/main/java/org/apache/maven/index/context/DefaultIndexingContext.java b/indexer-core/src/main/java/org/apache/maven/index/context/DefaultIndexingContext.java
-index afae82b..07f907d 100644
---- a/indexer-core/src/main/java/org/apache/maven/index/context/DefaultIndexingContext.java
-+++ b/indexer-core/src/main/java/org/apache/maven/index/context/DefaultIndexingContext.java
-@@ -21,6 +21,11 @@ package org.apache.maven.index.context;
- 
- import java.io.File;
- import java.io.IOException;
-+import java.nio.channels.FileChannel;
-+import java.nio.channels.FileLock;
-+import java.nio.file.Files;
-+import java.nio.file.Path;
-+import java.nio.file.StandardOpenOption;
- import java.util.Arrays;
- import java.util.Collection;
- import java.util.Collections;
-@@ -45,6 +50,9 @@ import org.apache.lucene.search.TopDocs;
- import org.apache.lucene.search.TopScoreDocCollector;
- import org.apache.lucene.store.Directory;
- import org.apache.lucene.store.FSDirectory;
-+import org.apache.lucene.store.FSLockFactory;
-+import org.apache.lucene.store.Lock;
-+import org.apache.lucene.store.LockObtainFailedException;
- import org.apache.lucene.util.Bits;
- import org.apache.maven.index.ArtifactInfo;
- import org.apache.maven.index.artifact.GavCalculator;
-@@ -77,6 +85,8 @@ public class DefaultIndexingContext
- 
-     private Directory indexDirectory;
- 
-+    private TrackingLockFactory lockFactory;
-+
-     private File indexDirectoryFile;
- 
-     private String id;
-@@ -111,9 +121,11 @@ public class DefaultIndexingContext
-                                     File repository, //
-                                     String repositoryUrl, String indexUpdateUrl,
-                                     List<? extends IndexCreator> indexCreators, Directory indexDirectory,
-+                                    TrackingLockFactory lockFactory,
-                                     boolean reclaimIndex )
-         throws ExistingLuceneIndexMismatchException, IOException
-     {
-+
-         this.id = id;
- 
-         this.searchable = true;
-@@ -134,6 +146,8 @@ public class DefaultIndexingContext
- 
-         this.indexDirectory = indexDirectory;
- 
-+        this.lockFactory = lockFactory;
-+
-         // eh?
-         // Guice does NOT initialize these, and we have to do manually?
-         // While in Plexus, all is well, but when in guice-shim,
-@@ -150,16 +164,25 @@ public class DefaultIndexingContext
-         setIndexDirectoryFile( null );
-     }
- 
--    public DefaultIndexingContext( String id, String repositoryId, File repository, File indexDirectoryFile,
--                                   String repositoryUrl, String indexUpdateUrl,
-+    private DefaultIndexingContext( String id, String repositoryId, File repository, File indexDirectoryFile,
-+                                   TrackingLockFactory lockFactory, String repositoryUrl, String indexUpdateUrl,
-                                    List<? extends IndexCreator> indexCreators, boolean reclaimIndex )
-         throws IOException, ExistingLuceneIndexMismatchException
-     {
-         this( id, repositoryId, repository, repositoryUrl, indexUpdateUrl, indexCreators,
--            FSDirectory.open( indexDirectoryFile ), reclaimIndex );
-+            FSDirectory.open( indexDirectoryFile.toPath(), lockFactory ), lockFactory, reclaimIndex );
- 
-         setIndexDirectoryFile( indexDirectoryFile );
-     }
-+    
-+    public DefaultIndexingContext( String id, String repositoryId, File repository, File indexDirectoryFile,
-+                                   String repositoryUrl, String indexUpdateUrl,
-+                                   List<? extends IndexCreator> indexCreators, boolean reclaimIndex )
-+        throws IOException, ExistingLuceneIndexMismatchException
-+    {
-+                this( id, repositoryId, repository, indexDirectoryFile, new TrackingLockFactory(FSLockFactory.getDefault()),
-+                        repositoryUrl, indexUpdateUrl, indexCreators, reclaimIndex);
-+    }
- 
-     @Deprecated
-     public DefaultIndexingContext( String id, String repositoryId, File repository, Directory indexDirectory,
-@@ -167,11 +190,11 @@ public class DefaultIndexingContext
-                                    List<? extends IndexCreator> indexCreators, boolean reclaimIndex )
-         throws IOException, ExistingLuceneIndexMismatchException
-     {
--        this( id, repositoryId, repository, repositoryUrl, indexUpdateUrl, indexCreators, indexDirectory, reclaimIndex );
-+        this( id, repositoryId, repository, repositoryUrl, indexUpdateUrl, indexCreators, indexDirectory, null, reclaimIndex ); //Lock factory already installed - pass null
- 
-         if ( indexDirectory instanceof FSDirectory )
-         {
--            setIndexDirectoryFile(( (FSDirectory) indexDirectory ).getDirectory() );
-+            setIndexDirectoryFile(( (FSDirectory) indexDirectory ).getDirectory().toFile() );
-         }
-     }
- 
-@@ -215,7 +238,7 @@ public class DefaultIndexingContext
-                 // unlock the dir forcibly
-                 if ( IndexWriter.isLocked( indexDirectory ) )
-                 {
--                    IndexWriter.unlock( indexDirectory );
-+                    unlockForciebly( lockFactory, indexDirectory );
-                 }
- 
-                 openAndWarmup();
-@@ -252,7 +275,7 @@ public class DefaultIndexingContext
-             // unlock the dir forcibly
-             if ( IndexWriter.isLocked( indexDirectory ) )
-             {
--                IndexWriter.unlock( indexDirectory );
-+                unlockForciebly( lockFactory, indexDirectory );
-             }
- 
-             deleteIndexFiles( true );
-@@ -281,7 +304,7 @@ public class DefaultIndexingContext
-         // check for descriptor if this is not a "virgin" index
-         if ( getSize() > 0 )
-         {
--            final TopScoreDocCollector collector = TopScoreDocCollector.create( 1, false );
-+            final TopScoreDocCollector collector = TopScoreDocCollector.create( 1 );
-             final IndexSearcher indexSearcher = acquireIndexSearcher();
-             try
-             {
-@@ -369,14 +392,17 @@ public class DefaultIndexingContext
- 
-             if ( full )
-             {
--                if ( indexDirectory.fileExists( INDEX_PACKER_PROPERTIES_FILE ) )
--                {
-+                
-+                try {
-                     indexDirectory.deleteFile( INDEX_PACKER_PROPERTIES_FILE );
-+                } catch (IOException ioe) {
-+                    //Does not exist
-                 }
- 
--                if ( indexDirectory.fileExists( INDEX_UPDATER_PROPERTIES_FILE ) )
--                {
-+                try {
-                     indexDirectory.deleteFile( INDEX_UPDATER_PROPERTIES_FILE );
-+                } catch (IOException ioe) {
-+                    //Does not exist
-                 }
-             }
- 
-@@ -546,7 +572,6 @@ public class DefaultIndexingContext
-     public synchronized void optimize()
-         throws CorruptIndexException, IOException
-     {
--        getIndexWriter().forceMerge(1);
-         commit();
-     }
- 
-@@ -587,6 +612,12 @@ public class DefaultIndexingContext
-     public synchronized void replace( Directory directory )
-         throws IOException
-     {
-+        replace(directory, null, null);
-+    }
-+
-+    public synchronized void replace( Directory directory, Set<String> allGroups, Set<String> rootGroups)
-+        throws IOException
-+    {
-         final Date ts = IndexUtils.getTimestamp( directory );
-         closeReaders();
-         deleteIndexFiles( false );
-@@ -594,7 +625,16 @@ public class DefaultIndexingContext
-         openAndWarmup();
-         // reclaim the index as mine
-         storeDescriptor();
-+        if(allGroups == null && rootGroups == null) {
-         rebuildGroups();
-+        } else {
-+            if(allGroups != null) {
-+                setAllGroups(allGroups);
-+            }
-+            if(rootGroups != null) {
-+                setRootGroups(rootGroups);
-+            }
-+        }
-         updateTimestamp( true, ts );
-         optimize();
-     }
-@@ -612,7 +652,7 @@ public class DefaultIndexingContext
-         try
-         {
-             final IndexWriter w = getIndexWriter();
--            final IndexReader directoryReader = IndexReader.open( directory);
-+            final IndexReader directoryReader = DirectoryReader.open( directory);
-             TopScoreDocCollector collector = null;
-             try
-             {
-@@ -635,7 +675,7 @@ public class DefaultIndexingContext
-                     String uinfo = d.get( ArtifactInfo.UINFO );
-                     if ( uinfo != null )
-                     {
--                        collector = TopScoreDocCollector.create( 1, false );
-+                        collector = TopScoreDocCollector.create( 1 );
-                         s.search( new TermQuery( new Term( ArtifactInfo.UINFO, uinfo ) ), collector );
-                         if ( collector.getTotalHits() == 0 )
-                         {
-@@ -706,7 +746,7 @@ public class DefaultIndexingContext
- 
-     public List<IndexCreator> getIndexCreators()
-     {
--        return Collections.unmodifiableList( indexCreators );
-+        return Collections.<IndexCreator>unmodifiableList( indexCreators );
-     }
- 
-     // groups
-@@ -784,7 +824,7 @@ public class DefaultIndexingContext
-     protected Set<String> getGroups( String field, String filedValue, String listField )
-         throws IOException, CorruptIndexException
-     {
--        final TopScoreDocCollector collector = TopScoreDocCollector.create( 1, false );
-+        final TopScoreDocCollector collector = TopScoreDocCollector.create( 1);
-         final IndexSearcher indexSearcher = acquireIndexSearcher();
-         try
-         {
-@@ -833,4 +873,43 @@ public class DefaultIndexingContext
-     {
-         return id + " : " + timestamp;
-     }
-+
-+    private static void unlockForciebly(final TrackingLockFactory lockFactory, final Directory dir) throws IOException
-+    {
-+        //Warning: Not doable in lucene >= 5.3 consider to remove it as IndexWriter.unlock
-+        //was always strongly non recommended by Lucene.
-+        //For now try to do the best to simulate the IndexWriter.unlock at least on FSDirectory
-+        //using FSLockFactory, the RAMDirectory uses SingleInstanceLockFactory.
-+        //custom lock factory?
-+        if (lockFactory != null) {
-+            final Set<? extends Lock> emittedLocks = lockFactory.getEmittedLocks(IndexWriter.WRITE_LOCK_NAME);
-+            for (Lock emittedLock : emittedLocks) {
-+                emittedLock.close();
-+            }
-+        }
-+        if (dir instanceof FSDirectory) {
-+            final FSDirectory fsdir = (FSDirectory) dir;
-+            final Path dirPath = fsdir.getDirectory();
-+            if (Files.isDirectory(dirPath)) {
-+                Path lockPath = dirPath.resolve(IndexWriter.WRITE_LOCK_NAME);
-+                try {
-+                    lockPath = lockPath.toRealPath();
-+                } catch (IOException ioe) {
-+                    //Not locked
-+                    return;
-+                }
-+                try (final FileChannel fc = FileChannel.open(lockPath, StandardOpenOption.CREATE, StandardOpenOption.WRITE)) {
-+                    final FileLock lck = fc.tryLock();
-+                    if (lck == null) {
-+                        //Still active
-+                        throw new LockObtainFailedException("Lock held by another process: " + lockPath);
-+                    } else {
-+                        //Not held fine to release
-+                        lck.close();
-+                    }
-+                }
-+                Files.delete(lockPath);
-+            }
-+        }
-+    }
- }
-diff --git a/indexer-core/src/main/java/org/apache/maven/index/context/IndexUtils.java b/indexer-core/src/main/java/org/apache/maven/index/context/IndexUtils.java
-index d10461c..d5fe697 100644
---- a/indexer-core/src/main/java/org/apache/maven/index/context/IndexUtils.java
-+++ b/indexer-core/src/main/java/org/apache/maven/index/context/IndexUtils.java
-@@ -20,9 +20,11 @@ package org.apache.maven.index.context;
-  */
- 
- import java.io.File;
-+import java.io.FileNotFoundException;
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.OutputStream;
-+import java.nio.file.NoSuchFileException;
- import java.util.Date;
- 
- import org.apache.lucene.document.Document;
-@@ -52,7 +54,7 @@ public class IndexUtils
-         
-         for (String file : source.listAll())
-         {
--            source.copy(target, file, file, IOContext.DEFAULT); 
-+            target.copyFrom(source, file, file, IOContext.DEFAULT);
-         }
- 
-         copyFile( source, target, IndexingContext.INDEX_UPDATER_PROPERTIES_FILE );
-@@ -70,42 +72,14 @@ public class IndexUtils
- 
-     public static boolean copyFile( Directory source, Directory target, String srcName, String targetName )
-         throws IOException
--    {
--        if ( !source.fileExists( srcName ) )
--        {
-+    {        
-+        try {
-+            source.fileLength(srcName); // instead of fileExists
-+        } catch (FileNotFoundException | NoSuchFileException e) {
-             return false;
-         }
--
--        byte[] buf = new byte[BUFFER_SIZE];
--
--        IndexInput is = null;
--        IndexOutput os = null;
--
--        try
--        {
--            is = source.openInput( srcName, IOContext.DEFAULT);
--
--            os = target.createOutput( targetName, IOContext.DEFAULT);
--
--            // and copy to dest directory
--            long len = is.length();
--            long readCount = 0;
--            while ( readCount < len )
--            {
--                int toRead = readCount + BUFFER_SIZE > len ? (int) ( len - readCount ) : BUFFER_SIZE;
--                is.readBytes( buf, 0, toRead );
--                os.writeBytes( buf, toRead );
--                readCount += toRead;
--            }
--
--            return true;
--        }
--        finally
--        {
--            close( os );
--
--            close( is );
--        }
-+        target.copyFrom(source, srcName, targetName, IOContext.DEFAULT);
-+        return true;
-     }
- 
-     // timestamp
-@@ -155,12 +129,18 @@ public class IndexUtils
- 
-     public static Document updateDocument( Document doc, IndexingContext context, boolean updateLastModified )
-     {
--        ArtifactInfo ai = constructArtifactInfo( doc, context );
--        if ( ai == null )
--        {
--            return doc;
--        }
-+         return updateDocument(doc, context, updateLastModified, null);
-+    }
- 
-+    public static Document updateDocument( Document doc, IndexingContext context, boolean updateLastModified, ArtifactInfo ai )
-+    {
-+        if( ai == null ) {
-+            ai = constructArtifactInfo( doc, context );
-+            if ( ai == null )
-+            {
-+                return doc;
-+            }
-+        }
-         Document document = new Document();
- 
-         // unique key
-@@ -187,10 +167,14 @@ public class IndexUtils
-     public static void deleteTimestamp( Directory directory )
-         throws IOException
-     {
--        if ( directory.fileExists( TIMESTAMP_FILE ) )
-+        try
-         {
-             directory.deleteFile( TIMESTAMP_FILE );
-         }
-+        catch (FileNotFoundException | NoSuchFileException e)
-+        {
-+            //Does not exist
-+        }
-     }
- 
-     public static void updateTimestamp( Directory directory, Date timestamp )
-@@ -209,8 +193,6 @@ public class IndexUtils
-                 try
-                 {
-                     io.writeLong( timestamp.getTime() );
--
--                    io.flush();
-                 }
-                 finally
-                 {
-@@ -225,26 +207,13 @@ public class IndexUtils
-         synchronized ( directory )
-         {
-             Date result = null;
--            try
--            {
--                if ( directory.fileExists( TIMESTAMP_FILE ) )
--                {
--                    IndexInput ii = null;
--
--                    try
--                    {
--                        ii = directory.openInput( TIMESTAMP_FILE, IOContext.DEFAULT);
--
--                        result = new Date( ii.readLong() );
--                    }
--                    finally
--                    {
--                        close( ii );
--                    }
--                }
--            }
--            catch ( IOException ex )
-+            try (IndexInput ii = directory.openInput( TIMESTAMP_FILE, IOContext.DEFAULT)) {
-+                result = new Date( ii.readLong() );
-+            } catch (FileNotFoundException | NoSuchFileException e) {
-+                //Does not exist
-+            } catch ( IOException ex )
-             {
-+                //IO failure
-             }
- 
-             return result;
-diff --git a/indexer-core/src/main/java/org/apache/maven/index/context/IndexingContext.java b/indexer-core/src/main/java/org/apache/maven/index/context/IndexingContext.java
-index 49a397d..5aaad69 100644
---- a/indexer-core/src/main/java/org/apache/maven/index/context/IndexingContext.java
-+++ b/indexer-core/src/main/java/org/apache/maven/index/context/IndexingContext.java
-@@ -268,6 +268,9 @@ public interface IndexingContext
-     void replace( Directory directory )
-         throws IOException;
- 
-+    void replace( Directory directory, Set<String> allGroups, Set<String> rootGroups )
-+        throws IOException;
-+
-     Directory getIndexDirectory();
- 
-     File getIndexDirectoryFile();
-diff --git a/indexer-core/src/main/java/org/apache/maven/index/context/MergedIndexingContext.java b/indexer-core/src/main/java/org/apache/maven/index/context/MergedIndexingContext.java
-index fc008ff..45d93c7 100644
---- a/indexer-core/src/main/java/org/apache/maven/index/context/MergedIndexingContext.java
-+++ b/indexer-core/src/main/java/org/apache/maven/index/context/MergedIndexingContext.java
-@@ -79,7 +79,7 @@ public class MergedIndexingContext
-                                   boolean searchable, ContextMemberProvider membersProvider )
-         throws IOException
-     {
--        this( membersProvider, id, repositoryId, repository, FSDirectory.open( indexDirectoryFile ), searchable );
-+        this( membersProvider, id, repositoryId, repository, FSDirectory.open( indexDirectoryFile.toPath() ), searchable );
- 
-         setIndexDirectoryFile( indexDirectoryFile );
-     }
-@@ -93,7 +93,7 @@ public class MergedIndexingContext
- 
-         if ( indexDirectory instanceof FSDirectory )
-         {
--            setIndexDirectoryFile( ( (FSDirectory) indexDirectory ).getDirectory() );
-+            setIndexDirectoryFile( ( (FSDirectory) indexDirectory ).getDirectory().toFile() );
-         }
-     }
- 
-@@ -282,6 +282,12 @@ public class MergedIndexingContext
-         // noop
-     }
- 
-+    public void replace( Directory directory, Set<String> allGroups, Set<String> rootGroups )
-+        throws IOException
-+    {
-+        // noop
-+    }
-+
-     public Directory getIndexDirectory()
-     {
-         return directory;
-diff --git a/indexer-core/src/main/java/org/apache/maven/index/context/NexusAnalyzer.java b/indexer-core/src/main/java/org/apache/maven/index/context/NexusAnalyzer.java
-index 02a1e37..45be8b7 100644
---- a/indexer-core/src/main/java/org/apache/maven/index/context/NexusAnalyzer.java
-+++ b/indexer-core/src/main/java/org/apache/maven/index/context/NexusAnalyzer.java
-@@ -21,6 +21,7 @@ package org.apache.maven.index.context;
- 
- import java.io.Reader;
- import org.apache.lucene.analysis.Analyzer;
-+import org.apache.lucene.analysis.AnalyzerWrapper;
- import org.apache.lucene.analysis.Tokenizer;
- import org.apache.lucene.analysis.util.CharTokenizer;
- import org.apache.lucene.util.Version;
-@@ -35,41 +36,52 @@ import org.apache.maven.index.creator.JarFileContentsIndexCreator;
-  * @author cstamas
-  */
- public final class NexusAnalyzer
--    extends Analyzer
-+    extends AnalyzerWrapper
- {
-+    private static final Analyzer CLASS_NAMES_ANALYZER = new Analyzer()
-+        {
-+        @Override
-+        protected TokenStreamComponents createComponents(String fieldName)
-+        {
-+            return new TokenStreamComponents(new DeprecatedClassnamesTokenizer());
-+        }
-+    };
-+    private static final Analyzer LETTER_OR_DIGIT_ANALYZER = new Analyzer()
-+    {
-+        @Override
-+        protected TokenStreamComponents createComponents(String filedName)
-+        {
-+            return new TokenStreamComponents(new LetterOrDigitTokenizer());
-+        }
-+    };
- 
-     public NexusAnalyzer()
-     {
-         super(PER_FIELD_REUSE_STRATEGY);
-     }
--    
--    protected Tokenizer getTokenizer( String fieldName, Reader reader )
-+
-+    @Override
-+    protected Analyzer getWrappedAnalyzer(String fieldName)
-     {
-         if ( JarFileContentsIndexCreator.FLD_CLASSNAMES_KW.getKey().equals( fieldName ) )
-         {
-             // To keep "backward" compatibility, we have to use old flawed tokenizer.
--            return new DeprecatedClassnamesTokenizer( reader );
-+            return CLASS_NAMES_ANALYZER;
-         }
-         else
-         {
--            return new LetterOrDigitTokenizer( reader );
-+            return LETTER_OR_DIGIT_ANALYZER;
-         }
-     }
- 
--    @Override
--    protected TokenStreamComponents createComponents(String fieldName, Reader reader)
--    {
--        return new TokenStreamComponents(getTokenizer(fieldName, reader));
--    }
--
-     // ==
- 
-     public static class NoopTokenizer
-         extends CharTokenizer
-     {
--        public NoopTokenizer( Reader in )
-+        public NoopTokenizer()
-         {
--            super( Version.LUCENE_46, in );
-+            super();
-         }
- 
-         @Override
-@@ -83,9 +95,9 @@ public final class NexusAnalyzer
-     public static class DeprecatedClassnamesTokenizer
-         extends CharTokenizer
-     {
--        public DeprecatedClassnamesTokenizer( Reader in )
-+        public DeprecatedClassnamesTokenizer()
-         {
--            super( Version.LUCENE_46, in );
-+            super();
-         }
-         
-         @Override
-@@ -104,9 +116,9 @@ public final class NexusAnalyzer
-     public static class LetterOrDigitTokenizer
-         extends CharTokenizer
-     {
--        public LetterOrDigitTokenizer( Reader in )
-+        public LetterOrDigitTokenizer()
-         {
--            super( Version.LUCENE_46, in );
-+            super();
-         }
- 
-         @Override
-diff --git a/indexer-core/src/main/java/org/apache/maven/index/context/NexusIndexWriter.java b/indexer-core/src/main/java/org/apache/maven/index/context/NexusIndexWriter.java
-index 038eaa8..8b34809 100644
---- a/indexer-core/src/main/java/org/apache/maven/index/context/NexusIndexWriter.java
-+++ b/indexer-core/src/main/java/org/apache/maven/index/context/NexusIndexWriter.java
-@@ -28,7 +28,6 @@ import org.apache.lucene.index.IndexWriterConfig;
- import org.apache.lucene.index.SerialMergeScheduler;
- import org.apache.lucene.store.Directory;
- import org.apache.lucene.store.LockObtainFailedException;
--import org.apache.lucene.util.Version;
- 
- /**
-  * An extension of <a
-@@ -43,7 +42,7 @@ public class NexusIndexWriter
-         throws CorruptIndexException, LockObtainFailedException, IOException
-     {
-         //super( directory, analyzer, create, MaxFieldLength.LIMITED );
--        this(directory, new IndexWriterConfig(Version.LUCENE_46, analyzer));
-+        this(directory, new IndexWriterConfig(analyzer));
- 
-         // setSimilarity( new NexusSimilarity() );
-     }
-@@ -58,7 +57,7 @@ public class NexusIndexWriter
- 
-     public static IndexWriterConfig defaultConfig()
-     {
--        final IndexWriterConfig config = new IndexWriterConfig( Version.LUCENE_46, new NexusAnalyzer() );
-+        final IndexWriterConfig config = new IndexWriterConfig( new NexusAnalyzer() );
-         // default open mode is CreateOrAppend which suits us
-         config.setRAMBufferSizeMB( 2.0 ); // old default
-         config.setMergeScheduler( new SerialMergeScheduler() ); // merging serially
-diff --git a/indexer-core/src/main/java/org/apache/maven/index/context/NexusLegacyAnalyzer.java b/indexer-core/src/main/java/org/apache/maven/index/context/NexusLegacyAnalyzer.java
-index c574ef6..305baa1 100644
---- a/indexer-core/src/main/java/org/apache/maven/index/context/NexusLegacyAnalyzer.java
-+++ b/indexer-core/src/main/java/org/apache/maven/index/context/NexusLegacyAnalyzer.java
-@@ -19,15 +19,11 @@ package org.apache.maven.index.context;
-  * under the License.
-  */
- 
--import java.io.IOException;
--import java.io.Reader;
- 
- import org.apache.lucene.analysis.Analyzer;
-+import org.apache.lucene.analysis.AnalyzerWrapper;
- import org.apache.lucene.analysis.util.CharTokenizer;
--import org.apache.lucene.analysis.TokenStream;
--import org.apache.lucene.analysis.Tokenizer;
- import org.apache.lucene.analysis.standard.StandardAnalyzer;
--import org.apache.lucene.util.Version;
- import org.apache.maven.index.ArtifactInfo;
- 
- /**
-@@ -38,29 +34,14 @@ import org.apache.maven.index.ArtifactInfo;
-  * @author Jason van Zyl
-  */
- public final class NexusLegacyAnalyzer
--    extends Analyzer
-+    extends AnalyzerWrapper
- {
--    private static final Analyzer DEFAULT_ANALYZER = new StandardAnalyzer( Version.LUCENE_46 );
--    
--    @Override
--    protected TokenStreamComponents createComponents(String fieldName, Reader reader)
--    {
--        try
--        {
--            return new TokenStreamComponents((Tokenizer) tokenizer(fieldName, reader));
--        }
--        catch (IOException ex)
--        {
--            throw new RuntimeException(ex);
--        }
--    }
--
--
--    protected TokenStream tokenizer( String field, final Reader reader ) throws IOException
--    {
--        if ( !isTextField( field ) )
-+    private static final Analyzer DEFAULT_ANALYZER = new StandardAnalyzer();
-+    private static final Analyzer LETTER_OR_DIGIT_ANALYZER = new Analyzer() {
-+        @Override
-+        protected TokenStreamComponents createComponents(final String fieldName)
-         {
--            return new CharTokenizer(Version.LUCENE_46, reader )
-+            return new TokenStreamComponents(new CharTokenizer()
-             {
-                 @Override
-                 protected boolean isTokenChar(int c )
-@@ -73,11 +54,24 @@ public final class NexusLegacyAnalyzer
-                 {
-                     return Character.toLowerCase( c );
-                 }
--            };
-+            });
-         }
--        else
-+    };
-+
-+    public NexusLegacyAnalyzer()
-+    {
-+        super(PER_FIELD_REUSE_STRATEGY);
-+    }
-+
-+    @Override
-+    protected Analyzer getWrappedAnalyzer(String fieldName)
-+    {
-+        if (!isTextField( fieldName ))
-         {
--            return DEFAULT_ANALYZER.tokenStream(field, reader );
-+            return LETTER_OR_DIGIT_ANALYZER;
-+        } else
-+        {
-+            return DEFAULT_ANALYZER;
-         }
-     }
- 
-@@ -87,6 +81,4 @@ public final class NexusLegacyAnalyzer
-             || ArtifactInfo.NAMES.equals( field );
- 
-     }
--
--    
- }
-diff --git a/indexer-core/src/main/java/org/apache/maven/index/context/TrackingLockFactory.java b/indexer-core/src/main/java/org/apache/maven/index/context/TrackingLockFactory.java
-new file mode 100644
-index 0000000..ead848b
---- /dev/null
-+++ b/indexer-core/src/main/java/org/apache/maven/index/context/TrackingLockFactory.java
-@@ -0,0 +1,94 @@
-+/*
-+ * 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.
-+ */
-+package org.apache.maven.index.context;
-+
-+import java.io.IOException;
-+import java.util.Collections;
-+import java.util.Set;
-+import java.util.concurrent.ConcurrentHashMap;
-+import org.apache.lucene.store.Directory;
-+import org.apache.lucene.store.Lock;
-+import org.apache.lucene.store.LockFactory;
-+import static com.google.common.base.Preconditions.checkNotNull;
-+import java.util.HashSet;
-+
-+/**
-+ *
-+ * @author Tomas Zezula
-+ */
-+final class TrackingLockFactory extends LockFactory {
-+
-+    private final LockFactory delegate;
-+    private final Set<TrackingLock> emittedLocks;
-+
-+    TrackingLockFactory(final LockFactory delegate) {
-+        this.delegate = checkNotNull(delegate);
-+        this.emittedLocks = Collections.newSetFromMap(new ConcurrentHashMap<TrackingLock,Boolean>());
-+    }
-+
-+    Set<? extends Lock> getEmittedLocks(String name) {
-+        final Set<Lock> result = new HashSet<>();
-+        for (TrackingLock lock : emittedLocks) {
-+            if (name == null || name.equals(lock.getName())) {
-+                result.add(lock);
-+            }
-+        }
-+        return result;
-+    }
-+
-+    @Override
-+    public Lock obtainLock(Directory dir, String lockName) throws IOException {
-+        final TrackingLock lck = new TrackingLock(
-+                delegate.obtainLock(dir, lockName),
-+                lockName);
-+        emittedLocks.add(lck);
-+        return lck;
-+    }
-+
-+
-+    private final class TrackingLock extends Lock {
-+        private final Lock delegate;
-+        private final String name;
-+
-+        TrackingLock(
-+                final Lock delegate,
-+                final String name) {
-+            this.delegate = checkNotNull(delegate);
-+            this.name = checkNotNull(name);
-+        }
-+
-+        String getName() {
-+            return name;
-+        }
-+
-+        @Override
-+        public void close() throws IOException {
-+            try {
-+                delegate.close();
-+            } finally {
-+                emittedLocks.remove(this);
-+            }
-+        }
-+
-+        @Override
-+        public void ensureValid() throws IOException {
-+            delegate.ensureValid();
-+        }
-+    }
-+}
-diff --git a/indexer-core/src/main/java/org/apache/maven/index/updater/DefaultIndexUpdater.java b/indexer-core/src/main/java/org/apache/maven/index/updater/DefaultIndexUpdater.java
-index 7f90ee1..06b2834 100644
---- a/indexer-core/src/main/java/org/apache/maven/index/updater/DefaultIndexUpdater.java
-+++ b/indexer-core/src/main/java/org/apache/maven/index/updater/DefaultIndexUpdater.java
-@@ -41,26 +41,16 @@ import java.util.ArrayList;
- import java.util.Date;
- import java.util.List;
- import java.util.Properties;
-+import java.util.Set;
- import java.util.TimeZone;
--import java.util.zip.ZipEntry;
--import java.util.zip.ZipInputStream;
- 
- import org.apache.lucene.document.Document;
--import org.apache.lucene.document.Field;
--import org.apache.lucene.document.StringField;
--import org.apache.lucene.index.CorruptIndexException;
-+import org.apache.lucene.index.DirectoryReader;
- import org.apache.lucene.index.IndexReader;
- import org.apache.lucene.index.IndexWriter;
--import org.apache.lucene.index.IndexableField;
- import org.apache.lucene.index.MultiFields;
- import org.apache.lucene.store.Directory;
--import org.apache.lucene.store.FSDirectory;
--import org.apache.lucene.store.IOContext;
--import org.apache.lucene.store.IndexOutput;
--import org.apache.lucene.store.LockObtainFailedException;
- import org.apache.lucene.util.Bits;
--import org.apache.maven.index.ArtifactInfo;
--import org.apache.maven.index.context.DefaultIndexingContext;
- import org.apache.maven.index.context.DocumentFilter;
- import org.apache.maven.index.context.IndexUtils;
- import org.apache.maven.index.context.IndexingContext;
-@@ -71,7 +61,6 @@ import org.apache.maven.index.fs.Locker;
- import org.apache.maven.index.incremental.IncrementalHandler;
- import org.apache.maven.index.updater.IndexDataReader.IndexDataReadResult;
- import org.codehaus.plexus.util.FileUtils;
--import org.codehaus.plexus.util.IOUtil;
- import org.codehaus.plexus.util.io.RawInputStreamFacade;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
-@@ -205,10 +194,14 @@ public class DefaultIndexUpdater
-         {
-             Date timestamp = null;
- 
-+            Set<String> rootGroups = null;
-+            Set<String> allGroups = null;
-             if ( remoteIndexFile.endsWith( ".gz" ) )
-             {
--                timestamp = unpackIndexData( is, directory, //
--                    updateRequest.getIndexingContext() );
-+                IndexDataReadResult result = unpackIndexData( is, directory, updateRequest.getIndexingContext() );
-+                timestamp = result.getTimestamp();
-+                rootGroups = result.getRootGroups();
-+                allGroups = result.getAllGroups();
-             }
-             else
-             {
-@@ -227,7 +220,7 @@ public class DefaultIndexUpdater
-             }
-             else
-             {
--                updateRequest.getIndexingContext().replace( directory );
-+                updateRequest.getIndexingContext().replace( directory, rootGroups, allGroups );
-             }
-             if ( sideEffects != null && sideEffects.size() > 0 )
-             {
-@@ -260,7 +253,7 @@ public class DefaultIndexUpdater
-         IndexWriter w = null;
-         try
-         {
--            r = IndexReader.open( directory );
-+            r = DirectoryReader.open( directory );
-             w = new NexusIndexWriter( directory, new NexusAnalyzer(), false );
-             
-             Bits liveDocs = MultiFields.getLiveDocs(r);
-@@ -296,7 +289,6 @@ public class DefaultIndexUpdater
-             // analyzer is unimportant, since we are not adding/searching to/on index, only reading/deleting
-             w = new NexusIndexWriter( directory, new NexusAnalyzer(), false );
- 
--            w.forceMerge(4);
-             w.commit();
-         }
-         finally
-@@ -381,7 +373,7 @@ public class DefaultIndexUpdater
-      * @param w a writer to save index data
-      * @param ics a collection of index creators for updating unpacked documents.
-      */
--    public static Date unpackIndexData( final InputStream is, final Directory d, final IndexingContext context )
-+    public static IndexDataReadResult unpackIndexData( final InputStream is, final Directory d, final IndexingContext context )
-         throws IOException
-     {
-         NexusIndexWriter w = new NexusIndexWriter( d, new NexusAnalyzer(), true );
-@@ -389,9 +381,7 @@ public class DefaultIndexUpdater
-         {
-             IndexDataReader dr = new IndexDataReader( is );
- 
--            IndexDataReadResult result = dr.readIndex( w, context );
--
--            return result.getTimestamp();
-+            return dr.readIndex( w, context );
-         }
-         finally
-         {
-diff --git a/indexer-core/src/main/java/org/apache/maven/index/updater/FSDirectoryFactory.java b/indexer-core/src/main/java/org/apache/maven/index/updater/FSDirectoryFactory.java
-index aa739ae..9866bbf 100644
---- a/indexer-core/src/main/java/org/apache/maven/index/updater/FSDirectoryFactory.java
-+++ b/indexer-core/src/main/java/org/apache/maven/index/updater/FSDirectoryFactory.java
-@@ -40,7 +40,7 @@ public interface FSDirectoryFactory
-         public FSDirectory open( File indexDir )
-             throws IOException
-         {
--            return FSDirectory.open( indexDir );
-+            return FSDirectory.open( indexDir.toPath() );
-         }
-     };
- 
-diff --git a/indexer-core/src/main/java/org/apache/maven/index/updater/IndexDataReader.java b/indexer-core/src/main/java/org/apache/maven/index/updater/IndexDataReader.java
-index f76200c..3ece76a 100644
---- a/indexer-core/src/main/java/org/apache/maven/index/updater/IndexDataReader.java
-+++ b/indexer-core/src/main/java/org/apache/maven/index/updater/IndexDataReader.java
-@@ -30,6 +30,8 @@ import java.util.Date;
- import java.util.zip.GZIPInputStream;
- 
- import com.google.common.base.Strings;
-+import java.util.LinkedHashSet;
-+import java.util.Set;
- import org.apache.lucene.document.Document;
- import org.apache.lucene.document.Field;
- import org.apache.lucene.document.Field.Index;
-@@ -51,27 +53,26 @@ public class IndexDataReader
-     public IndexDataReader( InputStream is )
-         throws IOException
-     {
--        BufferedInputStream bis = new BufferedInputStream( is, 1024 * 8 );
--
-         // MINDEXER-13
-         // LightweightHttpWagon may have performed automatic decompression
-         // Handle it transparently
--        bis.mark( 2 );
-+        is.mark( 2 );
-         InputStream data;
--        if ( bis.read() == 0x1f && bis.read() == 0x8b ) // GZIPInputStream.GZIP_MAGIC
-+        if ( is.read() == 0x1f && is.read() == 0x8b ) // GZIPInputStream.GZIP_MAGIC
-         {
--            bis.reset();
--            data = new GZIPInputStream( bis, 2 * 1024 );
-+            is.reset();
-+            data = new BufferedInputStream(new GZIPInputStream( is, 1024 * 8 ), 1024 * 8 );
-         }
-         else
-         {
-+            BufferedInputStream bis = new BufferedInputStream( is, 1024 * 8 );
-             bis.reset();
-             data = bis;
-         }
- 
-         this.dis = new DataInputStream( data );
-     }
--
-+    
-     public IndexDataReadResult readIndex( IndexWriter w, IndexingContext context )
-         throws IOException
-     {
-@@ -89,21 +90,32 @@ public class IndexDataReader
-         int n = 0;
- 
-         Document doc;
-+        Set<String> rootGroups = new LinkedHashSet<>();
-+        Set<String> allGroups = new LinkedHashSet<>();
-+        
-         while ( ( doc = readDocument() ) != null )
-         {
--            w.addDocument( IndexUtils.updateDocument( doc, context, false ) );
-+            ArtifactInfo ai = IndexUtils.constructArtifactInfo( doc, context );
-+            if(ai != null) {
-+                w.addDocument( IndexUtils.updateDocument( doc, context, false, ai ) );
-+
-+                rootGroups.add( ai.getRootGroup() );
-+                allGroups.add( ai.getGroupId() );
- 
-+            } else {
-+                w.addDocument( doc );
-+            }
-             n++;
-         }
- 
-         w.commit();
--        
--        w.forceMerge(1);
--        w.commit();
- 
-         IndexDataReadResult result = new IndexDataReadResult();
-         result.setDocumentCount( n );
-         result.setTimestamp( date );
-+        result.setRootGroups( rootGroups );
-+        result.setAllGroups( allGroups );
-+        
-         return result;
-     }
- 
-@@ -292,6 +304,10 @@ public class IndexDataReader
- 
-         private int documentCount;
- 
-+        private Set<String> rootGroups;
-+
-+        private Set<String> allGroups;
-+        
-         public void setDocumentCount( int documentCount )
-         {
-             this.documentCount = documentCount;
-@@ -312,6 +328,26 @@ public class IndexDataReader
-             return timestamp;
-         }
- 
-+        public void setRootGroups(Set<String> rootGroups)
-+        {
-+            this.rootGroups = rootGroups;
-+        }
-+
-+        public Set<String> getRootGroups()
-+        {
-+            return rootGroups;
-+        }
-+
-+        public void setAllGroups(Set<String> allGroups)
-+        {
-+            this.allGroups = allGroups;
-+        }
-+
-+        public Set<String> getAllGroups()
-+        {
-+            return allGroups;
-+        }
-+
-     }
- 
-     /**
-diff --git a/indexer-core/src/main/java/org/apache/maven/index/updater/IndexDataWriter.java b/indexer-core/src/main/java/org/apache/maven/index/updater/IndexDataWriter.java
-index 13ad7ce..5d9e338 100644
---- a/indexer-core/src/main/java/org/apache/maven/index/updater/IndexDataWriter.java
-+++ b/indexer-core/src/main/java/org/apache/maven/index/updater/IndexDataWriter.java
-@@ -34,6 +34,7 @@ import org.apache.lucene.document.Document;
- import org.apache.lucene.document.Field;
- import org.apache.lucene.document.Field.Store;
- import org.apache.lucene.document.StringField;
-+import org.apache.lucene.index.IndexOptions;
- import org.apache.lucene.index.IndexReader;
- import org.apache.lucene.index.IndexableField;
- import org.apache.lucene.index.MultiFields;
-@@ -242,7 +243,7 @@ public class IndexDataWriter
-     public void writeField( IndexableField field )
-         throws IOException
-     {
--        int flags = ( field.fieldType().indexed() ? F_INDEXED : 0 ) //
-+        int flags = ( field.fieldType().indexOptions() != IndexOptions.NONE  ? F_INDEXED : 0 ) //
-             + ( field.fieldType().tokenized() ? F_TOKENIZED : 0 ) //
-             + ( field.fieldType().stored() ? F_STORED : 0 ); //
-         // + ( false ? F_COMPRESSED : 0 ); // Compressed not supported anymore
-diff --git a/indexer-core/src/test/java/org/apache/maven/index/DefaultIndexNexusIndexerTest.java b/indexer-core/src/test/java/org/apache/maven/index/DefaultIndexNexusIndexerTest.java
-index 99f6183..195b472 100644
---- a/indexer-core/src/test/java/org/apache/maven/index/DefaultIndexNexusIndexerTest.java
-+++ b/indexer-core/src/test/java/org/apache/maven/index/DefaultIndexNexusIndexerTest.java
-@@ -181,7 +181,7 @@ public class DefaultIndexNexusIndexerTest
- 
-         File newIndex = new File( getBasedir(), "target/test-new" );
- 
--        Directory newIndexDir = FSDirectory.open( newIndex );
-+        Directory newIndexDir = FSDirectory.open( newIndex.toPath() );
- 
-         IndexingContext newContext =
-             nexusIndexer.addIndexingContext( "test-new", "test", null, newIndexDir, null, null, DEFAULT_CREATORS );
-@@ -223,7 +223,7 @@ public class DefaultIndexNexusIndexerTest
- 
-         newContext.close( false );
- 
--        newIndexDir = FSDirectory.open( newIndex );
-+        newIndexDir = FSDirectory.open( newIndex.toPath());
- 
-         newContext =
-             nexusIndexer.addIndexingContext( "test-new", "test", null, newIndexDir, null, null, DEFAULT_CREATORS );
-diff --git a/indexer-core/src/test/java/org/apache/maven/index/FSDirectoryDeleteTest.java b/indexer-core/src/test/java/org/apache/maven/index/FSDirectoryDeleteTest.java
-index 0912334..5a541ca 100644
---- a/indexer-core/src/test/java/org/apache/maven/index/FSDirectoryDeleteTest.java
-+++ b/indexer-core/src/test/java/org/apache/maven/index/FSDirectoryDeleteTest.java
-@@ -53,13 +53,13 @@ public class FSDirectoryDeleteTest
- 
-         nexusIndexer = lookup( NexusIndexer.class );
- 
--        indexDir = FSDirectory.open( indexDirFile );
-+        indexDir = FSDirectory.open( indexDirFile.toPath() );
- 
-         context = nexusIndexer.addIndexingContext( "one", "nexus-13", repo, indexDir, null, null, DEFAULT_CREATORS );
- 
-         nexusIndexer.scan( context );
- 
--        otherIndexDir = FSDirectory.open( otherIndexDirFile );
-+        otherIndexDir = FSDirectory.open( otherIndexDirFile.toPath() );
- 
-         otherContext =
-             nexusIndexer.addIndexingContext( "other", "nexus-13", repo, otherIndexDir, null, null, DEFAULT_CREATORS );
-diff --git a/indexer-core/src/test/java/org/apache/maven/index/FullIndexNexusIndexerTest.java b/indexer-core/src/test/java/org/apache/maven/index/FullIndexNexusIndexerTest.java
-index dc07273..3d006ff 100644
---- a/indexer-core/src/test/java/org/apache/maven/index/FullIndexNexusIndexerTest.java
-+++ b/indexer-core/src/test/java/org/apache/maven/index/FullIndexNexusIndexerTest.java
-@@ -356,7 +356,7 @@ public class FullIndexNexusIndexerTest
- 
-         File newIndex = new File( getBasedir(), "target/test-new" );
- 
--        Directory newIndexDir = FSDirectory.open( newIndex );
-+        Directory newIndexDir = FSDirectory.open( newIndex.toPath() );
- 
-         IndexingContext newContext =
-             nexusIndexer.addIndexingContext( "test-new", "test", null, newIndexDir, null, null, DEFAULT_CREATORS );
-@@ -397,7 +397,7 @@ public class FullIndexNexusIndexerTest
- 
-         newContext.close( false );
- 
--        newIndexDir = FSDirectory.open( newIndex );
-+        newIndexDir = FSDirectory.open( newIndex.toPath() );
- 
-         newContext =
-             nexusIndexer.addIndexingContext( "test-new", "test", null, newIndexDir, null, null, DEFAULT_CREATORS );
-diff --git a/indexer-core/src/test/java/org/apache/maven/index/NexusIndexerTest.java b/indexer-core/src/test/java/org/apache/maven/index/NexusIndexerTest.java
-index 4af552c..98dbd9b 100644
---- a/indexer-core/src/test/java/org/apache/maven/index/NexusIndexerTest.java
-+++ b/indexer-core/src/test/java/org/apache/maven/index/NexusIndexerTest.java
-@@ -118,13 +118,13 @@ public class NexusIndexerTest
-         // scored search against field having untokenized indexerField only
-         q = indexer.constructQuery( MAVEN.PACKAGING, "maven-archetype", SearchType.SCORED );
- 
--        assertEquals( "p:maven-archetype p:maven-archetype*^0.8", q.toString() );
-+        assertEquals( "p:maven-archetype p:maven-archetype*", q.toString() );
- 
-         // scored search against field having untokenized indexerField only
-         q = indexer.constructQuery( MAVEN.ARTIFACT_ID, "commons-logging", SearchType.SCORED );
- 
-         assertEquals(
--            "(a:commons-logging a:commons-logging*^0.8) ((+artifactId:commons +artifactId:logging*) artifactId:\"commons logging\")",
-+            "(a:commons-logging a:commons-logging*) ((+artifactId:commons +artifactId:logging*) artifactId:\"commons logging\")",
-             q.toString() );
- 
-         // scored search against field having tokenized IndexerField only (should be impossible).
-diff --git a/indexer-core/src/test/java/org/apache/maven/index/archetype/NexusArchetypeDataSourceTest.java b/indexer-core/src/test/java/org/apache/maven/index/archetype/NexusArchetypeDataSourceTest.java
-index 1818d3c..4164f3a 100644
---- a/indexer-core/src/test/java/org/apache/maven/index/archetype/NexusArchetypeDataSourceTest.java
-+++ b/indexer-core/src/test/java/org/apache/maven/index/archetype/NexusArchetypeDataSourceTest.java
-@@ -70,7 +70,7 @@ public class NexusArchetypeDataSourceTest
- 
-             super.deleteDirectory( indexDirFile );
- 
--            indexDir = FSDirectory.open( indexDirFile );
-+            indexDir = FSDirectory.open( indexDirFile.toPath() );
-         }
- 
-         File repo = new File( getBasedir(), "src/test/repo" );
-diff --git a/indexer-core/src/test/java/org/apache/maven/index/context/NexusAnalyzerTest.java b/indexer-core/src/test/java/org/apache/maven/index/context/NexusAnalyzerTest.java
-index ba78251..a7c71b0 100644
---- a/indexer-core/src/test/java/org/apache/maven/index/context/NexusAnalyzerTest.java
-+++ b/indexer-core/src/test/java/org/apache/maven/index/context/NexusAnalyzerTest.java
-@@ -55,7 +55,7 @@ public class NexusAnalyzerTest
-     protected void runAndCompare( IndexerField indexerField, String text, String[] expected )
-         throws IOException
-     {
--        Tokenizer ts = (Tokenizer) nexusAnalyzer.createComponents(indexerField.getKey(), new StringReader( text ) ).getTokenizer();
-+        Tokenizer ts = (Tokenizer) nexusAnalyzer.tokenStream(indexerField.getKey(), new StringReader( text ) );
-         ts.reset();
- 
-         ArrayList<String> tokenList = new ArrayList<String>();
-diff --git a/indexer-core/src/test/java/org/apache/maven/index/context/TrackingLockFactoryTest.java b/indexer-core/src/test/java/org/apache/maven/index/context/TrackingLockFactoryTest.java
-new file mode 100644
-index 0000000..5590f6c
---- /dev/null
-+++ b/indexer-core/src/test/java/org/apache/maven/index/context/TrackingLockFactoryTest.java
-@@ -0,0 +1,84 @@
-+/*
-+ * 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.
-+ */
-+package org.apache.maven.index.context;
-+
-+import java.io.IOException;
-+import java.util.Set;
-+import org.apache.lucene.store.Lock;
-+import org.apache.lucene.store.LockObtainFailedException;
-+import org.apache.lucene.store.RAMDirectory;
-+import org.apache.lucene.store.SingleInstanceLockFactory;
-+import org.junit.Test;
-+import static org.junit.Assert.*;
-+
-+/**
-+ *
-+ * @author Tomas Zezula
-+ */
-+public class TrackingLockFactoryTest {
-+
-+    public TrackingLockFactoryTest() {
-+    }
-+
-+    @Test
-+    public void testLockUnlock() throws IOException {
-+        final TrackingLockFactory lf = new TrackingLockFactory(new SingleInstanceLockFactory());
-+        final RAMDirectory ram = new RAMDirectory(lf);
-+        final Lock foo = ram.obtainLock("foo");
-+        final Lock bar = ram.obtainLock("bar");
-+        bar.close();
-+        foo.close();
-+        ram.close();
-+    }
-+
-+    @Test
-+    public void testLockLocked() throws IOException {
-+        final TrackingLockFactory lf = new TrackingLockFactory(new SingleInstanceLockFactory());
-+        final RAMDirectory ram = new RAMDirectory(lf);
-+        final Lock foo = ram.obtainLock("foo");
-+        boolean thrownLOFE = false;
-+        try {
-+            ram.obtainLock("foo");
-+        } catch (LockObtainFailedException e) {
-+            thrownLOFE = true;
-+        }
-+        assertTrue(thrownLOFE);
-+        foo.close();
-+        final Lock foo2 = ram.obtainLock("foo");
-+        foo2.close();
-+        ram.close();
-+    }
-+
-+    @Test
-+    public void testEmmittedLocks() throws IOException {
-+        final TrackingLockFactory lf = new TrackingLockFactory(new SingleInstanceLockFactory());
-+        final RAMDirectory ram = new RAMDirectory(lf);
-+        final Lock l1 = ram.obtainLock("l1");
-+        final Lock l2 = ram.obtainLock("l2");
-+        final Lock l3 = ram.obtainLock("l3");
-+        l2.close();
-+        Set<? extends Lock> emittedLocks = lf.getEmittedLocks(null);
-+        assertEquals(2, emittedLocks.size());
-+        assertTrue(emittedLocks.contains(l1));
-+        assertTrue(emittedLocks.contains(l3));
-+        emittedLocks = lf.getEmittedLocks("l3");
-+        assertEquals(1, emittedLocks.size());
-+        assertTrue(emittedLocks.contains(l3));
-+    }
-+}
-diff --git a/indexer-core/src/test/java/org/apache/maven/index/packer/NEXUS4149TransferFormatTest.java b/indexer-core/src/test/java/org/apache/maven/index/packer/NEXUS4149TransferFormatTest.java
-index 8d6b378..b77d6b0 100644
---- a/indexer-core/src/test/java/org/apache/maven/index/packer/NEXUS4149TransferFormatTest.java
-+++ b/indexer-core/src/test/java/org/apache/maven/index/packer/NEXUS4149TransferFormatTest.java
-@@ -19,9 +19,11 @@ package org.apache.maven.index.packer;
-  * under the License.
-  */
- 
-+import java.io.BufferedInputStream;
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.IOException;
-+import java.io.InputStream;
- import java.util.Arrays;
- import java.util.List;
- 
-@@ -140,7 +142,7 @@ public class NEXUS4149TransferFormatTest
-         }
- 
-         // read it up and verify, but stay "low level", directly consume the GZ file and count
--        FileInputStream fis = new FileInputStream( new File( packTargetDir, "nexus-maven-repository-index.gz" ) );
-+        InputStream fis = new BufferedInputStream( new FileInputStream( new File( packTargetDir, "nexus-maven-repository-index.gz" ) ) );
-         IndexDataReader reader = new IndexDataReader( fis );
-         try
-         {
-diff --git a/indexer-core/src/test/java/org/apache/maven/index/updater/DefaultIndexUpdaterTest.java b/indexer-core/src/test/java/org/apache/maven/index/updater/DefaultIndexUpdaterTest.java
-index cdf6d71..2b89320 100644
---- a/indexer-core/src/test/java/org/apache/maven/index/updater/DefaultIndexUpdaterTest.java
-+++ b/indexer-core/src/test/java/org/apache/maven/index/updater/DefaultIndexUpdaterTest.java
-@@ -150,7 +150,11 @@ public class DefaultIndexUpdaterTest
-             Collection<ArtifactInfo> tempContent = tempResponse.getResults();
-             assertEquals( tempContent.toString(), 3, tempContent.size() );
- 
--            RAMDirectory tempDir2 = new RAMDirectory( tempContext.getIndexDirectory(), IOContext.DEFAULT );
-+            RAMDirectory tempDir2 = new RAMDirectory();
-+            for (String file : tempContext.getIndexDirectory().listAll())
-+            {
-+                tempDir2.copyFrom(tempContext.getIndexDirectory(), file, file, IOContext.DEFAULT);
-+            }
- 
-             indexer.removeIndexingContext( tempContext, false );
- 
-@@ -193,7 +197,11 @@ public class DefaultIndexUpdaterTest
-             indexer.deleteArtifactFromIndex(
-                 createArtifactContext( repositoryId, "commons-lang", "commons-lang", "2.4", null ), tempContext );
- 
--            RAMDirectory tempDir2 = new RAMDirectory( tempContext.getIndexDirectory(), IOContext.DEFAULT );
-+            RAMDirectory tempDir2 = new RAMDirectory();
-+            for (String file : tempContext.getIndexDirectory().listAll())
-+            {
-+                tempDir2.copyFrom(tempContext.getIndexDirectory(), file, file, IOContext.DEFAULT);
-+            }
- 
-             indexer.removeIndexingContext( tempContext, false );
- 
-@@ -267,7 +275,11 @@ public class DefaultIndexUpdaterTest
-             indexer.addArtifactToIndex(
-                 createArtifactContext( repositoryId, "org.slf4j.foo", "jcl104-over-slf4j", "1.4.2", null ), context );
- 
--            RAMDirectory tempDir2 = new RAMDirectory( tempContext.getIndexDirectory(), IOContext.DEFAULT );
-+            RAMDirectory tempDir2 = new RAMDirectory();
-+            for (String file : tempContext.getIndexDirectory().listAll())
-+            {
-+                tempDir2.copyFrom(tempContext.getIndexDirectory(), file, file, IOContext.DEFAULT);
-+            }
- 
-             indexer.removeIndexingContext( tempContext, false );
- 
-@@ -408,7 +420,7 @@ public class DefaultIndexUpdaterTest
-                     with( IndexingContext.INDEX_FILE_PREFIX + ".gz" ) );
-                 will( returnValue( newInputStream( "/index-updater/server-root/nexus-maven-repository-index.gz" ) ) );
- 
--                oneOf( tempContext ).replace( with( any( Directory.class ) ) );
-+                oneOf( tempContext ).replace( with( any( Directory.class ) ), with( any( Set.class ) ), with( any( Set.class ) ) );
- 
-                 oneOf( mockFetcher ).disconnect();
-             }
-@@ -566,7 +578,7 @@ public class DefaultIndexUpdaterTest
-                 will( returnValue( newInputStream( "/index-updater/server-root/nexus-maven-repository-index.gz" ) ) );
-                 // could create index archive there and verify that it is merged correctly
- 
--                oneOf( tempContext ).replace( with( any( Directory.class ) ) );
-+                oneOf( tempContext ).replace( with( any( Directory.class ) ), with( any( Set.class ) ), with( any( Set.class ) ) );
- 
-                 never( mockFetcher ).retrieve( //
-                     with( IndexingContext.INDEX_FILE_PREFIX + ".2.gz" ) );
-@@ -810,7 +822,7 @@ public class DefaultIndexUpdaterTest
- 
-                 never( tempContext ).merge( with( any( Directory.class ) ) );
- 
--                oneOf( tempContext ).replace( with( any( Directory.class ) ) );
-+                oneOf( tempContext ).replace( with( any( Directory.class ) ), with( any( Set.class ) ), with( any( Set.class ) ) );
- 
-                 oneOf( mockFetcher ).disconnect();
-             }
-@@ -970,4 +982,4 @@ public class DefaultIndexUpdaterTest
-     {
-         assertFalse("Index update should have failed, but says it succeeded", updateResult.isSuccessful());
-     }
--}
-\ No newline at end of file
-+}
-diff --git a/indexer-core/src/test/java/org/apache/maven/index/updater/IndexDataTest.java b/indexer-core/src/test/java/org/apache/maven/index/updater/IndexDataTest.java
-index 91db7f2..65b6b8c 100644
---- a/indexer-core/src/test/java/org/apache/maven/index/updater/IndexDataTest.java
-+++ b/indexer-core/src/test/java/org/apache/maven/index/updater/IndexDataTest.java
-@@ -29,6 +29,7 @@ import java.util.Map.Entry;
- 
- import org.apache.lucene.document.Document;
- import org.apache.lucene.index.CorruptIndexException;
-+import org.apache.lucene.index.DirectoryReader;
- import org.apache.lucene.index.IndexReader;
- import org.apache.lucene.search.IndexSearcher;
- import org.apache.lucene.store.Directory;
-@@ -83,7 +84,7 @@ public class IndexDataTest
- 
-         newDir = new RAMDirectory();
- 
--        Date newTimestamp = DefaultIndexUpdater.unpackIndexData( is, newDir, context );
-+        Date newTimestamp = DefaultIndexUpdater.unpackIndexData( is, newDir, context ).getTimestamp();
- 
-         assertEquals( timestamp, newTimestamp );
- 
-@@ -120,7 +121,7 @@ public class IndexDataTest
- 
-         newDir = new RAMDirectory();
- 
--        Date newTimestamp = DefaultIndexUpdater.unpackIndexData( is, newDir, context );
-+        Date newTimestamp = DefaultIndexUpdater.unpackIndexData( is, newDir, context ).getTimestamp();
- 
-         assertEquals( null, newTimestamp );
- 
-@@ -134,7 +135,7 @@ public class IndexDataTest
- 
-         Map<String, ArtifactInfo> r1map = readIndex( r1 );
- 
--        IndexReader r2 = IndexReader.open( newDir );
-+        IndexReader r2 = DirectoryReader.open( newDir );
- 
-         Map<String, ArtifactInfo> r2map = readIndex( r2 );
- 
-diff --git a/indexer-core/src/test/resources/testQueryCreatorNGSearch/case01.txt b/indexer-core/src/test/resources/testQueryCreatorNGSearch/case01.txt
-index 17691d9..ece9199 100644
---- a/indexer-core/src/test/resources/testQueryCreatorNGSearch/case01.txt
-+++ b/indexer-core/src/test/resources/testQueryCreatorNGSearch/case01.txt
-@@ -1,4 +1,4 @@
--### Searched for field urn:maven#groupId (with 2 registered index fields) using query "commons-logg" (QC create LQL "(g:commons-logg g:commons-logg*^0.8) ((+groupId:commons +groupId:logg*) groupId:"commons logg")")
-+### Searched for field urn:maven#groupId (with 2 registered index fields) using query "commons-logg" (QC create LQL "(g:commons-logg g:commons-logg*) ((+groupId:commons +groupId:logg*) groupId:"commons logg")")
- test :: commons-logging:commons-logging:1.1:null:jar
- test :: commons-logging:commons-logging:1.1:sources:jar
- test :: commons-logging:commons-logging:1.0.4:null:jar
-diff --git a/indexer-core/src/test/resources/testQueryCreatorNGSearch/case05.txt b/indexer-core/src/test/resources/testQueryCreatorNGSearch/case05.txt
-index bd52ac6..511516e 100644
---- a/indexer-core/src/test/resources/testQueryCreatorNGSearch/case05.txt
-+++ b/indexer-core/src/test/resources/testQueryCreatorNGSearch/case05.txt
-@@ -1,4 +1,4 @@
--### Searched for field urn:maven#version (with 2 registered index fields) using query "1.0" (QC create LQL "(v:1.0 v:1.0*^0.8) ((+version:1 +version:0*) version:"1 0")")
-+### Searched for field urn:maven#version (with 2 registered index fields) using query "1.0" (QC create LQL "(v:1.0 v:1.0*) ((+version:1 +version:0*) version:"1 0")")
- test :: proptest:proptest-archetype:1.0:null:maven-archetype
- test :: org.apache.maven.plugins:maven-core-it-plugin:1.0:null:maven-plugin
- test :: org.apache.maven.plugins:maven-core-it-plugin:1.0:sources:jar
-diff --git a/indexer-examples/indexer-examples-spring/src/main/java/org/apache/maven/indexer/examples/indexing/RepositoryIndexer.java b/indexer-examples/indexer-examples-spring/src/main/java/org/apache/maven/indexer/examples/indexing/RepositoryIndexer.java
-index a205288..88f9a27 100644
---- a/indexer-examples/indexer-examples-spring/src/main/java/org/apache/maven/indexer/examples/indexing/RepositoryIndexer.java
-+++ b/indexer-examples/indexer-examples-spring/src/main/java/org/apache/maven/indexer/examples/indexing/RepositoryIndexer.java
-@@ -61,11 +61,9 @@ public class RepositoryIndexer
- 
-     private static final Logger LOGGER = LoggerFactory.getLogger( RepositoryIndexer.class );
- 
--    private static final Version luceneVersion = Version.LUCENE_48;
--
-     private static final String[] luceneFields = new String[]{ "g", "a", "v", "p", "c" };
- 
--    private static final WhitespaceAnalyzer luceneAnalyzer = new WhitespaceAnalyzer( luceneVersion );
-+    private static final WhitespaceAnalyzer luceneAnalyzer = new WhitespaceAnalyzer( );
- 
-     private Indexer indexer;
- 
-@@ -176,7 +174,7 @@ public class RepositoryIndexer
-     public Set<ArtifactInfo> search( final String queryText )
-         throws ParseException, IOException
-     {
--        final Query query = new MultiFieldQueryParser( luceneVersion, luceneFields, luceneAnalyzer ).parse( queryText );
-+        final Query query = new MultiFieldQueryParser( luceneFields, luceneAnalyzer ).parse( queryText );
- 
-         LOGGER.debug( "Executing search query: {}; ctx id: {}; idx dir: {}",
-                       new String[]{ query.toString(), indexingContext.getId(),
-diff --git a/pom.xml b/pom.xml
-index e60ccd1..a844429 100644
---- a/pom.xml
-+++ b/pom.xml
-@@ -90,7 +90,7 @@ under the License.
-     <eclipse-sisu.version>0.2.1</eclipse-sisu.version>
-     <sisu-guice.version>3.2.2</sisu-guice.version>
- 
--    <lucene.version>4.8.1</lucene.version>
-+    <lucene.version>5.5.3</lucene.version>
-     <maven.version>3.0.5</maven.version>
-     <aether.version>1.0.0.v20140518</aether.version>
- 
diff --git a/maven.indexer/nbproject/project.properties b/maven.indexer/nbproject/project.properties
index 2d7725a..068212a 100644
--- a/maven.indexer/nbproject/project.properties
+++ b/maven.indexer/nbproject/project.properties
@@ -19,11 +19,11 @@ test.config.stableBTD.includes=**/*Test.class
 is.autoload=true
 javac.source=1.8
 javac.compilerargs=-Xlint -Xlint:-serial
-release.external/indexer-core-6.0-SNAPSHOT-patched.jar=modules/ext/maven/indexer-core-6.0-SNAPSHOT-patched.jar
-release.external/lucene-core-5.5.3.jar=modules/ext/maven/lucene-core-5.5.3.jar
-release.external/lucene-highlighter-5.5.3.jar=modules/ext/maven/lucene-highlighter-5.5.3.jar
-release.external/lucene-queryparser-5.5.3.jar=modules/ext/maven/lucene-queryparser-5.5.3.jar
-release.external/lucene-analyzers-common-5.5.3.jar=modules/ext/maven/lucene-analyzers-common-5.5.3.jar
+release.external/indexer-core-6.0.0.jar=modules/ext/maven/indexer-core-6.0.0.jar
+release.external/lucene-core-5.5.5.jar=modules/ext/maven/lucene-core-5.5.5.jar
+release.external/lucene-highlighter-5.5.5.jar=modules/ext/maven/lucene-highlighter-5.5.5.jar
+release.external/lucene-queryparser-5.5.5.jar=modules/ext/maven/lucene-queryparser-5.5.5.jar
+release.external/lucene-analyzers-common-5.5.5.jar=modules/ext/maven/lucene-analyzers-common-5.5.5.jar
 release.external/javax.annotation-api-1.2.jar=modules/ext/maven/javax.annotation-api-1.2.jar
 # XXX so long as Lucene is bundled here:
 sigtest.gen.fail.on.error=false
diff --git a/maven.indexer/nbproject/project.xml b/maven.indexer/nbproject/project.xml
index 98b2b05..a61977e 100644
--- a/maven.indexer/nbproject/project.xml
+++ b/maven.indexer/nbproject/project.xml
@@ -166,24 +166,24 @@
                 <package>org.netbeans.modules.maven.indexer.spi.impl</package>
             </friend-packages>
             <class-path-extension>
-                <runtime-relative-path>ext/maven/indexer-core-6.0-SNAPSHOT-patched.jar</runtime-relative-path>
-                <binary-origin>external/indexer-core-6.0-SNAPSHOT-patched.jar</binary-origin>
+                <runtime-relative-path>ext/maven/indexer-core-6.0.0.jar</runtime-relative-path>
+                <binary-origin>external/indexer-core-6.0.0.jar</binary-origin>
             </class-path-extension>
             <class-path-extension>
-                <runtime-relative-path>ext/maven/lucene-core-5.5.3.jar</runtime-relative-path>
-                <binary-origin>external/lucene-core-5.5.3.jar</binary-origin>
+                <runtime-relative-path>ext/maven/lucene-core-5.5.5.jar</runtime-relative-path>
+                <binary-origin>external/lucene-core-5.5.5.jar</binary-origin>
             </class-path-extension>
             <class-path-extension>
-                <runtime-relative-path>ext/maven/lucene-highlighter-5.5.3.jar</runtime-relative-path>
-                <binary-origin>external/lucene-highlighter-5.5.3.jar</binary-origin>
+                <runtime-relative-path>ext/maven/lucene-highlighter-5.5.5.jar</runtime-relative-path>
+                <binary-origin>external/lucene-highlighter-5.5.5.jar</binary-origin>
             </class-path-extension>
             <class-path-extension>
-                <runtime-relative-path>ext/maven/lucene-queryparser-5.5.3.jar</runtime-relative-path>
-                <binary-origin>external/lucene-queryparser-5.5.3.jar</binary-origin>
+                <runtime-relative-path>ext/maven/lucene-queryparser-5.5.5.jar</runtime-relative-path>
+                <binary-origin>external/lucene-queryparser-5.5.5.jar</binary-origin>
             </class-path-extension>
             <class-path-extension>
-                <runtime-relative-path>ext/maven/lucene-analyzers-common-5.5.3.jar</runtime-relative-path>
-                <binary-origin>external/lucene-analyzers-common-5.5.3.jar</binary-origin>
+                <runtime-relative-path>ext/maven/lucene-analyzers-common-5.5.5.jar</runtime-relative-path>
+                <binary-origin>external/lucene-analyzers-common-5.5.5.jar</binary-origin>
             </class-path-extension>
             <class-path-extension>
                 <runtime-relative-path>ext/maven/javax.annotation-api-1.2.jar</runtime-relative-path>

-- 
To stop receiving notification emails like this one, please contact
matthiasblaesing@apache.org.

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@netbeans.apache.org
For additional commands, e-mail: commits-help@netbeans.apache.org

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists


[incubator-netbeans] 06/06: Merge branch 'licenses_backport' into release90

Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

matthiasblaesing pushed a commit to branch release90
in repository https://gitbox.apache.org/repos/asf/incubator-netbeans.git

commit ea59d3e158e34c2d515f63cba361a089bb458312
Merge: fc01343 786df5a
Author: Matthias Bläsing <mb...@doppel-helix.eu>
AuthorDate: Sun Jun 17 19:53:23 2018 +0200

    Merge branch 'licenses_backport' into release90
    
    Backport license fixes. Review was done via PR #590 and PR #593

 apisupport.harness/external/bindex-2.2-license.txt |   27 +-
 apisupport.harness/external/bindex-2.2-notice.txt  |    7 +
 extexecution.process/build.xml                     |   43 -
 extexecution.process/external/binaries-list        |    2 +-
 ...4-patched-license.txt => winp-1.26-license.txt} |   21 +-
 extexecution.process/external/winp.patch           |   31 -
 extexecution.process/nbproject/project.properties  |    2 +-
 extexecution.process/nbproject/project.xml         |    4 +-
 .../spring-framework-3.2.7.RELEASE-notice.txt      |    2 +
 .../spring-framework-4.0.1.RELEASE-notice.txt      |    2 +
 libs.testng/external/testng-6.8.1-dist-license.txt |   35 +-
 libs.testng/external/testng-6.8.1-dist-notice.txt  |    4 +
 maven.indexer/build.xml                            |   18 -
 .../external/NOTICE-patched-indexer-core-6.0.0     |    6 -
 maven.indexer/external/binaries-list               |   10 +-
 ...-license.txt => indexer-core-6.0.0-license.txt} |    2 +-
 .../external/indexer-core-6.0.0-notice.txt         |    5 +
 ...-5.5.3-license.txt => lucene-5.5.5-license.txt} |    4 +-
 ...ne-5.5.3-notice.txt => lucene-5.5.5-notice.txt} |    0
 maven.indexer/external/mvn-indexer.patch           | 1617 --------------------
 maven.indexer/nbproject/project.properties         |   10 +-
 maven.indexer/nbproject/project.xml                |   20 +-
 .../licenses/Apache-2.0+MIT+testng                 |   39 +-
 .../licenses/Apache-2.0+MIT-Bindex                 |   30 +-
 .../licenses/MIT-winp                              |   20 +-
 25 files changed, 179 insertions(+), 1782 deletions(-)

-- 
To stop receiving notification emails like this one, please contact
matthiasblaesing@apache.org.

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@netbeans.apache.org
For additional commands, e-mail: commits-help@netbeans.apache.org

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists


[incubator-netbeans] 03/06: [NETBEANS-824] Correct license for BIndex

Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

matthiasblaesing pushed a commit to branch release90
in repository https://gitbox.apache.org/repos/asf/incubator-netbeans.git

commit f64da9b15ca5f2a60a1648a05cc6339347d65591
Author: Matthias Bläsing <mb...@doppel-helix.eu>
AuthorDate: Wed Jun 13 23:08:07 2018 +0200

    [NETBEANS-824] Correct license for BIndex
    
    BIndex contains a small XML parser, that is MIT licensed, so the license
    file was completed with that information.
    
    The NOTICE file itself is mostly empty, but references an about file, that
    describes the licensing situation and contains a notice about trademarks. The
    latter part was extracted and included as a notice.
---
 apisupport.harness/external/bindex-2.2-license.txt | 27 ++++++++++++++++++-
 apisupport.harness/external/bindex-2.2-notice.txt  |  7 +++++
 .../licenses/Apache-2.0+MIT-Bindex                 | 30 +++++++++++++++++-----
 3 files changed, 57 insertions(+), 7 deletions(-)

diff --git a/apisupport.harness/external/bindex-2.2-license.txt b/apisupport.harness/external/bindex-2.2-license.txt
index 09cf122..26570d7 100644
--- a/apisupport.harness/external/bindex-2.2-license.txt
+++ b/apisupport.harness/external/bindex-2.2-license.txt
@@ -1,10 +1,35 @@
 Name: BIndex
 Version: 2.2
-License: Apache-2.0
+License: Apache-2.0+MIT-Bindex
 Description: OSGi bundle repository indexer.
 Origin: OSGi
 URL: http://www.osgi.org/Repository/BIndex
 
+Parts of this work are licensed:
+
+Copyright (c) 2002,2003, Stefan Haustein, Oberhausen, Rhld., Germany
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or
+sell copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The  above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+IN THE SOFTWARE.
+
+
+Parts of this work are licensed:
+
                                  Apache License
                            Version 2.0, January 2004
                         http://www.apache.org/licenses/
diff --git a/apisupport.harness/external/bindex-2.2-notice.txt b/apisupport.harness/external/bindex-2.2-notice.txt
new file mode 100644
index 0000000..d324648
--- /dev/null
+++ b/apisupport.harness/external/bindex-2.2-notice.txt
@@ -0,0 +1,7 @@
+OSGi OBR BIndex Program
+
+OSGi™ is a trademark, registered trademark, or service mark of The OSGi Alliance
+in the US and other countries. Java™ is a trademark, registered trademark, or
+service mark of Sun Microsystems, Inc. in the US and other countries. All other
+trademarks, registered trademarks, or service marks used in the Content are the
+property of their respective owners and are hereby recognized.
\ No newline at end of file
diff --git a/apisupport.harness/external/bindex-2.2-license.txt b/nbbuild/licenses/Apache-2.0+MIT-Bindex
similarity index 90%
copy from apisupport.harness/external/bindex-2.2-license.txt
copy to nbbuild/licenses/Apache-2.0+MIT-Bindex
index 09cf122..3148ca7 100644
--- a/apisupport.harness/external/bindex-2.2-license.txt
+++ b/nbbuild/licenses/Apache-2.0+MIT-Bindex
@@ -1,9 +1,27 @@
-Name: BIndex
-Version: 2.2
-License: Apache-2.0
-Description: OSGi bundle repository indexer.
-Origin: OSGi
-URL: http://www.osgi.org/Repository/BIndex
+Parts of this work are licensed:
+
+Copyright (c) 2002,2003, Stefan Haustein, Oberhausen, Rhld., Germany
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or
+sell copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The  above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+IN THE SOFTWARE.
+
+
+Parts of this work are licensed:
 
                                  Apache License
                            Version 2.0, January 2004

-- 
To stop receiving notification emails like this one, please contact
matthiasblaesing@apache.org.

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@netbeans.apache.org
For additional commands, e-mail: commits-help@netbeans.apache.org

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists


[incubator-netbeans] 05/06: [NETBEANS-848] Update license info for testng

Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

matthiasblaesing pushed a commit to branch release90
in repository https://gitbox.apache.org/repos/asf/incubator-netbeans.git

commit 786df5acb6cee47a1a68aa7637ac6ffcf744d252
Author: Matthias Bläsing <mb...@doppel-helix.eu>
AuthorDate: Thu Jun 14 20:15:05 2018 +0200

    [NETBEANS-848] Update license info for testng
---
 libs.testng/external/testng-6.8.1-dist-license.txt | 35 ++++++++++++++++++-
 libs.testng/external/testng-6.8.1-dist-notice.txt  |  4 +++
 .../licenses/Apache-2.0+MIT+testng                 | 39 ++++++++++++++++++----
 3 files changed, 70 insertions(+), 8 deletions(-)

diff --git a/libs.testng/external/testng-6.8.1-dist-license.txt b/libs.testng/external/testng-6.8.1-dist-license.txt
index 58a0b43..b9cb045 100644
--- a/libs.testng/external/testng-6.8.1-dist-license.txt
+++ b/libs.testng/external/testng-6.8.1-dist-license.txt
@@ -1,11 +1,44 @@
 Name: TestNG
 Version: 6.8.1
 Description: Java testing framework.
-License: Apache-2.0
+License: Apache-2.0+MIT+testng
 Origin: TestNG
 URL: http://testng.org/doc/download.html
 Files: testng-6.8.1-dist.jar, testng-6.8.1-javadoc.zip
 
+Parts of this work are licensed:
+
+The MIT License (MIT)
+
+Copyright 2011, John Resig
+Dual licensed under the MIT or GPL Version 2 licenses.
+http://jquery.org/license
+
+Includes Sizzle.js
+http://sizzlejs.com/
+Copyright 2011, The Dojo Foundation
+Released under the MIT, BSD, and GPL Licenses.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+the Software, and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+
+Parts of this work are licensed:
+
                                 Apache License
                            Version 2.0, January 2004
                         http://www.apache.org/licenses/
diff --git a/libs.testng/external/testng-6.8.1-dist-notice.txt b/libs.testng/external/testng-6.8.1-dist-notice.txt
new file mode 100644
index 0000000..736c867
--- /dev/null
+++ b/libs.testng/external/testng-6.8.1-dist-notice.txt
@@ -0,0 +1,4 @@
+JCommander Copyright Notices 
+============================
+
+Copyright 2010 Cedric Beust <ce...@beust.com>
\ No newline at end of file
diff --git a/libs.testng/external/testng-6.8.1-dist-license.txt b/nbbuild/licenses/Apache-2.0+MIT+testng
similarity index 89%
copy from libs.testng/external/testng-6.8.1-dist-license.txt
copy to nbbuild/licenses/Apache-2.0+MIT+testng
index 58a0b43..17898e0 100644
--- a/libs.testng/external/testng-6.8.1-dist-license.txt
+++ b/nbbuild/licenses/Apache-2.0+MIT+testng
@@ -1,10 +1,35 @@
-Name: TestNG
-Version: 6.8.1
-Description: Java testing framework.
-License: Apache-2.0
-Origin: TestNG
-URL: http://testng.org/doc/download.html
-Files: testng-6.8.1-dist.jar, testng-6.8.1-javadoc.zip
+Parts of this work are licensed:
+
+The MIT License (MIT)
+
+Copyright 2011, John Resig
+Dual licensed under the MIT or GPL Version 2 licenses.
+http://jquery.org/license
+
+Includes Sizzle.js
+http://sizzlejs.com/
+Copyright 2011, The Dojo Foundation
+Released under the MIT, BSD, and GPL Licenses.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+the Software, and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+
+Parts of this work are licensed:
 
                                 Apache License
                            Version 2.0, January 2004

-- 
To stop receiving notification emails like this one, please contact
matthiasblaesing@apache.org.

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@netbeans.apache.org
For additional commands, e-mail: commits-help@netbeans.apache.org

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists