https://builds.apache.org/job/tapestry-trunk-freestyle/ws/tapestry-core/build/reports/tests/index.html
shows the error as:

    Page did not contain 'Oscar' -- from TreeTests.groovy line 66.

On Fri, Nov 2, 2012 at 10:57 AM, Kalle Korhonen
<kalle.o.korho...@gmail.com> wrote:
> 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
>>
>>

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

Reply via email to