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

mbien pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/netbeans.git


The following commit(s) were added to refs/heads/master by this push:
     new b34a0b3662 Better transient maven repo deduplication.
     new 2bd51e8d55 Merge pull request #6757 from 
mbien/better-transitive-repo-deduplication
b34a0b3662 is described below

commit b34a0b3662fe4e1d0c73212465a2522b01326776
Author: Michael Bien <mbie...@gmail.com>
AuthorDate: Tue Nov 28 15:24:59 2023 +0100

    Better transient maven repo deduplication.
    
    Transient repos are added and removed based on what projects are open.
    NB does some deduplication since projects may define the same repo
    with a different ID or URL. This works fine until projects are closed
    and there is nothing to deduplicate anymore - NB might think that
    a repo is now new and index it again under a different ID.
    
    this PR makes two changes:
     - repo1.maven.org is now tracked as repo.maven.apache.org
     - remote repos are registered in the services view once fully indexed,
       this makes them no longer transient
---
 .../modules/maven/indexer/NexusRepositoryIndexerImpl.java     |  4 ++++
 .../modules/maven/indexer/api/RepositoryPreferences.java      | 11 ++++++-----
 2 files changed, 10 insertions(+), 5 deletions(-)

diff --git 
a/java/maven.indexer/src/org/netbeans/modules/maven/indexer/NexusRepositoryIndexerImpl.java
 
b/java/maven.indexer/src/org/netbeans/modules/maven/indexer/NexusRepositoryIndexerImpl.java
index 2402b12e48..b62b68c6ef 100644
--- 
a/java/maven.indexer/src/org/netbeans/modules/maven/indexer/NexusRepositoryIndexerImpl.java
+++ 
b/java/maven.indexer/src/org/netbeans/modules/maven/indexer/NexusRepositoryIndexerImpl.java
@@ -569,6 +569,10 @@ public class NexusRepositoryIndexerImpl implements 
RepositoryIndexerImplementati
                         removeGroupCache(repo);
                         fetchUpdateResult = 
remoteIndexUpdater.fetchAndUpdateIndex(iur);
                         storeGroupCache(repo, indexingContext);
+                        // register indexed repo in services view
+                        if (fetchUpdateResult.isFullUpdate() && 
fetchUpdateResult.isSuccessful()) {
+                            
RepositoryPreferences.getInstance().addOrModifyRepositoryInfo(repo);
+                        }
                     } catch (IOException | AlreadyClosedException | 
IllegalArgumentException ex) {
                         // AlreadyClosedException can happen in low storage 
situations when lucene is trying to handle IOEs
                         // IllegalArgumentException signals remote archive 
format problems
diff --git 
a/java/maven.indexer/src/org/netbeans/modules/maven/indexer/api/RepositoryPreferences.java
 
b/java/maven.indexer/src/org/netbeans/modules/maven/indexer/api/RepositoryPreferences.java
index 804a9ecbb4..ed7874e2ea 100644
--- 
a/java/maven.indexer/src/org/netbeans/modules/maven/indexer/api/RepositoryPreferences.java
+++ 
b/java/maven.indexer/src/org/netbeans/modules/maven/indexer/api/RepositoryPreferences.java
@@ -80,6 +80,7 @@ public final class RepositoryPreferences {
     private static final String PROP_INDEX_DOWNLOAD_PERMISSIONS = 
"indexDownloadPermissions"; //NOI18N
     public static final String PROP_MT_INDEX_EXTRACTION = 
"indexMultiThreadedExtraction"; //NOI18N
     public static final String PROP_INDEX_DATE_CUTOFF_FILTER = 
"indexDateCotoffFilter"; //NOI18N
+    private static final String ALT_CENTRAL_URL = 
"https://repo1.maven.org/maven2";; //NOI18N
 
     public static final int FREQ_ONCE_WEEK = 0;
     public static final int FREQ_ONCE_DAY = 1;
@@ -545,12 +546,12 @@ public final class RepositoryPreferences {
             //only register repositories we can safely handle.. #227322
             return;
         }
+        if (url.equals(ALT_CENTRAL_URL) || url.equals(ALT_CENTRAL_URL+"/")) {
+            // map to primary URL to avoid duplicates
+            url = RepositorySystem.DEFAULT_REMOTE_REPO_URL;
+        }
         synchronized (infoCache) {
-            List<RepositoryInfo> infos = transients.get(key);
-            if (infos == null) {
-                infos = new ArrayList<>();
-                transients.put(key, infos);
-            }
+            List<RepositoryInfo> infos = transients.computeIfAbsent(key, k -> 
new ArrayList<>());
             RepositoryInfo info = new RepositoryInfo(id, displayName, null, 
url);
             info.setMirrorStrategy(strategy);
             infos.add(info);


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

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

Reply via email to