On Fri, Nov 2, 2012 at 1:20 AM, Ulrich Stärk <u...@spielviel.de> wrote:

> Please also fix the build ;)
> Uli
>

I couldn't access builds.apache.org (502 or the requests never complete). I
added one test and all ioc tests pass on my machine. I'm not quite sure how
the addition would break the build or is it just the suite is unreliable?

Kalle


>
> On 02.11.2012 03:28, kao...@apache.org wrote:
> > Updated Branches:
> >   refs/heads/master 015816ed4 -> b108e06f4
> >
> >
> > FIXED - TAP5-2022: Add PropertyAccess.getAnnotation
> > - implement convenience for
> > PropertyAccess.getAdapter().getPropertyAdapter().getAnnotation()
> >
> >
> > Project: http://git-wip-us.apache.org/repos/asf/tapestry-5/repo
> > Commit:
> http://git-wip-us.apache.org/repos/asf/tapestry-5/commit/b108e06f
> > Tree: http://git-wip-us.apache.org/repos/asf/tapestry-5/tree/b108e06f
> > Diff: http://git-wip-us.apache.org/repos/asf/tapestry-5/diff/b108e06f
> >
> > Branch: refs/heads/master
> > Commit: b108e06f4b633d77461dda220a07016ee806c0c7
> > Parents: 015816e
> > Author: Kalle Korhonen <kao...@apache.org>
> > Authored: Thu Nov 1 19:28:25 2012 -0700
> > Committer: Kalle Korhonen <kao...@apache.org>
> > Committed: Thu Nov 1 19:28:25 2012 -0700
> >
> > ----------------------------------------------------------------------
> >  .../services/ClassPropertyAdapterImpl.java         |   15 ++++++---
> >  .../ioc/internal/services/PropertyAccessImpl.java  |   14 ++++++--
> >  .../ioc/services/ClassPropertyAdapter.java         |   14 ++++++++
> >  .../tapestry5/ioc/services/PropertyAccess.java     |   20 +++++++++++-
> >  .../groovy/ioc/specs/PropertyAccessImplSpec.groovy |   24
> +++++++++++----
> >  5 files changed, 70 insertions(+), 17 deletions(-)
> > ----------------------------------------------------------------------
> >
> >
> >
> http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/b108e06f/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/services/ClassPropertyAdapterImpl.java
> > ----------------------------------------------------------------------
> > diff --git
> a/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/services/ClassPropertyAdapterImpl.java
> b/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/services/ClassPropertyAdapterImpl.java
> > index b96a0c2..7da0728 100644
> > ---
> a/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/services/ClassPropertyAdapterImpl.java
> > +++
> b/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/services/ClassPropertyAdapterImpl.java
> > @@ -14,18 +14,19 @@
> >
> >  package org.apache.tapestry5.ioc.internal.services;
> >
> > -import org.apache.tapestry5.ioc.internal.util.GenericsUtils;
> > -import org.apache.tapestry5.ioc.internal.util.InternalUtils;
> > -import org.apache.tapestry5.ioc.services.ClassPropertyAdapter;
> > -import org.apache.tapestry5.ioc.services.PropertyAdapter;
> > +import static
> org.apache.tapestry5.ioc.internal.util.CollectionFactory.newCaseInsensitiveMap;
> >
> >  import java.beans.PropertyDescriptor;
> > +import java.lang.annotation.Annotation;
> >  import java.lang.reflect.Field;
> >  import java.lang.reflect.Method;
> >  import java.util.List;
> >  import java.util.Map;
> >
> > -import static
> org.apache.tapestry5.ioc.internal.util.CollectionFactory.newCaseInsensitiveMap;
> > +import org.apache.tapestry5.ioc.internal.util.GenericsUtils;
> > +import org.apache.tapestry5.ioc.internal.util.InternalUtils;
> > +import org.apache.tapestry5.ioc.services.ClassPropertyAdapter;
> > +import org.apache.tapestry5.ioc.services.PropertyAdapter;
> >
> >  public class ClassPropertyAdapterImpl implements ClassPropertyAdapter
> >  {
> > @@ -105,6 +106,10 @@ public class ClassPropertyAdapterImpl implements
> ClassPropertyAdapter
> >          adaptorFor(propertyName).set(instance, value);
> >      }
> >
> > +    public Annotation getAnnotation(Object instance, String
> propertyName, Class<? extends Annotation> annotationClass) {
> > +     return adaptorFor(propertyName).getAnnotation(annotationClass);
> > +    }
> > +
> >      private PropertyAdapter adaptorFor(String name)
> >      {
> >          PropertyAdapter pa = adapters.get(name);
> >
> >
> http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/b108e06f/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/services/PropertyAccessImpl.java
> > ----------------------------------------------------------------------
> > diff --git
> a/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/services/PropertyAccessImpl.java
> b/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/services/PropertyAccessImpl.java
> > index e37158b..5eb1b3c 100644
> > ---
> a/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/services/PropertyAccessImpl.java
> > +++
> b/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/services/PropertyAccessImpl.java
> > @@ -14,14 +14,11 @@
> >
> >  package org.apache.tapestry5.ioc.internal.services;
> >
> > -import org.apache.tapestry5.ioc.internal.util.CollectionFactory;
> > -import org.apache.tapestry5.ioc.services.ClassPropertyAdapter;
> > -import org.apache.tapestry5.ioc.services.PropertyAccess;
> > -
> >  import java.beans.BeanInfo;
> >  import java.beans.IntrospectionException;
> >  import java.beans.Introspector;
> >  import java.beans.PropertyDescriptor;
> > +import java.lang.annotation.Annotation;
> >  import java.lang.reflect.Method;
> >  import java.lang.reflect.Modifier;
> >  import java.util.Arrays;
> > @@ -29,6 +26,10 @@ import java.util.LinkedList;
> >  import java.util.List;
> >  import java.util.Map;
> >
> > +import org.apache.tapestry5.ioc.internal.util.CollectionFactory;
> > +import org.apache.tapestry5.ioc.services.ClassPropertyAdapter;
> > +import org.apache.tapestry5.ioc.services.PropertyAccess;
> > +
> >  @SuppressWarnings("unchecked")
> >  public class PropertyAccessImpl implements PropertyAccess
> >  {
> > @@ -44,6 +45,11 @@ public class PropertyAccessImpl implements
> PropertyAccess
> >          getAdapter(instance).set(instance, propertyName, value);
> >      }
> >
> > +    public Annotation getAnnotation(Object instance, String
> propertyName, Class<? extends Annotation> annotationClass) {
> > +     return getAdapter(instance).getAnnotation(instance, propertyName,
> annotationClass);
> > +    }
> > +
> > +
> >      /**
> >       * Clears the cache of adapters and asks the {@link Introspector}
> to clear its cache.
> >       */
> >
> >
> http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/b108e06f/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/services/ClassPropertyAdapter.java
> > ----------------------------------------------------------------------
> > diff --git
> a/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/services/ClassPropertyAdapter.java
> b/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/services/ClassPropertyAdapter.java
> > index 409a950..6159ed3 100644
> > ---
> a/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/services/ClassPropertyAdapter.java
> > +++
> b/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/services/ClassPropertyAdapter.java
> > @@ -14,6 +14,7 @@
> >
> >  package org.apache.tapestry5.ioc.services;
> >
> > +import java.lang.annotation.Annotation;
> >  import java.util.List;
> >
> >  /**
> > @@ -62,4 +63,17 @@ public interface ClassPropertyAdapter
> >       * @throws IllegalArgumentException      if property does not exist
> >       */
> >      void set(Object instance, String propertyName, Object value);
> > +
> > +    /**
> > +     * Returns the annotation of a given property for the specified
> type if such an annotation is present, else null.
> > +     *
> > +     * @param instance     the object to read a value from
> > +     * @param propertyName the name of the property to read (case is
> ignored)
> > +     * @param annotationClass the type of annotation to return
> > +     *
> > +     * @throws IllegalArgumentException      if property does not exist
> > +     *
> > +     * @since 5.4
> > +     */
> > +    Annotation getAnnotation(Object instance, String propertyName,
> Class<? extends Annotation> annotationClass);
> >  }
> >
> >
> http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/b108e06f/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/services/PropertyAccess.java
> > ----------------------------------------------------------------------
> > diff --git
> a/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/services/PropertyAccess.java
> b/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/services/PropertyAccess.java
> > index a7422d0..1a02a96 100644
> > ---
> a/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/services/PropertyAccess.java
> > +++
> b/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/services/PropertyAccess.java
> > @@ -14,6 +14,8 @@
> >
> >  package org.apache.tapestry5.ioc.services;
> >
> > +import java.lang.annotation.Annotation;
> > +
> >  /**
> >   * A wrapper around the JavaBean Introspector that allows more
> manageable access to JavaBean properties of objects.
> >   * <p/>
> > @@ -26,7 +28,7 @@ public interface PropertyAccess
> >  {
> >      /**
> >       * Reads the value of a property.
> > -     *
> > +     *
> >       * @throws UnsupportedOperationException
> >       *             if the property is write only
> >       * @throws IllegalArgumentException
> > @@ -36,7 +38,7 @@ public interface PropertyAccess
> >
> >      /**
> >       * Updates the value of a property.
> > -     *
> > +     *
> >       * @throws UnsupportedOperationException
> >       *             if the property is read only
> >       * @throws IllegalArgumentException
> > @@ -45,6 +47,20 @@ public interface PropertyAccess
> >      void set(Object instance, String propertyName, Object value);
> >
> >      /**
> > +     * Returns the annotation of a given property for the specified
> type if such an annotation is present, else null.
> > +     * A convenience over invoking {@link #getAdapter(Object)}.{@link
> #ClassPropertyAdapter.getPropertyAdapter(String)}.{@link
> #PropertyAdapter.getAnnotation(Class)}
> > +     *
> > +     * @param instance     the object to read a value from
> > +     * @param propertyName the name of the property to read (case is
> ignored)
> > +     * @param annotationClass the type of annotation to return
> > +     * @throws IllegalArgumentException
> > +     *             if property does not exist
> > +     *
> > +     * @since 5.4
> > +     */
> > +    Annotation getAnnotation(Object instance, String propertyName,
> Class<? extends Annotation> annotationClass);
> > +
> > +    /**
> >       * Returns the adapter for a particular object instance. A
> convienience over invoking {@link #getAdapter(Class)}.
> >       */
> >      ClassPropertyAdapter getAdapter(Object instance);
> >
> >
> http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/b108e06f/tapestry-ioc/src/test/groovy/ioc/specs/PropertyAccessImplSpec.groovy
> > ----------------------------------------------------------------------
> > diff --git
> a/tapestry-ioc/src/test/groovy/ioc/specs/PropertyAccessImplSpec.groovy
> b/tapestry-ioc/src/test/groovy/ioc/specs/PropertyAccessImplSpec.groovy
> > index 93a1459..f0ac187 100644
> > ---
> a/tapestry-ioc/src/test/groovy/ioc/specs/PropertyAccessImplSpec.groovy
> > +++
> b/tapestry-ioc/src/test/groovy/ioc/specs/PropertyAccessImplSpec.groovy
> > @@ -1,21 +1,20 @@
> >  package ioc.specs
> >
> > +import java.awt.Image
> > +import java.beans.*
> > +import java.lang.reflect.Method
> > +
> >  import org.apache.tapestry5.beaneditor.DataType
> >  import org.apache.tapestry5.beaneditor.Validate
> >  import org.apache.tapestry5.ioc.annotations.Scope
> > +import org.apache.tapestry5.ioc.internal.services.*
> >  import org.apache.tapestry5.ioc.internal.util.Pair
> >  import org.apache.tapestry5.ioc.internal.util.StringLongPair
> >  import org.apache.tapestry5.ioc.services.ClassPropertyAdapter
> >  import org.apache.tapestry5.ioc.services.PropertyAccess
> >
> > -import java.awt.Image
> > -import java.lang.reflect.Method
> > -
> > -import org.apache.tapestry5.ioc.internal.services.*
> >  import spock.lang.*
> >
> > -import java.beans.*
> > -
> >  class ExceptionBean {
> >
> >    boolean getFailure() {
> > @@ -438,6 +437,19 @@ class PropertyAccessImplSpec extends Specification {
> >      cpa.propertyNames == ["class", "primitiveProperty"]
> >    }
> >
> > +  def "getAnnotation from a bean property"() {
> > +    AnnotatedBean b = new AnnotatedBean()
> > +
> > +    when:
> > +
> > +    def annotation = access.getAnnotation(b, "annotationOnRead", Scope)
> > +
> > +    then:
> > +
> > +    annotation.value() == "onread"
> > +  }
> > +
> > +
> >    def "getAnnotation() when annotation is not present is null"() {
> >
> >      when:
> >
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@tapestry.apache.org
> For additional commands, e-mail: dev-h...@tapestry.apache.org
>
>

Reply via email to