You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by mb...@apache.org on 2018/08/03 00:24:56 UTC

[commons-weaver] branch master updated (9a35449 -> 74d1f65)

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

mbenson pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/commons-weaver.git.


    from 9a35449  updates in preparation of a 1.4 release
     new ba7c4b2  diamond
     new 3adac28  code simplifications made possible with Java 8
     new 74d1f65  code simplifications made possible with Java 8; additional null-safe method override

The 3 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:
 .../apache/commons/weaver/model/WeavableClass.java | 27 ++++++----------------
 .../commons/weaver/model/WeavableConstructor.java  |  2 +-
 .../commons/weaver/model/WeavablePackage.java      | 26 ++++++++++++---------
 3 files changed, 23 insertions(+), 32 deletions(-)


[commons-weaver] 03/03: code simplifications made possible with Java 8; additional null-safe method override

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

mbenson pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-weaver.git

commit 74d1f65274f5c47e4b7ff554df5ad23bcd9a5992
Author: Matt Benson <mb...@apache.org>
AuthorDate: Thu Aug 2 19:24:53 2018 -0500

    code simplifications made possible with Java 8; additional null-safe method override
---
 .../commons/weaver/model/WeavablePackage.java      | 26 +++++++++++++---------
 1 file changed, 15 insertions(+), 11 deletions(-)

diff --git a/processor/src/main/java/org/apache/commons/weaver/model/WeavablePackage.java b/processor/src/main/java/org/apache/commons/weaver/model/WeavablePackage.java
index e789a5f..fe324f4 100644
--- a/processor/src/main/java/org/apache/commons/weaver/model/WeavablePackage.java
+++ b/processor/src/main/java/org/apache/commons/weaver/model/WeavablePackage.java
@@ -27,7 +27,8 @@ import java.util.concurrent.ConcurrentSkipListMap;
  * {@link Weavable} {@link Package}.
  */
 public class WeavablePackage extends Weavable<WeavablePackage, Package> {
-    private static final Comparator<WeavablePackage> CMP = Comparator.nullsFirst(Comparator.comparing(WeavablePackage::getTarget, Comparator.nullsFirst(Comparator.comparing(Package::getName))));
+    private static final Comparator<WeavablePackage> CMP = Comparator.nullsFirst(Comparator
+        .comparing(WeavablePackage::getTarget, Comparator.nullsFirst(Comparator.comparing(Package::getName))));
 
     private final ConcurrentNavigableMap<String, WeavableClass<?>> clazzes = new ConcurrentSkipListMap<>();
 
@@ -45,17 +46,9 @@ public class WeavablePackage extends Weavable<WeavablePackage, Package> {
      * @param <T> generic type of {@code cls}
      * @return {@link WeavableClass}
      */
+    @SuppressWarnings("unchecked")
     public synchronized <T> WeavableClass<T> getWeavable(final Class<T> cls) {
-        final String key = cls.getName();
-        if (clazzes.containsKey(key)) {
-            @SuppressWarnings("unchecked")
-            final WeavableClass<T> result = (WeavableClass<T>) clazzes.get(key);
-            return result;
-        }
-        final WeavableClass<T> result = new WeavableClass<>(cls, this);
-        @SuppressWarnings("unchecked")
-        final WeavableClass<T> faster = (WeavableClass<T>) clazzes.putIfAbsent(key, result);
-        return faster == null ? result : faster;
+        return (WeavableClass<T>) clazzes.computeIfAbsent(cls.getName(), k -> new WeavableClass<>(cls, this));
     }
 
     /**
@@ -75,4 +68,15 @@ public class WeavablePackage extends Weavable<WeavablePackage, Package> {
     public int compareTo(final WeavablePackage arg0) {
         return CMP.compare(this, arg0);
     }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public String toString() {
+        if (getTarget() == null) {
+            return "Weavable default package";
+        }
+        return super.toString();
+    }
 }


[commons-weaver] 02/03: code simplifications made possible with Java 8

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

mbenson pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-weaver.git

commit 3adac28baaca2d7153a0aa83e36fd06c9ec0d2ab
Author: Matt Benson <mb...@apache.org>
AuthorDate: Thu Aug 2 19:24:17 2018 -0500

    code simplifications made possible with Java 8
---
 .../apache/commons/weaver/model/WeavableClass.java | 27 ++++++----------------
 1 file changed, 7 insertions(+), 20 deletions(-)

diff --git a/processor/src/main/java/org/apache/commons/weaver/model/WeavableClass.java b/processor/src/main/java/org/apache/commons/weaver/model/WeavableClass.java
index 9d78a7a..308b23d 100644
--- a/processor/src/main/java/org/apache/commons/weaver/model/WeavableClass.java
+++ b/processor/src/main/java/org/apache/commons/weaver/model/WeavableClass.java
@@ -22,6 +22,7 @@ import java.lang.reflect.Constructor;
 import java.lang.reflect.Field;
 import java.lang.reflect.Method;
 import java.util.Collections;
+import java.util.Comparator;
 import java.util.concurrent.ConcurrentNavigableMap;
 import java.util.concurrent.ConcurrentSkipListMap;
 
@@ -33,6 +34,8 @@ import org.apache.commons.weaver.utils.Args;
  * @param <T> type
  */
 public class WeavableClass<T> extends NestedWeavable<WeavableClass<T>, Class<T>, WeavablePackage, Package> {
+    private static final Comparator<Class<?>> CLASS_COMPARATOR = Comparator.comparing(Class::getName);
+
     private final ConcurrentNavigableMap<String, WeavableField<T>> fields = new ConcurrentSkipListMap<>();
 
     private final ConcurrentNavigableMap<Constructor<T>, WeavableConstructor<T>> ctors = new ConcurrentSkipListMap<>(
@@ -59,13 +62,7 @@ public class WeavableClass<T> extends NestedWeavable<WeavableClass<T>, Class<T>,
      * @return {@link WeavableField}
      */
     public WeavableField<T> getWeavable(final Field fld) {
-        final String key = fld.getName();
-        if (fields.containsKey(key)) {
-            return fields.get(key);
-        }
-        final WeavableField<T> result = new WeavableField<>(fld, this);
-        final WeavableField<T> faster = fields.putIfAbsent(key, result);
-        return faster == null ? result : faster;
+        return fields.computeIfAbsent(fld.getName(), k -> new WeavableField<>(fld, this));
     }
 
     /**
@@ -74,12 +71,7 @@ public class WeavableClass<T> extends NestedWeavable<WeavableClass<T>, Class<T>,
      * @return {@link WeavableMethod}
      */
     public WeavableMethod<T> getWeavable(final Method methd) {
-        if (methods.containsKey(methd)) {
-            return methods.get(methd);
-        }
-        final WeavableMethod<T> result = new WeavableMethod<>(methd, this);
-        final WeavableMethod<T> faster = methods.putIfAbsent(methd, result);
-        return faster == null ? result : faster;
+        return methods.computeIfAbsent(methd, k -> new WeavableMethod<>(methd, this));
     }
 
     /**
@@ -88,12 +80,7 @@ public class WeavableClass<T> extends NestedWeavable<WeavableClass<T>, Class<T>,
      * @return {@link WeavableConstructor}
      */
     public WeavableConstructor<T> getWeavable(final Constructor<T> ctor) {
-        if (ctors.containsKey(ctor)) {
-            return ctors.get(ctor);
-        }
-        final WeavableConstructor<T> result = new WeavableConstructor<>(ctor, this);
-        final WeavableConstructor<T> faster = ctors.putIfAbsent(ctor, result);
-        return faster == null ? result : faster;
+        return ctors.computeIfAbsent(ctor, k -> new WeavableConstructor<>(ctor, this));
     }
 
     /**
@@ -125,6 +112,6 @@ public class WeavableClass<T> extends NestedWeavable<WeavableClass<T>, Class<T>,
      */
     @Override
     protected int localCompareTo(final WeavableClass<T> obj) {
-        return getTarget().getName().compareTo(obj.getTarget().getName());
+        return obj == null ? 1 : CLASS_COMPARATOR.compare(getTarget(), obj.getTarget());
     }
 }


[commons-weaver] 01/03: diamond

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

mbenson pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-weaver.git

commit ba7c4b250028e72446d7dc27dad92f85ffe7cba3
Author: Matt Benson <mb...@apache.org>
AuthorDate: Thu Aug 2 19:23:16 2018 -0500

    diamond
---
 .../main/java/org/apache/commons/weaver/model/WeavableConstructor.java  | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/processor/src/main/java/org/apache/commons/weaver/model/WeavableConstructor.java b/processor/src/main/java/org/apache/commons/weaver/model/WeavableConstructor.java
index 1a75c7b..2f78da2 100644
--- a/processor/src/main/java/org/apache/commons/weaver/model/WeavableConstructor.java
+++ b/processor/src/main/java/org/apache/commons/weaver/model/WeavableConstructor.java
@@ -50,6 +50,6 @@ public class WeavableConstructor<T> extends
      */
     @Override
     protected WeavableConstructorParameter<T> createParameter(final int index) {
-        return new WeavableConstructorParameter<T>(Integer.valueOf(index), this);
+        return new WeavableConstructorParameter<>(Integer.valueOf(index), this);
     }
 }