Simplified code

Project: http://git-wip-us.apache.org/repos/asf/maven-aether/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven-aether/commit/cbcde593
Tree: http://git-wip-us.apache.org/repos/asf/maven-aether/tree/cbcde593
Diff: http://git-wip-us.apache.org/repos/asf/maven-aether/diff/cbcde593

Branch: refs/heads/master
Commit: cbcde59357d3dbce018bc5596a92f854ca7226d9
Parents: c2b1c3d
Author: Benjamin Bentmann <bentm...@sonatype.com>
Authored: Sat Jun 21 21:26:27 2014 +0200
Committer: Benjamin Bentmann <bentm...@sonatype.com>
Committed: Sat Jun 21 21:26:27 2014 +0200

----------------------------------------------------------------------
 .../eclipse/aether/internal/impl/DataPool.java  | 35 +++++---------------
 .../impl/DefaultDependencyCollector.java        |  2 +-
 .../aether/internal/impl/ObjectPool.java        | 20 ++++++-----
 3 files changed, 20 insertions(+), 37 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven-aether/blob/cbcde593/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DataPool.java
----------------------------------------------------------------------
diff --git 
a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DataPool.java 
b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DataPool.java
index 545aa49..3da5e60 100644
--- a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DataPool.java
+++ b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DataPool.java
@@ -1,5 +1,5 @@
 
/*******************************************************************************
- * Copyright (c) 2010, 2013 Sonatype, Inc.
+ * Copyright (c) 2010, 2014 Sonatype, Inc.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -41,18 +41,14 @@ import org.eclipse.aether.version.VersionConstraint;
 final class DataPool
 {
 
-    private static final String ARTIFACT_POOL = DataPool.class.getName() + 
"$Artifact";
-
-    private static final String DEPENDENCY_POOL = DataPool.class.getName() + 
"$Dependency";
+    private static final String OBJECT_POOL = DataPool.class.getName() + 
"$Objects";
 
     private static final String DESCRIPTORS = DataPool.class.getName() + 
"$Descriptors";
 
     public static final ArtifactDescriptorResult NO_DESCRIPTOR =
         new ArtifactDescriptorResult( new ArtifactDescriptorRequest() );
 
-    private ObjectPool<Artifact> artifacts;
-
-    private ObjectPool<Dependency> dependencies;
+    private ObjectPool objectPool;
 
     private Map<Object, Descriptor> descriptors;
 
@@ -67,26 +63,16 @@ final class DataPool
 
         if ( cache != null )
         {
-            artifacts = (ObjectPool<Artifact>) cache.get( session, 
ARTIFACT_POOL );
-            dependencies = (ObjectPool<Dependency>) cache.get( session, 
DEPENDENCY_POOL );
+            objectPool = (ObjectPool) cache.get( session, OBJECT_POOL );
             descriptors = (Map<Object, Descriptor>) cache.get( session, 
DESCRIPTORS );
         }
 
-        if ( artifacts == null )
+        if ( objectPool == null )
         {
-            artifacts = new ObjectPool<Artifact>();
+            objectPool = new ObjectPool();
             if ( cache != null )
             {
-                cache.put( session, ARTIFACT_POOL, artifacts );
-            }
-        }
-
-        if ( dependencies == null )
-        {
-            dependencies = new ObjectPool<Dependency>();
-            if ( cache != null )
-            {
-                cache.put( session, DEPENDENCY_POOL, dependencies );
+                cache.put( session, OBJECT_POOL, objectPool );
             }
         }
 
@@ -100,14 +86,9 @@ final class DataPool
         }
     }
 
-    public Artifact intern( Artifact artifact )
-    {
-        return artifacts.intern( artifact );
-    }
-
     public Dependency intern( Dependency dependency )
     {
-        return dependencies.intern( dependency );
+        return objectPool.intern( dependency );
     }
 
     public Object toKey( ArtifactDescriptorRequest request )

http://git-wip-us.apache.org/repos/asf/maven-aether/blob/cbcde593/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultDependencyCollector.java
----------------------------------------------------------------------
diff --git 
a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultDependencyCollector.java
 
b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultDependencyCollector.java
index 404897c..28770c1 100644
--- 
a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultDependencyCollector.java
+++ 
b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultDependencyCollector.java
@@ -441,7 +441,7 @@ public class DefaultDependencyCollector
                 }
                 else
                 {
-                    d = args.pool.intern( d.setArtifact( args.pool.intern( 
d.getArtifact() ) ) );
+                    d = args.pool.intern( d );
 
                     List<RemoteRepository> repos =
                         getRemoteRepositories( rangeResult.getRepository( 
version ), repositories );

http://git-wip-us.apache.org/repos/asf/maven-aether/blob/cbcde593/aether-impl/src/main/java/org/eclipse/aether/internal/impl/ObjectPool.java
----------------------------------------------------------------------
diff --git 
a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/ObjectPool.java 
b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/ObjectPool.java
index acbf055..bdf0909 100644
--- a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/ObjectPool.java
+++ b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/ObjectPool.java
@@ -1,5 +1,5 @@
 
/*******************************************************************************
- * Copyright (c) 2010, 2011 Sonatype, Inc.
+ * Copyright (c) 2010, 2014 Sonatype, Inc.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -15,29 +15,31 @@ import java.lang.ref.WeakReference;
 import java.util.Map;
 import java.util.WeakHashMap;
 
+import org.eclipse.aether.graph.Dependency;
+
 /**
  * Pool of immutable object instances, used to avoid excessive memory 
consumption of (dirty) dependency graph which
  * tends to have many duplicate artifacts/dependencies.
  */
-class ObjectPool<T>
+final class ObjectPool
 {
 
-    private final Map<Object, Reference<T>> objects = new WeakHashMap<Object, 
Reference<T>>( 256 );
+    private final Map<Object, Reference<Dependency>> dependencies =
+        new WeakHashMap<Object, Reference<Dependency>>( 256 );
 
-    public synchronized T intern( T object )
+    public synchronized Dependency intern( Dependency dependency )
     {
-        Reference<T> pooledRef = objects.get( object );
+        Reference<Dependency> pooledRef = dependencies.get( dependency );
         if ( pooledRef != null )
         {
-            T pooled = pooledRef.get();
+            Dependency pooled = pooledRef.get();
             if ( pooled != null )
             {
                 return pooled;
             }
         }
-
-        objects.put( object, new WeakReference<T>( object ) );
-        return object;
+        dependencies.put( dependency, new WeakReference<Dependency>( 
dependency ) );
+        return dependency;
     }
 
 }

Reply via email to