That's great. I'll be able to cover 5.3 in the T5 in Action book. I'm almost done with JPA integration. Once finished, I'll concentrate on low hanging fruits.
On Sun, May 22, 2011 at 9:32 PM, Howard Lewis Ship <hls...@gmail.com> wrote: > I've committed *most of* TAP5-1528. Still to come is some work to > copy resource files over to output directory, and some cleanups of > existing components. Also, find a way to make it a little prettier. > > Due to limitations of the JavaDoc tool, it will be necessary to add > @tapestrydoc to components to get their documentation generated. > > I feel we are closing in on an alpha release. > > I would like to remove tapestry-component-report (as it is Maven only, > while the new tapestry-javadoc is universal). > > I still want to support the Maven archetype, but will be looking for a > way to have a Gradle script generate it. This may not make it into the > first alpha release. > > What's on other's hit lists for the first alpha release, and on 5.3 in > general? > > > ---------- Forwarded message ---------- > From: <hls...@apache.org> > Date: Sun, May 22, 2011 at 12:09 PM > Subject: svn commit: r1126178 - in /tapestry/tapestry5/trunk: > tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/ > tapestry-javadoc/src/main/java/org/apache/tapestry5/javadoc/ > To: comm...@tapestry.apache.org > > > Author: hlship > Date: Sun May 22 19:09:39 2011 > New Revision: 1126178 > > URL: http://svn.apache.org/viewvc?rev=1126178&view=rev > Log: > TAP5-1528: Resolve published parameters from embedded components > > Added: > > > tapestry/tapestry5/trunk/tapestry-javadoc/src/main/java/org/apache/tapestry5/javadoc/ClassDescriptionSource.java > Modified: > > > tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/BeanEditForm.java > > > tapestry/tapestry5/trunk/tapestry-javadoc/src/main/java/org/apache/tapestry5/javadoc/ClassDescription.java > > > tapestry/tapestry5/trunk/tapestry-javadoc/src/main/java/org/apache/tapestry5/javadoc/TapestryDocTaglet.java > > Modified: > tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/BeanEditForm.java > URL: > http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/BeanEditForm.java?rev=1126178&r1=1126177&r2=1126178&view=diff > > ============================================================================== > --- > tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/BeanEditForm.java > (original) > +++ > tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/BeanEditForm.java > Sun May 22 19:09:39 2011 > @@ -1,4 +1,4 @@ > -// Copyright 2007, 2008, 2009, 2010 The Apache Software Foundation > +// Copyright 2007, 2008, 2009, 2010, 2011 The Apache Software Foundation > // > // Licensed under the Apache License, Version 2.0 (the "License"); > // you may not use this file except in compliance with the License. > @@ -16,14 +16,23 @@ package org.apache.tapestry5.corelib.com > > import java.io.IOException; > > -import org.apache.tapestry5.*; > -import org.apache.tapestry5.annotations.*; > +import org.apache.tapestry5.BindingConstants; > +import org.apache.tapestry5.ClientElement; > +import org.apache.tapestry5.ComponentResources; > +import org.apache.tapestry5.EventConstants; > +import org.apache.tapestry5.Field; > +import org.apache.tapestry5.FormValidationControl; > +import org.apache.tapestry5.TrackableComponentEventCallback; > +import org.apache.tapestry5.annotations.Component; > +import org.apache.tapestry5.annotations.Environmental; > +import org.apache.tapestry5.annotations.Events; > +import org.apache.tapestry5.annotations.Parameter; > +import org.apache.tapestry5.annotations.Property; > +import org.apache.tapestry5.annotations.SupportsInformalParameters; > import org.apache.tapestry5.beaneditor.BeanModel; > import org.apache.tapestry5.internal.beaneditor.BeanModelUtils; > -import > org.apache.tapestry5.internal.services.ComponentResultProcessorWrapper; > import org.apache.tapestry5.ioc.annotations.Inject; > import org.apache.tapestry5.services.BeanModelSource; > -import org.apache.tapestry5.services.ComponentEventResultProcessor; > > /** > * A component that creates an entire form editing the properties of a > particular bean. Inspired by <a > @@ -45,6 +54,7 @@ import org.apache.tapestry5.services.Com > * @see org.apache.tapestry5.services.BeanModelSource > * @see org.apache.tapestry5.corelib.components.PropertyEditor > * @see org.apache.tapestry5.beaneditor.DataType > + * @tapestrydoc > */ > @SupportsInformalParameters > @Events(EventConstants.PREPARE) > > Modified: > tapestry/tapestry5/trunk/tapestry-javadoc/src/main/java/org/apache/tapestry5/javadoc/ClassDescription.java > URL: > http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-javadoc/src/main/java/org/apache/tapestry5/javadoc/ClassDescription.java?rev=1126178&r1=1126177&r2=1126178&view=diff > > ============================================================================== > --- > tapestry/tapestry5/trunk/tapestry-javadoc/src/main/java/org/apache/tapestry5/javadoc/ClassDescription.java > (original) > +++ > tapestry/tapestry5/trunk/tapestry-javadoc/src/main/java/org/apache/tapestry5/javadoc/ClassDescription.java > Sun May 22 19:09:39 2011 > @@ -17,9 +17,11 @@ package org.apache.tapestry5.javadoc; > import java.util.Map; > > import org.apache.tapestry5.BindingConstants; > +import org.apache.tapestry5.annotations.Component; > import org.apache.tapestry5.annotations.Events; > import org.apache.tapestry5.annotations.Parameter; > import org.apache.tapestry5.ioc.internal.util.CollectionFactory; > +import org.apache.tapestry5.ioc.internal.util.InternalUtils; > > import com.sun.javadoc.AnnotationDesc; > import com.sun.javadoc.AnnotationDesc.ElementValuePair; > @@ -37,22 +39,16 @@ public class ClassDescription > public final Map<String, ParameterDescription> parameters = > CollectionFactory.newCaseInsensitiveMap(); > > /** > - * Case insensitive map, keyed on parameter name, value is class > name of component from which the parameter is > - * published. > - */ > - public final Map<String, String> publishedParameters = > CollectionFactory.newCaseInsensitiveMap(); > - > - /** > * Case insensitive map, keyed on event name, value is optional > description (often blank). > */ > public final Map<String, String> events = > CollectionFactory.newCaseInsensitiveMap(); > > - public ClassDescription(ClassDoc classDoc) > + public ClassDescription(ClassDoc classDoc, ClassDescriptionSource > source) > { > this.classDoc = classDoc; > > loadEvents(); > - loadParameters(); > + loadParameters(source); > } > > private void loadEvents() > @@ -82,7 +78,7 @@ public class ClassDescription > } > } > > - private void loadParameters() > + private void loadParameters(ClassDescriptionSource source) > { > for (FieldDoc fd : classDoc.fields(false)) > { > @@ -111,6 +107,38 @@ public class ClassDescription > continue; > } > > + values = getAnnotationValues(fd, Component.class); > + > + if (values != null) > + { > + String names = get(values, "publishParameters", ""); > + > + if (InternalUtils.isBlank(names)) > + continue; > + > + for (String name : names.split("\\s*,\\s*")) > + { > + ParameterDescription pd = > getPublishedParameterDescription(source, fd, name); > + parameters.put(name, pd); > + } > + > + } > + > + } > + } > + > + private ParameterDescription > getPublishedParameterDescription(ClassDescriptionSource source, > FieldDoc fd, > + String name) > + { > + String currentClassName = fd.type().qualifiedTypeName(); > + > + while (true) > + { > + ClassDescription componentCD = > source.getDescription(currentClassName); > + > + if (componentCD.parameters.containsKey(name)) { return > componentCD.parameters.get(name); } > + > + currentClassName = > componentCD.classDoc.superclass().typeName(); > } > } > > > Added: > tapestry/tapestry5/trunk/tapestry-javadoc/src/main/java/org/apache/tapestry5/javadoc/ClassDescriptionSource.java > URL: > http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-javadoc/src/main/java/org/apache/tapestry5/javadoc/ClassDescriptionSource.java?rev=1126178&view=auto > > ============================================================================== > --- > tapestry/tapestry5/trunk/tapestry-javadoc/src/main/java/org/apache/tapestry5/javadoc/ClassDescriptionSource.java > (added) > +++ > tapestry/tapestry5/trunk/tapestry-javadoc/src/main/java/org/apache/tapestry5/javadoc/ClassDescriptionSource.java > Sun May 22 19:09:39 2011 > @@ -0,0 +1,20 @@ > +// Copyright 2011 The Apache Software Foundation > +// > +// Licensed under the Apache License, Version 2.0 (the "License"); > +// you may not use this file except in compliance with the License. > +// You may obtain a copy of the License at > +// > +// http://www.apache.org/licenses/LICENSE-2.0 > +// > +// Unless required by applicable law or agreed to in writing, software > +// distributed under the License is distributed on an "AS IS" BASIS, > +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or > implied. > +// See the License for the specific language governing permissions and > +// limitations under the License. > + > +package org.apache.tapestry5.javadoc; > + > +public interface ClassDescriptionSource > +{ > + ClassDescription getDescription(String className); > +} > > Modified: > tapestry/tapestry5/trunk/tapestry-javadoc/src/main/java/org/apache/tapestry5/javadoc/TapestryDocTaglet.java > URL: > http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-javadoc/src/main/java/org/apache/tapestry5/javadoc/TapestryDocTaglet.java?rev=1126178&r1=1126177&r2=1126178&view=diff > > ============================================================================== > --- > tapestry/tapestry5/trunk/tapestry-javadoc/src/main/java/org/apache/tapestry5/javadoc/TapestryDocTaglet.java > (original) > +++ > tapestry/tapestry5/trunk/tapestry-javadoc/src/main/java/org/apache/tapestry5/javadoc/TapestryDocTaglet.java > Sun May 22 19:09:39 2011 > @@ -31,7 +31,7 @@ import com.sun.tools.doclets.Taglet; > /** > * An inline tag allowed inside a type; it produces Tapestry component > reference and other information. > */ > -public class TapestryDocTaglet implements Taglet > +public class TapestryDocTaglet implements Taglet, ClassDescriptionSource > { > /** > * Map from class name to class description. > @@ -95,7 +95,7 @@ public class TapestryDocTaglet implement > if (result == null) > { > ClassDoc cd = firstSeen.findClass(className); > - result = new ClassDescription(cd); > + result = new ClassDescription(cd, this); > classDescriptions.put(className, result); > } > > > > > > > -- > Howard M. Lewis Ship > > Creator of Apache Tapestry > > The source for Tapestry training, mentoring and support. Contact me to > learn how I can get you up and productive in Tapestry fast! > > (971) 678-5210 > http://howardlewisship.com > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscr...@tapestry.apache.org > For additional commands, e-mail: dev-h...@tapestry.apache.org > > -- Best regards, Igor Drobiazko http://tapestry5.de