You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by th...@apache.org on 2015/06/19 04:51:36 UTC
[1/5] tapestry-5 git commit: Partial fix for TAP5-2029.
Repository: tapestry-5
Updated Branches:
refs/heads/master 766c16bd8 -> d61eee730
Partial fix for TAP5-2029.
Project: http://git-wip-us.apache.org/repos/asf/tapestry-5/repo
Commit: http://git-wip-us.apache.org/repos/asf/tapestry-5/commit/177dc5c3
Tree: http://git-wip-us.apache.org/repos/asf/tapestry-5/tree/177dc5c3
Diff: http://git-wip-us.apache.org/repos/asf/tapestry-5/diff/177dc5c3
Branch: refs/heads/master
Commit: 177dc5c3acc600d20796ae0bbd7d5226d76bbe21
Parents: 32e7ecc
Author: Thiago H. de Paula Figueiredo <th...@apache.org>
Authored: Fri May 29 22:30:00 2015 -0300
Committer: Thiago H. de Paula Figueiredo <th...@apache.org>
Committed: Fri May 29 22:30:00 2015 -0300
----------------------------------------------------------------------
.../internal/plastic/PlasticClassImpl.java | 169 +++++++++++--------
1 file changed, 101 insertions(+), 68 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/177dc5c3/plastic/src/main/java/org/apache/tapestry5/internal/plastic/PlasticClassImpl.java
----------------------------------------------------------------------
diff --git a/plastic/src/main/java/org/apache/tapestry5/internal/plastic/PlasticClassImpl.java b/plastic/src/main/java/org/apache/tapestry5/internal/plastic/PlasticClassImpl.java
index c07bcaf..97a9639 100644
--- a/plastic/src/main/java/org/apache/tapestry5/internal/plastic/PlasticClassImpl.java
+++ b/plastic/src/main/java/org/apache/tapestry5/internal/plastic/PlasticClassImpl.java
@@ -335,89 +335,122 @@ public class PlasticClassImpl extends Lockable implements PlasticClass, Internal
return annotationAccess.getAnnotation(annotationType);
}
+
+ private static void addMethodAndParameterAnnotationsFromExistingClass(MethodNode methodNode, MethodNode implementationMethodNode)
+ {
+ // visits the method attributes
+ int i, j, n;
+ if (implementationMethodNode.annotationDefault != null)
+ {
+ AnnotationVisitor av = methodNode.visitAnnotationDefault();
+ AnnotationNode.accept(av, null, implementationMethodNode.annotationDefault);
+ if (av != null)
+ {
+ av.visitEnd();
+ }
+ }
+ n = implementationMethodNode.visibleAnnotations == null ? 0 : implementationMethodNode.visibleAnnotations.size();
+ for (i = 0; i < n; ++i)
+ {
+ AnnotationNode an = implementationMethodNode.visibleAnnotations.get(i);
+ an.accept(methodNode.visitAnnotation(an.desc, true));
+ }
+ n = implementationMethodNode.invisibleAnnotations == null ? 0 : implementationMethodNode.invisibleAnnotations.size();
+ for (i = 0; i < n; ++i)
+ {
+ AnnotationNode an = implementationMethodNode.invisibleAnnotations.get(i);
+ an.accept(methodNode.visitAnnotation(an.desc, false));
+ }
+ n = implementationMethodNode.visibleParameterAnnotations == null
+ ? 0
+ : implementationMethodNode.visibleParameterAnnotations.length;
+ for (i = 0; i < n; ++i)
+ {
+ List<?> l = implementationMethodNode.visibleParameterAnnotations[i];
+ if (l == null)
+ {
+ continue;
+ }
+ for (j = 0; j < l.size(); ++j)
+ {
+ AnnotationNode an = (AnnotationNode) l.get(j);
+ an.accept(methodNode.visitParameterAnnotation(i, an.desc, true));
+ }
+ }
+ n = implementationMethodNode.invisibleParameterAnnotations == null
+ ? 0
+ : implementationMethodNode.invisibleParameterAnnotations.length;
+ for (i = 0; i < n; ++i)
+ {
+ List<?> l = implementationMethodNode.invisibleParameterAnnotations[i];
+ if (l == null)
+ {
+ continue;
+ }
+ for (j = 0; j < l.size(); ++j)
+ {
+ AnnotationNode an = (AnnotationNode) l.get(j);
+ an.accept(methodNode.visitParameterAnnotation(i, an.desc, false));
+ }
+ }
+
+ methodNode.visitEnd();
+
+ }
+
private static void addMethodAndParameterAnnotationsFromExistingClass(MethodNode methodNode, ClassNode source)
{
if (source != null)
{
- for (MethodNode implementationNode : source.methods)
+ MethodNode candidate = null;
+
+ for (MethodNode implementationMethodNode : source.methods)
{
- // Find corresponding method in the implementation class MethodNode
- if (methodNode.name.equals(implementationNode.name) && methodNode.desc.equals(implementationNode.desc))
+
+ // Find corresponding methods in the implementation class MethodNode
+ if (methodNode.name.equals(implementationMethodNode.name) &&
+// methodNode.parameters.size() == implementationMethodNode.parameters.size() &&
+ // We don't want synthetic methods.
+ ((implementationMethodNode.access & Opcodes.ACC_SYNTHETIC) == 0)
+ /*methodNode.desc.equals(implementationMethodNode.desc)*/)
{
-
- // Copied and adapted from MethodNode.accept(). We want annotation info, but not code nor attributes
- // Otherwise, we get ClassFormatError (Illegal exception table range) later
-
- // visits the method attributes
- int i, j, n;
- if (implementationNode.annotationDefault != null)
- {
- AnnotationVisitor av = methodNode.visitAnnotationDefault();
- AnnotationNode.accept(av, null, implementationNode.annotationDefault);
- if (av != null)
- {
- av.visitEnd();
- }
- }
- n = implementationNode.visibleAnnotations == null ? 0 : implementationNode.visibleAnnotations.size();
- for (i = 0; i < n; ++i)
- {
- AnnotationNode an = implementationNode.visibleAnnotations.get(i);
- an.accept(methodNode.visitAnnotation(an.desc, true));
- }
- n = implementationNode.invisibleAnnotations == null ? 0 : implementationNode.invisibleAnnotations.size();
- for (i = 0; i < n; ++i)
- {
- AnnotationNode an = implementationNode.invisibleAnnotations.get(i);
- an.accept(methodNode.visitAnnotation(an.desc, false));
- }
- n = implementationNode.visibleParameterAnnotations == null
- ? 0
- : implementationNode.visibleParameterAnnotations.length;
- for (i = 0; i < n; ++i)
- {
- List<?> l = implementationNode.visibleParameterAnnotations[i];
- if (l == null)
- {
- continue;
- }
- for (j = 0; j < l.size(); ++j)
- {
- AnnotationNode an = (AnnotationNode) l.get(j);
- an.accept(methodNode.visitParameterAnnotation(i, an.desc, true));
- }
- }
- n = implementationNode.invisibleParameterAnnotations == null
- ? 0
- : implementationNode.invisibleParameterAnnotations.length;
- for (i = 0; i < n; ++i)
- {
- List<?> l = implementationNode.invisibleParameterAnnotations[i];
- if (l == null)
- {
- continue;
- }
- for (j = 0; j < l.size(); ++j)
- {
- AnnotationNode an = (AnnotationNode) l.get(j);
- an.accept(methodNode.visitParameterAnnotation(i, an.desc, false));
- }
- }
-
- methodNode.visitEnd();
-
- break;
-
+ if (candidate == null)
+ {
+ candidate = implementationMethodNode;
+ }
+ // Generics implementation. Two methods with same name: The one which isn't a bridge is the one we're looking for.
+ else
+ {
+ if (isBridge(candidate))
+ {
+ candidate = implementationMethodNode;
+ }
+ }
+
}
}
-
+
+ if (candidate != null)
+ {
+ addMethodAndParameterAnnotationsFromExistingClass(methodNode, candidate);
+ }
+
}
}
+ /**
+ * Tells whether a given method is a bridge one or not.
+ * Notice the flag for bridge method is the same as volatile field. Java 6 doesn't have
+ * Modifiers.isBridge(), so we use a workaround.
+ */
+ private static boolean isBridge(MethodNode methodNode) {
+ return Modifier.isVolatile(methodNode.access);
+ }
+
@Override
public PlasticClass proxyInterface(Class interfaceType, PlasticField field)
{
[2/5] tapestry-5 git commit: Merge branch 'master' of
https://git-wip-us.apache.org/repos/asf/tapestry-5
Posted by th...@apache.org.
Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/tapestry-5
Project: http://git-wip-us.apache.org/repos/asf/tapestry-5/repo
Commit: http://git-wip-us.apache.org/repos/asf/tapestry-5/commit/76e69ad3
Tree: http://git-wip-us.apache.org/repos/asf/tapestry-5/tree/76e69ad3
Diff: http://git-wip-us.apache.org/repos/asf/tapestry-5/diff/76e69ad3
Branch: refs/heads/master
Commit: 76e69ad3777a7800f8378dda9d3269b22c9b4050
Parents: 177dc5c 450b36a
Author: Thiago H. de Paula Figueiredo <th...@apache.org>
Authored: Fri May 29 22:30:39 2015 -0300
Committer: Thiago H. de Paula Figueiredo <th...@apache.org>
Committed: Fri May 29 22:30:39 2015 -0300
----------------------------------------------------------------------
54_RELEASE_NOTES.md | 60 +-
.../apache/tapestry5/beaneditor/BeanModel.java | 8 +-
.../beaneditor/BeanModelSourceBuilder.java | 16 +-
.../tapestry5/beaneditor/PropertyModel.java | 6 +-
.../tapestry5/services/BeanModelSource.java | 6 +-
.../services/PropertyConduitSource.java | 4 +-
build.gradle | 118 +-
buildSrc/build.gradle | 9 +-
.../org/apache/tapestry5/ioc/Configuration.java | 8 +-
.../tapestry5/ioc/MappedConfiguration.java | 6 +-
.../org/apache/tapestry5/ioc/ObjectLocator.java | 13 +-
.../tapestry5/ioc/OrderedConfiguration.java | 10 +-
.../java/org/apache/tapestry5/ioc/Resource.java | 10 +-
.../ioc/internal/BasicTypeCoercions.java | 4 +-
.../ioc/internal/services/TypeCoercerImpl.java | 8 +-
.../ioc/internal/util/CollectionFactory.java | 10 +-
.../ioc/internal/util/GenericsUtils.java | 28 +-
.../ioc/internal/util/InheritanceSearch.java | 14 +-
.../ioc/services/ClassPropertyAdapter.java | 6 +-
.../tapestry5/ioc/services/PropertyAccess.java | 6 +-
.../tapestry5/ioc/services/PropertyAdapter.java | 4 +-
.../tapestry5/ioc/services/TypeCoercer.java | 6 +-
.../tapestry5/ioc/util/CaseInsensitiveMap.java | 73 +-
.../apache/tapestry5/ioc/util/TimeInterval.java | 14 +-
.../tapestry5/services/DataTypeAnalyzer.java | 8 +-
.../services/InvalidationEventHub.java | 4 +-
.../tapestry5/util/StringToEnumCoercion.java | 8 +-
gradle/wrapper/gradle-wrapper.jar | Bin 51017 -> 52266 bytes
gradle/wrapper/gradle-wrapper.properties | 4 +-
plastic/build.gradle | 1 -
.../internal/plastic/asm/MethodWriter.java | 4 +-
.../plastic/asm/commons/AdviceAdapter.java | 10 +-
.../internal/plastic/asm/util/ASMifier.java | 12 +-
.../plastic/asm/util/CheckClassAdapter.java | 32 +-
.../internal/plastic/asm/util/Textifier.java | 15 +-
.../plastic/asm/util/TraceClassVisitor.java | 16 +-
.../internal/plastic/asm/xml/Processor.java | 48 +-
.../internal/plastic/InheritanceData.java | 10 +-
.../internal/plastic/MethodAdviceManager.java | 2 +-
.../internal/plastic/PlasticClassImpl.java | 2 +-
.../internal/plastic/PlasticClassPool.java | 2 +-
.../internal/plastic/PlasticInternalUtils.java | 38 +-
.../apache/tapestry5/plastic/FieldConduit.java | 6 +-
.../tapestry5/plastic/InstructionBuilder.java | 8 +-
.../tapestry5/plastic/MethodDescription.java | 12 +-
.../tapestry5/plastic/MethodInvocation.java | 4 +-
.../apache/tapestry5/plastic/PlasticClass.java | 16 +-
.../plastic/PlasticClassTransformation.java | 4 +-
.../tapestry5/plastic/PlasticConstants.java | 29 +
.../apache/tapestry5/plastic/PlasticField.java | 6 +-
.../tapestry5/plastic/PlasticManager.java | 12 +-
.../apache/tapestry5/plastic/PlasticMethod.java | 10 +-
.../apache/tapestry5/plastic/PlasticUtils.java | 4 +-
.../apache/tapestry5/plastic/TryCatchBlock.java | 4 +-
.../plastic/FieldPropertyMethodCreation.groovy | 15 +
.../AccessorsAlreadyExistSubject2.java | 15 +
.../filtered/archetype-resources/build.gradle | 23 +-
quickstart/filtered/archetype-resources/pom.xml | 18 +-
.../src/main/java/components/Layout.java | 60 +-
.../src/main/java/pages/About.java | 16 +-
.../src/main/java/pages/Index.java | 78 +-
.../src/main/java/pages/Login.java | 69 +-
.../src/main/java/services/AppModule.java | 58 +-
.../src/main/resources/components/Layout.tml | 30 +-
.../src/main/resources/pages/About.tml | 2 +-
.../src/main/resources/pages/Contact.tml | 2 +-
.../src/main/resources/pages/Error404.tml | 2 +-
.../src/main/resources/pages/Index.tml | 12 +-
.../src/main/resources/pages/Login.tml | 10 +-
.../mybootstrap/css/bootstrap-responsive.css | 1109 --
.../webapp/mybootstrap/css/bootstrap-theme.css | 476 +
.../main/webapp/mybootstrap/css/bootstrap.css | 11735 ++++++++---------
.../fonts/glyphicons-halflings-regular.eot | Bin 0 -> 20127 bytes
.../fonts/glyphicons-halflings-regular.svg | 288 +
.../fonts/glyphicons-halflings-regular.ttf | Bin 0 -> 45404 bytes
.../fonts/glyphicons-halflings-regular.woff | Bin 0 -> 23424 bytes
.../fonts/glyphicons-halflings-regular.woff2 | Bin 0 -> 18028 bytes
.../img/glyphicons-halflings-white.png | Bin 8777 -> 0 bytes
.../mybootstrap/img/glyphicons-halflings.png | Bin 12799 -> 0 bytes
.../src/main/webapp/mybootstrap/js/affix.js | 162 +
.../src/main/webapp/mybootstrap/js/alert.js | 94 +
.../src/main/webapp/mybootstrap/js/bootstrap.js | 2280 ----
.../src/main/webapp/mybootstrap/js/button.js | 116 +
.../src/main/webapp/mybootstrap/js/carousel.js | 237 +
.../src/main/webapp/mybootstrap/js/collapse.js | 211 +
.../src/main/webapp/mybootstrap/js/dropdown.js | 161 +
.../src/main/webapp/mybootstrap/js/modal.js | 339 +
.../src/main/webapp/mybootstrap/js/popover.js | 108 +
.../src/main/webapp/mybootstrap/js/scrollspy.js | 172 +
.../src/main/webapp/mybootstrap/js/tab.js | 153 +
.../src/main/webapp/mybootstrap/js/tooltip.js | 476 +
.../main/webapp/mybootstrap/js/transition.js | 59 +
tapestry-beanvalidator/build.gradle | 2 +
.../ClientConstraintDescriptor.java | 4 +-
tapestry-clojure/build.gradle | 1 -
.../LICENSE-typeahead.js-bootstrap3.less.txt | 21 +
tapestry-core/NOTICE.txt | 3 +
tapestry-core/build.gradle | 6 +-
.../modules/t5/core/autocomplete.coffee | 30 +-
.../META-INF/modules/t5/core/console.coffee | 39 +-
.../META-INF/modules/t5/core/events.coffee | 3 +
.../META-INF/modules/t5/core/forms.coffee | 4 +
.../META-INF/modules/t5/core/pageinit.coffee | 36 +-
.../META-INF/modules/t5/core/validation.coffee | 25 +-
.../modules/t5/core/zone-refresh.coffee | 5 +-
.../META-INF/modules/t5/core/zone.coffee | 13 +-
.../main/java/org/apache/tapestry5/Asset.java | 12 +-
.../BaseOptimizedSessionPersistedObject.java | 6 +-
.../main/java/org/apache/tapestry5/Binding.java | 4 +-
.../main/java/org/apache/tapestry5/Block.java | 4 +-
.../org/apache/tapestry5/ClientElement.java | 4 +-
.../org/apache/tapestry5/ComponentAction.java | 6 +-
.../tapestry5/ComponentEventCallback.java | 4 +-
.../apache/tapestry5/ComponentResources.java | 4 +-
.../tapestry5/ComponentResourcesCommon.java | 64 +-
.../java/org/apache/tapestry5/ContentType.java | 2 +-
.../org/apache/tapestry5/EventConstants.java | 7 +-
.../main/java/org/apache/tapestry5/Field.java | 7 +-
.../main/java/org/apache/tapestry5/Link.java | 14 +-
.../java/org/apache/tapestry5/MarkupWriter.java | 4 +-
.../OptimizedSessionPersistedObject.java | 4 +-
.../java/org/apache/tapestry5/PageCallback.java | 8 +-
.../java/org/apache/tapestry5/SelectModel.java | 4 +-
.../org/apache/tapestry5/SymbolConstants.java | 38 +-
.../org/apache/tapestry5/TapestryConstants.java | 4 +-
.../org/apache/tapestry5/TapestryFilter.java | 8 +-
.../TrackableComponentEventCallback.java | 8 +-
.../apache/tapestry5/ValidationDecorator.java | 6 +-
.../org/apache/tapestry5/ValidationTracker.java | 10 +-
.../apache/tapestry5/ValidationTrackerImpl.java | 20 +-
.../java/org/apache/tapestry5/Validator.java | 4 +-
.../java/org/apache/tapestry5/ValueEncoder.java | 10 +-
.../java/org/apache/tapestry5/VersionUtils.java | 4 +-
.../apache/tapestry5/ajax/MultiZoneUpdate.java | 4 +-
.../annotations/ActivationRequestParameter.java | 24 +-
.../tapestry5/annotations/BeforeRenderBody.java | 13 +-
.../tapestry5/annotations/BeginRender.java | 13 +-
.../tapestry5/annotations/BindParameter.java | 12 +-
.../apache/tapestry5/annotations/Cached.java | 11 +-
.../tapestry5/annotations/Environmental.java | 16 +-
.../annotations/HeartbeatDeferred.java | 18 +-
.../apache/tapestry5/annotations/Import.java | 8 +-
.../apache/tapestry5/annotations/OnEvent.java | 17 +-
.../annotations/PageActivationContext.java | 11 +-
.../tapestry5/annotations/PageAttached.java | 4 +-
.../tapestry5/annotations/PageDetached.java | 4 +-
.../tapestry5/annotations/PageLoaded.java | 11 +-
.../apache/tapestry5/annotations/PageReset.java | 18 +-
.../apache/tapestry5/annotations/Persist.java | 12 +-
.../apache/tapestry5/annotations/Property.java | 11 +-
.../tapestry5/annotations/RequestParameter.java | 19 +-
.../apache/tapestry5/annotations/Retain.java | 13 +-
.../apache/tapestry5/annotations/Secure.java | 11 +-
.../tapestry5/annotations/SessionState.java | 13 +-
.../tapestry5/annotations/SetupRender.java | 2 +-
.../annotations/WhitelistAccessOnly.java | 4 +-
.../corelib/base/AbstractConditional.java | 6 +-
.../tapestry5/corelib/base/AbstractField.java | 8 +-
.../corelib/base/AbstractPropertyOutput.java | 2 +-
.../corelib/base/AbstractTextField.java | 10 +-
.../corelib/components/AjaxFormLoop.java | 8 +-
.../tapestry5/corelib/components/Alerts.java | 3 +-
.../tapestry5/corelib/components/Any.java | 11 +-
.../corelib/components/BeanDisplay.java | 6 +-
.../corelib/components/BeanEditForm.java | 6 +-
.../corelib/components/BeanEditor.java | 4 -
.../tapestry5/corelib/components/Checklist.java | 8 +-
.../tapestry5/corelib/components/DateField.java | 39 +-
.../tapestry5/corelib/components/Delegate.java | 6 +-
.../tapestry5/corelib/components/DevTool.java | 6 +-
.../tapestry5/corelib/components/Dynamic.java | 6 +-
.../tapestry5/corelib/components/Error.java | 6 +-
.../tapestry5/corelib/components/Errors.java | 2 +-
.../tapestry5/corelib/components/EventLink.java | 8 +-
.../tapestry5/corelib/components/Form.java | 40 +-
.../corelib/components/FormFragment.java | 4 +-
.../tapestry5/corelib/components/Grid.java | 27 +-
.../tapestry5/corelib/components/GridRows.java | 6 +-
.../tapestry5/corelib/components/Hidden.java | 4 +-
.../tapestry5/corelib/components/Label.java | 4 +-
.../tapestry5/corelib/components/LocalDate.java | 6 +-
.../tapestry5/corelib/components/Loop.java | 28 +-
.../tapestry5/corelib/components/PageLink.java | 4 +-
.../tapestry5/corelib/components/Palette.java | 22 +-
.../corelib/components/PasswordField.java | 4 +-
.../corelib/components/ProgressiveDisplay.java | 4 +-
.../tapestry5/corelib/components/Radio.java | 4 +-
.../corelib/components/RadioGroup.java | 5 +
.../tapestry5/corelib/components/Select.java | 2 +-
.../tapestry5/corelib/components/TextArea.java | 4 +-
.../tapestry5/corelib/components/TextField.java | 4 +-
.../corelib/components/TimeInterval.java | 6 +-
.../tapestry5/corelib/components/Tree.java | 4 +-
.../tapestry5/corelib/components/Zone.java | 12 +-
.../tapestry5/corelib/data/SecureOption.java | 7 +-
.../corelib/internal/FormSupportImpl.java | 4 +-
.../tapestry5/corelib/mixins/Autocomplete.java | 11 +-
.../tapestry5/corelib/mixins/Confirm.java | 26 +-
.../corelib/mixins/FormFieldFocus.java | 5 +-
.../tapestry5/corelib/mixins/FormGroup.java | 14 +-
.../tapestry5/corelib/mixins/NotEmpty.java | 4 +-
.../corelib/mixins/OverrideFieldFocus.java | 7 +-
.../corelib/mixins/RenderClientId.java | 8 +-
.../corelib/mixins/RenderInformals.java | 14 +-
.../tapestry5/corelib/mixins/ZoneRefresh.java | 16 +-
.../corelib/pages/ExceptionReport.java | 99 +-
.../tapestry5/corelib/pages/ServiceStatus.java | 4 +-
.../java/org/apache/tapestry5/dom/Element.java | 4 +-
.../internal/BeanValidationContext.java | 2 -
.../internal/BeanValidationContextImpl.java | 2 -
.../InternalComponentResourcesCommon.java | 4 +-
.../tapestry5/internal/InternalSymbols.java | 2 +-
.../internal/TapestryAppInitializer.java | 6 +-
.../internal/TapestryInternalUtils.java | 2 +-
.../internal/bindings/LiteralBinding.java | 6 +-
.../internal/bindings/PropBindingFactory.java | 4 +-
.../pageload/EmbeddedComponentAssembler.java | 6 +-
.../internal/pageload/PageLoaderImpl.java | 4 +-
.../services/BlockInjectionProvider.java | 4 +-
.../services/ComponentClassResolverImpl.java | 12 +-
.../services/ComponentInstantiatorSource.java | 8 +-
.../internal/services/ComponentModelSource.java | 4 +-
.../services/ComponentResourcesOperation.java | 4 +-
.../services/ComponentTemplateSource.java | 6 +-
.../services/ComponentTemplateSourceImpl.java | 2 +-
.../DefaultRequestExceptionHandler.java | 9 +-
.../internal/services/DocumentLinker.java | 4 +-
.../services/FormControlNameManager.java | 2 -
.../tapestry5/internal/services/LinkSource.java | 35 +-
.../internal/services/MessagesSourceImpl.java | 6 +-
.../internal/services/PageRenderQueue.java | 6 +-
.../internal/services/RequestPageCache.java | 6 +-
.../services/ResourceDigestManager.java | 8 +-
.../internal/services/SaxTemplateParser.java | 24 +-
...sionApplicationStatePersistenceStrategy.java | 4 +-
.../SessionPersistentFieldStrategy.java | 4 +-
.../UnknownActivationContextHandler.java | 4 +-
.../services/assets/CSSURLRewriter.java | 20 +-
.../assets/CompressionAnalyzerImpl.java | 20 +-
.../assets/JavaScriptStackAssembler.java | 2 +-
.../exceptions/ExceptionReportWriterImpl.java | 313 +
.../exceptions/ExceptionReporterImpl.java | 251 +-
.../structure/ComponentPageElementImpl.java | 21 +-
.../InternalComponentResourcesImpl.java | 16 -
.../tapestry5/internal/structure/Page.java | 12 +-
.../tapestry5/internal/structure/PageImpl.java | 19 +-
.../EventHandlerMethodParameterProvider.java | 4 +-
.../internal/transform/ImportWorker.java | 4 +-
.../internal/transform/InjectPageWorker.java | 16 +-
.../internal/transform/InjectWorker.java | 4 +-
.../internal/transform/ParameterConduit.java | 6 +-
.../tapestry5/internal/util/LocaleUtils.java | 12 +-
.../tapestry5/internal/util/NamedSet.java | 2 +-
.../apache/tapestry5/model/ComponentModel.java | 25 +-
.../tapestry5/model/MutableComponentModel.java | 4 +-
.../apache/tapestry5/modules/AssetsModule.java | 3 +
.../tapestry5/modules/InternalModule.java | 3 +-
.../tapestry5/modules/JavaScriptModule.java | 8 +-
.../tapestry5/modules/TapestryModule.java | 36 +-
.../org/apache/tapestry5/runtime/Component.java | 6 +-
.../apache/tapestry5/runtime/RenderCommand.java | 4 +-
.../services/ApplicationStateManager.java | 6 +-
.../apache/tapestry5/services/AssetFactory.java | 10 +-
.../tapestry5/services/AssetPathConverter.java | 4 +-
.../apache/tapestry5/services/AssetSource.java | 8 +-
.../services/BeanBlockOverrideSource.java | 6 +-
.../tapestry5/services/BeanBlockSource.java | 6 +-
.../tapestry5/services/BindingFactory.java | 4 +-
.../tapestry5/services/BindingSource.java | 4 +-
.../services/ClasspathAssetAliasManager.java | 10 +-
.../services/ClientBehaviorSupport.java | 8 +-
.../tapestry5/services/ClientDataEncoder.java | 4 +-
.../services/ComponentClassResolver.java | 10 +-
.../services/ComponentEventLinkEncoder.java | 12 +-
.../services/ComponentEventRequestHandler.java | 6 +-
.../services/ComponentEventResultProcessor.java | 6 +-
.../tapestry5/services/ComponentOverride.java | 2 +-
.../apache/tapestry5/services/Environment.java | 4 +-
.../services/ExceptionReportWriter.java | 38 +
.../tapestry5/services/ExceptionReporter.java | 10 +-
.../services/FieldValidatorSource.java | 8 +-
.../apache/tapestry5/services/Heartbeat.java | 4 +-
.../services/HiddenFieldLocationRules.java | 4 +-
.../tapestry5/services/LibraryMapping.java | 14 +-
.../tapestry5/services/LocalizationSetter.java | 12 +-
.../tapestry5/services/MarkupRenderer.java | 4 +-
.../tapestry5/services/MetaDataLocator.java | 4 +-
.../tapestry5/services/ObjectRenderer.java | 4 +-
.../services/PageRenderLinkSource.java | 28 +-
.../services/PageRenderRequestHandler.java | 4 +-
.../services/PartialMarkupRenderer.java | 6 +-
.../services/PartialTemplateRenderer.java | 24 +-
.../org/apache/tapestry5/services/Request.java | 8 +-
.../services/RequestExceptionHandler.java | 8 +-
.../services/ResourceDigestGenerator.java | 8 +-
.../org/apache/tapestry5/services/Response.java | 8 +-
.../SessionPersistedObjectAnalyzer.java | 8 +-
.../tapestry5/services/StreamPageContent.java | 6 +-
.../tapestry5/services/TransformConstants.java | 4 +-
.../services/TranslatorAlternatesSource.java | 8 +-
.../tapestry5/services/TranslatorSource.java | 8 +-
.../services/ajax/AjaxResponseRenderer.java | 2 +-
.../services/assets/AssetRequestHandler.java | 6 +-
.../services/assets/CompressionAnalyzer.java | 4 +-
.../services/assets/ContentTypeAnalyzer.java | 4 +-
.../services/assets/ResourceMinimizer.java | 8 +-
.../tapestry5/services/assets/package-info.java | 4 +-
.../services/compatibility/Compatibility.java | 4 +-
.../tapestry5/services/compatibility/Trait.java | 10 +-
.../services/javascript/AMDWrapper.java | 24 +-
.../javascript/ExtensibleJavaScriptStack.java | 2 +-
.../services/javascript/Initialization.java | 4 +-
.../javascript/InitializationPriority.java | 4 +-
.../JavaScriptModuleConfiguration.java | 8 +-
.../services/javascript/JavaScriptStack.java | 6 +-
.../services/javascript/JavaScriptSupport.java | 18 +-
.../javascript/ModuleConfigurationCallback.java | 6 +-
.../services/javascript/ModuleManager.java | 4 +-
.../services/javascript/StackExtensionType.java | 4 +-
.../services/javascript/StylesheetLink.java | 2 +-
.../services/javascript/StylesheetOptions.java | 2 +-
.../ComponentEventLinkTransformer.java | 6 +-
.../PageRenderLinkTransformer.java | 6 +-
.../services/pageload/PagePreloader.java | 4 +-
.../templates/ComponentTemplateLocator.java | 4 +-
.../ComponentClassTransformWorker2.java | 4 +-
.../services/transform/InjectionProvider2.java | 4 +-
.../org/apache/tapestry5/test/PageTester.java | 4 +-
.../apache/tapestry5/tree/DefaultTreeModel.java | 4 +-
.../tapestry5/tree/TreeSelectionModel.java | 4 +-
.../org/apache/tapestry5/validator/Email.java | 13 +-
.../org/apache/tapestry5/validator/Regexp.java | 2 +-
.../org/apache/tapestry5/t5-core-dom.coffee | 6 +-
.../META-INF/assets/core/Autocomplete.css | 56 -
.../META-INF/assets/core/ExceptionReport.css | 4 +
.../assets/core/typeahead-bootstrap3.css | 189 +
.../tapestry5/bootstrap/css/bootstrap-theme.css | 10 +-
.../tapestry5/bootstrap/css/bootstrap.css | 326 +-
.../fonts/glyphicons-halflings-regular.eot | Bin 20335 -> 20127 bytes
.../fonts/glyphicons-halflings-regular.svg | 487 +-
.../fonts/glyphicons-halflings-regular.ttf | Bin 41280 -> 45404 bytes
.../fonts/glyphicons-halflings-regular.woff | Bin 23320 -> 23424 bytes
.../fonts/glyphicons-halflings-regular.woff2 | Bin 0 -> 18028 bytes
.../assets/tapestry5/bootstrap/js/affix.js | 14 +-
.../assets/tapestry5/bootstrap/js/alert.js | 6 +-
.../assets/tapestry5/bootstrap/js/button.js | 6 +-
.../assets/tapestry5/bootstrap/js/carousel.js | 25 +-
.../assets/tapestry5/bootstrap/js/collapse.js | 18 +-
.../assets/tapestry5/bootstrap/js/dropdown.js | 8 +-
.../assets/tapestry5/bootstrap/js/modal.js | 69 +-
.../assets/tapestry5/bootstrap/js/popover.js | 29 +-
.../assets/tapestry5/bootstrap/js/scrollspy.js | 39 +-
.../assets/tapestry5/bootstrap/js/tab.js | 8 +-
.../assets/tapestry5/bootstrap/js/tooltip.js | 54 +-
.../assets/tapestry5/bootstrap/js/transition.js | 4 +-
.../META-INF/assets/tapestry5/jquery.js | 13 +-
.../META-INF/assets/tapestry5/moment-2.10.3.js | 9737 ++++++++++++++
.../META-INF/assets/tapestry5/moment-2.8.4.js | 9394 -------------
.../META-INF/assets/tapestry5/require.js | 95 +-
.../assets/tapestry5/typeahead-0.9.3.js | 1139 --
.../META-INF/assets/tapestry5/typeahead.js | 1782 +++
.../assets/tapestry5/underscore-1.7.0.js | 1416 --
.../assets/tapestry5/underscore-1.8.3.js | 1548 +++
.../org/apache/tapestry5/core_fr.properties | 2 +-
.../tapestry5/corelib/pages/ExceptionReport.tml | 48 +-
.../src/test/app1/AutocompleteDemo.tml | 3 +-
tapestry-core/src/test/app1/DisabledFields.tml | 6 +
.../src/test/app1/GridEarlyPagingDemo.tml | 10 +
.../app1/GridFormWithInitialSortMixinDemo.tml | 38 +
tapestry-core/src/test/app1/GridInLoopDemo.tml | 20 +
.../src/test/app1/ValidateInErrorEvent.tml | 6 +
.../META-INF/modules/validate-in-error.coffee | 7 +
.../integration/app1/AjaxGroovyTests.groovy | 12 +
.../integration/app1/AlertsTests.groovy | 8 +-
.../integration/app1/pages/LogoSubclass.groovy | 7 +
.../integration/app1/pages/LogoSubclass.java | 7 -
.../integration/app1/pages/ZoneFormDemo.groovy | 65 +
.../services/DocumentLinkerImplTest.groovy | 2 +-
.../services/assets/CSSURLRewriterTests.groovy | 35 +
.../assets/CompressionAnalyzerImplTests.groovy | 7 +
.../tapestry5/pagetester/PageTesterTest.java | 31 -
.../tapestry5/integration/app1/AjaxTests.java | 19 +-
.../integration/app1/CoreBehaviorsTests.java | 2 +-
.../tapestry5/integration/app1/FormTests.java | 75 +-
.../tapestry5/integration/app1/GridTests.java | 66 +-
.../integration/app1/components/Border.java | 12 +-
.../integration/app1/components/Count.java | 4 +-
.../integration/app1/mixins/InitialSort.java | 31 +
.../app1/pages/ActionViaLinkDemo.java | 11 +-
.../app1/pages/AutocompleteDemo.java | 14 +-
.../integration/app1/pages/DisabledFields.java | 10 +
.../app1/pages/GridEarlyPagingDemo.java | 44 +
.../pages/GridFormWithInitialSortMixinDemo.java | 19 +
.../integration/app1/pages/GridInLoopDemo.java | 37 +
.../tapestry5/integration/app1/pages/Index.java | 30 +-
.../app1/pages/InplaceGridInLoopDemo.java | 2 +-
.../integration/app1/pages/PageLinkContext.java | 8 +-
.../integration/app1/pages/ReturnTypes.java | 23 +-
.../app1/pages/ValidateInErrorEvent.java | 10 +
.../tapestry5/integration/pagelevel/IfTest.java | 1 +
.../internal/services/URLEncoderImplTest.java | 3 +-
.../internal/util/LocaleUtilsTest.java | 8 +-
.../tapestry5/pagetester/PageTesterTest.java | 31 +
.../tapestry5/services/SyncCostBench.java | 11 +-
.../integration/app1/components/Border.tml | 2 +-
.../integration/app1/pages/ZoneFormDemo.tml | 24 +
.../integration/app2/pages/TestPageForIf.tml | 6 +
.../main/java/org/apache/tapestry5/func/F.java | 6 +-
.../java/org/apache/tapestry5/func/Flow.java | 16 +-
.../apache/tapestry5/func/FlowOperations.java | 14 +-
.../java/org/apache/tapestry5/func/Mapper.java | 4 +-
.../java/org/apache/tapestry5/func/Mapper2.java | 4 +-
.../org/apache/tapestry5/func/Predicate.java | 6 +-
.../java/org/apache/tapestry5/func/Reducer.java | 7 +-
.../HibernateEntityPackageManager.java | 4 +-
.../hibernate/HibernateSessionManager.java | 6 +-
.../hibernate/HibernateSessionSource.java | 4 +-
.../HibernateTransactionDecorator.java | 4 +-
.../hibernate/HibernateGridDataSource.java | 10 +-
tapestry-ioc-jcache/build.gradle | 63 +-
.../tapestry5/jcache/module/JCacheModule.java | 35 +-
.../jcache/internal/AbstractTestExcluder.java | 4 +-
.../ioc/junit/TapestryIOCJUnit4ClassRunner.java | 14 +-
tapestry-ioc/build.gradle | 3 +-
.../org/apache/tapestry5/ioc/AdvisorDef.java | 4 +-
.../org/apache/tapestry5/ioc/IOCSymbols.java | 4 +-
.../org/apache/tapestry5/ioc/IdMatcher.java | 6 +-
.../tapestry5/ioc/ModuleBuilderSource.java | 6 +-
.../apache/tapestry5/ioc/ObjectProvider.java | 6 +-
.../apache/tapestry5/ioc/RegistryBuilder.java | 2 +-
.../org/apache/tapestry5/ioc/ReloadAware.java | 4 +-
.../apache/tapestry5/ioc/ScopeConstants.java | 6 +-
.../tapestry5/ioc/ServiceBindingOptions.java | 3 -
.../tapestry5/ioc/annotations/EagerLoad.java | 4 +-
.../tapestry5/ioc/annotations/Marker.java | 4 +-
.../apache/tapestry5/ioc/annotations/Match.java | 11 +-
.../annotations/PreventServiceDecoration.java | 10 +-
.../apache/tapestry5/ioc/annotations/Scope.java | 9 +-
.../tapestry5/ioc/def/ContributionDef.java | 4 +-
.../apache/tapestry5/ioc/def/DecoratorDef.java | 10 +-
.../org/apache/tapestry5/ioc/def/ModuleDef.java | 4 +-
.../apache/tapestry5/ioc/def/ServiceDef.java | 4 +-
.../tapestry5/ioc/internal/RegistryImpl.java | 20 +-
.../ValidatingMappedConfigurationWrapper.java | 10 +-
.../ioc/internal/services/BridgeBuilder.java | 4 +-
.../services/ExceptionAnalyzerImpl.java | 2 +-
.../ioc/internal/services/MethodSignature.java | 4 +-
.../services/PerThreadServiceLifecycle.java | 2 +-
.../services/SystemEnvSymbolProvider.java | 4 +-
.../internal/services/cron/CronExpression.java | 67 +-
.../services/cron/PeriodicExecutorImpl.java | 21 +-
.../ioc/internal/util/AbstractResource.java | 20 +-
.../ioc/internal/util/ConcurrentBarrier.java | 6 +-
.../ioc/internal/util/InternalUtils.java | 2 +-
.../ioc/modules/TapestryIOCModule.java | 5 +-
.../tapestry5/ioc/services/ChainBuilder.java | 8 +-
.../ioc/services/ExceptionAnalysis.java | 4 +-
.../tapestry5/ioc/services/LazyAdvisor.java | 8 +-
.../ioc/services/LoggingDecorator.java | 4 +-
.../ioc/services/MasterObjectProvider.java | 8 +-
.../ioc/services/PerthreadManager.java | 8 +-
.../tapestry5/ioc/services/PipelineBuilder.java | 8 +-
.../ioc/services/PropertyShadowBuilder.java | 4 +-
.../ioc/services/ServiceLifecycleSource.java | 4 +-
.../tapestry5/ioc/services/ServiceOverride.java | 4 +-
.../tapestry5/ioc/services/StrategyBuilder.java | 8 +-
.../tapestry5/ioc/services/SymbolProvider.java | 4 +-
.../tapestry5/ioc/services/SymbolSource.java | 4 +-
.../ioc/services/ThreadCleanupListener.java | 4 +-
.../tapestry5/ioc/services/cron/Schedule.java | 4 +-
.../apache/tapestry5/ioc/util/IdAllocator.java | 17 +-
.../ioc/util/LocalizedNameGenerator.java | 10 +-
.../tapestry5/services/UpdateListener.java | 4 +-
.../tapestry5/services/UpdateListenerHub.java | 8 +-
.../ioc/specs/CaseInsensitiveMapSpec.groovy | 23 +
.../ioc/specs/ClasspathResourceSpec.groovy | 27 +
.../ioc/specs/ClasspathScannerImplSpec.groovy | 43 +-
.../groovy/ioc/specs/MethodSignatureSpec.groovy | 2 +-
.../ioc/specs/PeriodicExecutorSpec.groovy | 30 +
tapestry-javadoc/build.gradle | 2 -
.../tapestry5/jpa/EntityManagerManager.java | 13 +-
.../tapestry5/jpa/EntityManagerSource.java | 15 +-
.../tapestry5/jpa/JpaEntityPackageManager.java | 8 +-
.../apache/tapestry5/jpa/JpaGridDataSource.java | 13 +-
tapestry-json/build.gradle | 1 -
.../org/apache/tapestry5/json/JSONArray.java | 12 +-
.../apache/tapestry5/json/JSONCollection.java | 6 +-
.../org/apache/tapestry5/json/JSONObject.java | 29 +-
.../org/apache/tapestry5/json/JSONTokener.java | 6 +-
.../org/apache/tapestry5/json/package-info.java | 4 +-
.../kaptcha/components/KaptchaImage.java | 2 +-
tapestry-mongodb/build.gradle | 2 -
.../apache/tapestry5/ioc/test/MockTester.java | 4 +-
.../org/apache/tapestry5/ioc/test/TestBase.java | 12 +-
.../apache/tapestry5/ioc/test/TestUtils.java | 4 +-
.../apache/tapestry5/test/SeleniumTestCase.java | 13 +-
tapestry-upload/build.gradle | 2 +-
.../tapestry5/upload/components/Upload.java | 2 +-
tapestry-webresources/build.gradle | 7 +-
.../ResourceTransformerFactory.java | 5 +-
.../webresources/internal/coffee-script.js | 12 +-
.../webresources/tests/WebResourcesSpec.groovy | 2 +-
.../fonts/glyphicons-halflings-regular.eot | Bin 20335 -> 20127 bytes
.../fonts/glyphicons-halflings-regular.svg | 487 +-
.../fonts/glyphicons-halflings-regular.ttf | Bin 41280 -> 45404 bytes
.../fonts/glyphicons-halflings-regular.woff | Bin 23320 -> 23424 bytes
.../fonts/glyphicons-halflings-regular.woff2 | Bin 0 -> 18028 bytes
.../src/test/webapp/bootstrap/js/affix.js | 14 +-
.../src/test/webapp/bootstrap/js/alert.js | 6 +-
.../src/test/webapp/bootstrap/js/button.js | 6 +-
.../src/test/webapp/bootstrap/js/carousel.js | 25 +-
.../src/test/webapp/bootstrap/js/collapse.js | 18 +-
.../src/test/webapp/bootstrap/js/dropdown.js | 8 +-
.../src/test/webapp/bootstrap/js/modal.js | 69 +-
.../src/test/webapp/bootstrap/js/popover.js | 29 +-
.../src/test/webapp/bootstrap/js/scrollspy.js | 39 +-
.../src/test/webapp/bootstrap/js/tab.js | 8 +-
.../src/test/webapp/bootstrap/js/tooltip.js | 54 +-
.../src/test/webapp/bootstrap/js/transition.js | 4 +-
.../src/test/webapp/bootstrap/less/alerts.less | 5 +
.../src/test/webapp/bootstrap/less/badges.less | 7 +-
.../webapp/bootstrap/less/button-groups.less | 4 +-
.../src/test/webapp/bootstrap/less/buttons.less | 2 +-
.../test/webapp/bootstrap/less/carousel.less | 14 +-
.../src/test/webapp/bootstrap/less/close.less | 1 +
.../bootstrap/less/component-animations.less | 3 +-
.../test/webapp/bootstrap/less/dropdowns.less | 5 +-
.../src/test/webapp/bootstrap/less/forms.less | 74 +-
.../test/webapp/bootstrap/less/glyphicons.less | 71 +
.../test/webapp/bootstrap/less/jumbotron.less | 1 +
.../src/test/webapp/bootstrap/less/media.less | 14 +
.../bootstrap/less/mixins/vendor-prefixes.less | 2 +-
.../src/test/webapp/bootstrap/less/modals.less | 4 +-
.../src/test/webapp/bootstrap/less/navbar.less | 2 +-
.../src/test/webapp/bootstrap/less/navs.less | 2 -
.../src/test/webapp/bootstrap/less/panels.less | 6 +-
.../test/webapp/bootstrap/less/popovers.less | 2 +-
.../webapp/bootstrap/less/responsive-embed.less | 16 +-
.../test/webapp/bootstrap/less/scaffolding.less | 12 +
.../src/test/webapp/bootstrap/less/tables.less | 6 +-
.../src/test/webapp/bootstrap/less/theme.less | 5 +-
.../src/test/webapp/bootstrap/less/tooltip.less | 3 +-
.../src/test/webapp/bootstrap/less/type.less | 2 +-
.../test/webapp/bootstrap/less/utilities.less | 1 -
.../test/webapp/bootstrap/less/variables.less | 11 +-
.../apache/tapestry5/beaneditor/Translate.java | 13 +-
.../apache/tapestry5/beaneditor/Validate.java | 13 +-
.../org/apache/tapestry5/beaneditor/Width.java | 9 +-
.../tapestry5/ioc/annotations/Inject.java | 18 +-
.../ioc/annotations/InjectResource.java | 4 +-
.../ioc/annotations/InjectService.java | 9 +-
.../ioc/annotations/PostInjection.java | 4 +-
.../tapestry5/ioc/annotations/Symbol.java | 6 +-
.../annotations/UsesMappedConfiguration.java | 6 +-
554 files changed, 26513 insertions(+), 24985 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/76e69ad3/plastic/src/main/java/org/apache/tapestry5/internal/plastic/PlasticClassImpl.java
----------------------------------------------------------------------
[5/5] tapestry-5 git commit: Merge branch 'master' of
https://git-wip-us.apache.org/repos/asf/tapestry-5
Posted by th...@apache.org.
Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/tapestry-5
Project: http://git-wip-us.apache.org/repos/asf/tapestry-5/repo
Commit: http://git-wip-us.apache.org/repos/asf/tapestry-5/commit/d61eee73
Tree: http://git-wip-us.apache.org/repos/asf/tapestry-5/tree/d61eee73
Diff: http://git-wip-us.apache.org/repos/asf/tapestry-5/diff/d61eee73
Branch: refs/heads/master
Commit: d61eee730bf3154e42adb2e1afc99b25e5eb106c
Parents: 72334aa 766c16b
Author: Thiago H. de Paula Figueiredo <th...@apache.org>
Authored: Thu Jun 18 23:50:47 2015 -0300
Committer: Thiago H. de Paula Figueiredo <th...@apache.org>
Committed: Thu Jun 18 23:50:47 2015 -0300
----------------------------------------------------------------------
54_RELEASE_NOTES.md | 2 +-
build.gradle | 4 +-
.../main/java/org/apache/tapestry5/Field.java | 3 -
.../tapestry5/bootstrap/css/bootstrap-theme.css | 139 ++++++-
.../tapestry5/bootstrap/css/bootstrap.css | 368 +++++++++++++++----
.../assets/tapestry5/bootstrap/js/affix.js | 6 +-
.../assets/tapestry5/bootstrap/js/alert.js | 4 +-
.../assets/tapestry5/bootstrap/js/button.js | 22 +-
.../assets/tapestry5/bootstrap/js/carousel.js | 4 +-
.../assets/tapestry5/bootstrap/js/collapse.js | 4 +-
.../assets/tapestry5/bootstrap/js/dropdown.js | 88 ++---
.../assets/tapestry5/bootstrap/js/modal.js | 12 +-
.../assets/tapestry5/bootstrap/js/popover.js | 4 +-
.../assets/tapestry5/bootstrap/js/scrollspy.js | 4 +-
.../assets/tapestry5/bootstrap/js/tab.js | 8 +-
.../assets/tapestry5/bootstrap/js/tooltip.js | 78 +++-
.../assets/tapestry5/bootstrap/js/transition.js | 2 +-
.../src/test/webapp/bootstrap/js/affix.js | 6 +-
.../src/test/webapp/bootstrap/js/alert.js | 4 +-
.../src/test/webapp/bootstrap/js/button.js | 22 +-
.../src/test/webapp/bootstrap/js/carousel.js | 4 +-
.../src/test/webapp/bootstrap/js/collapse.js | 4 +-
.../src/test/webapp/bootstrap/js/dropdown.js | 88 ++---
.../src/test/webapp/bootstrap/js/modal.js | 12 +-
.../src/test/webapp/bootstrap/js/popover.js | 4 +-
.../src/test/webapp/bootstrap/js/scrollspy.js | 4 +-
.../src/test/webapp/bootstrap/js/tab.js | 8 +-
.../src/test/webapp/bootstrap/js/tooltip.js | 78 +++-
.../src/test/webapp/bootstrap/js/transition.js | 2 +-
.../src/test/webapp/bootstrap/less/badges.less | 2 +-
.../test/webapp/bootstrap/less/bootstrap.less | 6 +
.../webapp/bootstrap/less/button-groups.less | 5 +-
.../src/test/webapp/bootstrap/less/buttons.less | 16 +-
.../test/webapp/bootstrap/less/carousel.less | 4 +-
.../test/webapp/bootstrap/less/dropdowns.less | 4 +-
.../src/test/webapp/bootstrap/less/forms.less | 55 ++-
.../webapp/bootstrap/less/input-groups.less | 1 +
.../test/webapp/bootstrap/less/jumbotron.less | 8 +-
.../test/webapp/bootstrap/less/list-group.less | 12 +-
.../src/test/webapp/bootstrap/less/media.less | 5 +
.../src/test/webapp/bootstrap/less/mixins.less | 1 +
.../less/mixins/background-variant.less | 3 +-
.../webapp/bootstrap/less/mixins/buttons.less | 20 +-
.../bootstrap/less/mixins/grid-framework.less | 4 +-
.../test/webapp/bootstrap/less/mixins/grid.less | 4 +-
.../webapp/bootstrap/less/mixins/hide-text.less | 2 +-
.../bootstrap/less/mixins/list-group.less | 3 +-
.../bootstrap/less/mixins/pagination.less | 3 +-
.../bootstrap/less/mixins/reset-text.less | 18 +
.../less/mixins/responsive-visibility.less | 2 +-
.../bootstrap/less/mixins/text-emphasis.less | 3 +-
.../test/webapp/bootstrap/less/normalize.less | 19 +-
.../test/webapp/bootstrap/less/pagination.less | 5 +-
.../src/test/webapp/bootstrap/less/panels.less | 6 +
.../test/webapp/bootstrap/less/popovers.less | 12 +-
.../src/test/webapp/bootstrap/less/print.less | 6 -
.../test/webapp/bootstrap/less/scaffolding.less | 3 +-
.../src/test/webapp/bootstrap/less/theme.less | 28 +-
.../src/test/webapp/bootstrap/less/tooltip.less | 9 +-
.../test/webapp/bootstrap/less/variables.less | 8 +-
60 files changed, 899 insertions(+), 366 deletions(-)
----------------------------------------------------------------------
[3/5] tapestry-5 git commit: Merge branch 'master' of
https://git-wip-us.apache.org/repos/asf/tapestry-5
Posted by th...@apache.org.
Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/tapestry-5
Project: http://git-wip-us.apache.org/repos/asf/tapestry-5/repo
Commit: http://git-wip-us.apache.org/repos/asf/tapestry-5/commit/8c8a13a1
Tree: http://git-wip-us.apache.org/repos/asf/tapestry-5/tree/8c8a13a1
Diff: http://git-wip-us.apache.org/repos/asf/tapestry-5/diff/8c8a13a1
Branch: refs/heads/master
Commit: 8c8a13a1b562844a0c29eb145d00b26050b5f632
Parents: 76e69ad 94cd5b5
Author: Thiago H. de Paula Figueiredo <th...@apache.org>
Authored: Wed Jun 3 22:17:54 2015 -0300
Committer: Thiago H. de Paula Figueiredo <th...@apache.org>
Committed: Wed Jun 3 22:17:54 2015 -0300
----------------------------------------------------------------------
beanmodel/build.gradle | 58 +---------
.../internal/plastic/MethodAdviceManager.java | 23 ++--
.../internal/plastic/PlasticClassPool.java | 105 +++++++++++++------
.../tapestry5/plastic/MethodAdviceTests.groovy | 44 ++++++++
.../java/testsubjects/DeclaredExceptions.java | 21 ++++
tapestry-core/build.gradle | 1 -
.../modules/t5/core/confirm-click.coffee | 5 +-
.../modules/t5/core/exception-frame.coffee | 79 +++++++-------
.../modules/t5/core/form-fragment.coffee | 43 +++++---
.../apache/tapestry5/ContextAwareException.java | 10 +-
.../tapestry5/ExceptionHandlerAssistant.java | 26 ++++-
.../corelib/components/FormFragment.java | 18 ++--
.../tapestry5/corelib/mixins/Confirm.java | 18 +++-
.../internal/services/AssetSourceImpl.java | 59 +++++++----
.../DefaultRequestExceptionHandler.java | 2 +-
.../internal/services/SaxTemplateParser.java | 2 +
.../services/RequestExceptionHandler.java | 11 +-
.../org/apache/tapestry5/core.properties | 4 +-
.../services/TemplateParserImplTest.java | 22 ++++
.../tapestry5/internal/services/TAP5-2109.tml | 7 ++
.../webresources/GoogleClosureMinimizer.java | 11 +-
.../webresources/WebResourcesSymbols.java | 9 ++
.../modules/WebResourcesModule.java | 2 +
23 files changed, 383 insertions(+), 197 deletions(-)
----------------------------------------------------------------------
[3/5] tapestry-5 git commit: Merge branch 'master' of
https://git-wip-us.apache.org/repos/asf/tapestry-5
Posted by th...@apache.org.
Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/tapestry-5
Project: http://git-wip-us.apache.org/repos/asf/tapestry-5/repo
Commit: http://git-wip-us.apache.org/repos/asf/tapestry-5/commit/8c8a13a1
Tree: http://git-wip-us.apache.org/repos/asf/tapestry-5/tree/8c8a13a1
Diff: http://git-wip-us.apache.org/repos/asf/tapestry-5/diff/8c8a13a1
Branch: refs/heads/master
Commit: 8c8a13a1b562844a0c29eb145d00b26050b5f632
Parents: 76e69ad 94cd5b5
Author: Thiago H. de Paula Figueiredo <th...@apache.org>
Authored: Wed Jun 3 22:17:54 2015 -0300
Committer: Thiago H. de Paula Figueiredo <th...@apache.org>
Committed: Wed Jun 3 22:17:54 2015 -0300
----------------------------------------------------------------------
beanmodel/build.gradle | 58 +---------
.../internal/plastic/MethodAdviceManager.java | 23 ++--
.../internal/plastic/PlasticClassPool.java | 105 +++++++++++++------
.../tapestry5/plastic/MethodAdviceTests.groovy | 44 ++++++++
.../java/testsubjects/DeclaredExceptions.java | 21 ++++
tapestry-core/build.gradle | 1 -
.../modules/t5/core/confirm-click.coffee | 5 +-
.../modules/t5/core/exception-frame.coffee | 79 +++++++-------
.../modules/t5/core/form-fragment.coffee | 43 +++++---
.../apache/tapestry5/ContextAwareException.java | 10 +-
.../tapestry5/ExceptionHandlerAssistant.java | 26 ++++-
.../corelib/components/FormFragment.java | 18 ++--
.../tapestry5/corelib/mixins/Confirm.java | 18 +++-
.../internal/services/AssetSourceImpl.java | 59 +++++++----
.../DefaultRequestExceptionHandler.java | 2 +-
.../internal/services/SaxTemplateParser.java | 2 +
.../services/RequestExceptionHandler.java | 11 +-
.../org/apache/tapestry5/core.properties | 4 +-
.../services/TemplateParserImplTest.java | 22 ++++
.../tapestry5/internal/services/TAP5-2109.tml | 7 ++
.../webresources/GoogleClosureMinimizer.java | 11 +-
.../webresources/WebResourcesSymbols.java | 9 ++
.../modules/WebResourcesModule.java | 2 +
23 files changed, 383 insertions(+), 197 deletions(-)
----------------------------------------------------------------------
[2/5] tapestry-5 git commit: Merge branch 'master' of
https://git-wip-us.apache.org/repos/asf/tapestry-5
Posted by th...@apache.org.
Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/tapestry-5
Project: http://git-wip-us.apache.org/repos/asf/tapestry-5/repo
Commit: http://git-wip-us.apache.org/repos/asf/tapestry-5/commit/76e69ad3
Tree: http://git-wip-us.apache.org/repos/asf/tapestry-5/tree/76e69ad3
Diff: http://git-wip-us.apache.org/repos/asf/tapestry-5/diff/76e69ad3
Branch: refs/heads/master
Commit: 76e69ad3777a7800f8378dda9d3269b22c9b4050
Parents: 177dc5c 450b36a
Author: Thiago H. de Paula Figueiredo <th...@apache.org>
Authored: Fri May 29 22:30:39 2015 -0300
Committer: Thiago H. de Paula Figueiredo <th...@apache.org>
Committed: Fri May 29 22:30:39 2015 -0300
----------------------------------------------------------------------
54_RELEASE_NOTES.md | 60 +-
.../apache/tapestry5/beaneditor/BeanModel.java | 8 +-
.../beaneditor/BeanModelSourceBuilder.java | 16 +-
.../tapestry5/beaneditor/PropertyModel.java | 6 +-
.../tapestry5/services/BeanModelSource.java | 6 +-
.../services/PropertyConduitSource.java | 4 +-
build.gradle | 118 +-
buildSrc/build.gradle | 9 +-
.../org/apache/tapestry5/ioc/Configuration.java | 8 +-
.../tapestry5/ioc/MappedConfiguration.java | 6 +-
.../org/apache/tapestry5/ioc/ObjectLocator.java | 13 +-
.../tapestry5/ioc/OrderedConfiguration.java | 10 +-
.../java/org/apache/tapestry5/ioc/Resource.java | 10 +-
.../ioc/internal/BasicTypeCoercions.java | 4 +-
.../ioc/internal/services/TypeCoercerImpl.java | 8 +-
.../ioc/internal/util/CollectionFactory.java | 10 +-
.../ioc/internal/util/GenericsUtils.java | 28 +-
.../ioc/internal/util/InheritanceSearch.java | 14 +-
.../ioc/services/ClassPropertyAdapter.java | 6 +-
.../tapestry5/ioc/services/PropertyAccess.java | 6 +-
.../tapestry5/ioc/services/PropertyAdapter.java | 4 +-
.../tapestry5/ioc/services/TypeCoercer.java | 6 +-
.../tapestry5/ioc/util/CaseInsensitiveMap.java | 73 +-
.../apache/tapestry5/ioc/util/TimeInterval.java | 14 +-
.../tapestry5/services/DataTypeAnalyzer.java | 8 +-
.../services/InvalidationEventHub.java | 4 +-
.../tapestry5/util/StringToEnumCoercion.java | 8 +-
gradle/wrapper/gradle-wrapper.jar | Bin 51017 -> 52266 bytes
gradle/wrapper/gradle-wrapper.properties | 4 +-
plastic/build.gradle | 1 -
.../internal/plastic/asm/MethodWriter.java | 4 +-
.../plastic/asm/commons/AdviceAdapter.java | 10 +-
.../internal/plastic/asm/util/ASMifier.java | 12 +-
.../plastic/asm/util/CheckClassAdapter.java | 32 +-
.../internal/plastic/asm/util/Textifier.java | 15 +-
.../plastic/asm/util/TraceClassVisitor.java | 16 +-
.../internal/plastic/asm/xml/Processor.java | 48 +-
.../internal/plastic/InheritanceData.java | 10 +-
.../internal/plastic/MethodAdviceManager.java | 2 +-
.../internal/plastic/PlasticClassImpl.java | 2 +-
.../internal/plastic/PlasticClassPool.java | 2 +-
.../internal/plastic/PlasticInternalUtils.java | 38 +-
.../apache/tapestry5/plastic/FieldConduit.java | 6 +-
.../tapestry5/plastic/InstructionBuilder.java | 8 +-
.../tapestry5/plastic/MethodDescription.java | 12 +-
.../tapestry5/plastic/MethodInvocation.java | 4 +-
.../apache/tapestry5/plastic/PlasticClass.java | 16 +-
.../plastic/PlasticClassTransformation.java | 4 +-
.../tapestry5/plastic/PlasticConstants.java | 29 +
.../apache/tapestry5/plastic/PlasticField.java | 6 +-
.../tapestry5/plastic/PlasticManager.java | 12 +-
.../apache/tapestry5/plastic/PlasticMethod.java | 10 +-
.../apache/tapestry5/plastic/PlasticUtils.java | 4 +-
.../apache/tapestry5/plastic/TryCatchBlock.java | 4 +-
.../plastic/FieldPropertyMethodCreation.groovy | 15 +
.../AccessorsAlreadyExistSubject2.java | 15 +
.../filtered/archetype-resources/build.gradle | 23 +-
quickstart/filtered/archetype-resources/pom.xml | 18 +-
.../src/main/java/components/Layout.java | 60 +-
.../src/main/java/pages/About.java | 16 +-
.../src/main/java/pages/Index.java | 78 +-
.../src/main/java/pages/Login.java | 69 +-
.../src/main/java/services/AppModule.java | 58 +-
.../src/main/resources/components/Layout.tml | 30 +-
.../src/main/resources/pages/About.tml | 2 +-
.../src/main/resources/pages/Contact.tml | 2 +-
.../src/main/resources/pages/Error404.tml | 2 +-
.../src/main/resources/pages/Index.tml | 12 +-
.../src/main/resources/pages/Login.tml | 10 +-
.../mybootstrap/css/bootstrap-responsive.css | 1109 --
.../webapp/mybootstrap/css/bootstrap-theme.css | 476 +
.../main/webapp/mybootstrap/css/bootstrap.css | 11735 ++++++++---------
.../fonts/glyphicons-halflings-regular.eot | Bin 0 -> 20127 bytes
.../fonts/glyphicons-halflings-regular.svg | 288 +
.../fonts/glyphicons-halflings-regular.ttf | Bin 0 -> 45404 bytes
.../fonts/glyphicons-halflings-regular.woff | Bin 0 -> 23424 bytes
.../fonts/glyphicons-halflings-regular.woff2 | Bin 0 -> 18028 bytes
.../img/glyphicons-halflings-white.png | Bin 8777 -> 0 bytes
.../mybootstrap/img/glyphicons-halflings.png | Bin 12799 -> 0 bytes
.../src/main/webapp/mybootstrap/js/affix.js | 162 +
.../src/main/webapp/mybootstrap/js/alert.js | 94 +
.../src/main/webapp/mybootstrap/js/bootstrap.js | 2280 ----
.../src/main/webapp/mybootstrap/js/button.js | 116 +
.../src/main/webapp/mybootstrap/js/carousel.js | 237 +
.../src/main/webapp/mybootstrap/js/collapse.js | 211 +
.../src/main/webapp/mybootstrap/js/dropdown.js | 161 +
.../src/main/webapp/mybootstrap/js/modal.js | 339 +
.../src/main/webapp/mybootstrap/js/popover.js | 108 +
.../src/main/webapp/mybootstrap/js/scrollspy.js | 172 +
.../src/main/webapp/mybootstrap/js/tab.js | 153 +
.../src/main/webapp/mybootstrap/js/tooltip.js | 476 +
.../main/webapp/mybootstrap/js/transition.js | 59 +
tapestry-beanvalidator/build.gradle | 2 +
.../ClientConstraintDescriptor.java | 4 +-
tapestry-clojure/build.gradle | 1 -
.../LICENSE-typeahead.js-bootstrap3.less.txt | 21 +
tapestry-core/NOTICE.txt | 3 +
tapestry-core/build.gradle | 6 +-
.../modules/t5/core/autocomplete.coffee | 30 +-
.../META-INF/modules/t5/core/console.coffee | 39 +-
.../META-INF/modules/t5/core/events.coffee | 3 +
.../META-INF/modules/t5/core/forms.coffee | 4 +
.../META-INF/modules/t5/core/pageinit.coffee | 36 +-
.../META-INF/modules/t5/core/validation.coffee | 25 +-
.../modules/t5/core/zone-refresh.coffee | 5 +-
.../META-INF/modules/t5/core/zone.coffee | 13 +-
.../main/java/org/apache/tapestry5/Asset.java | 12 +-
.../BaseOptimizedSessionPersistedObject.java | 6 +-
.../main/java/org/apache/tapestry5/Binding.java | 4 +-
.../main/java/org/apache/tapestry5/Block.java | 4 +-
.../org/apache/tapestry5/ClientElement.java | 4 +-
.../org/apache/tapestry5/ComponentAction.java | 6 +-
.../tapestry5/ComponentEventCallback.java | 4 +-
.../apache/tapestry5/ComponentResources.java | 4 +-
.../tapestry5/ComponentResourcesCommon.java | 64 +-
.../java/org/apache/tapestry5/ContentType.java | 2 +-
.../org/apache/tapestry5/EventConstants.java | 7 +-
.../main/java/org/apache/tapestry5/Field.java | 7 +-
.../main/java/org/apache/tapestry5/Link.java | 14 +-
.../java/org/apache/tapestry5/MarkupWriter.java | 4 +-
.../OptimizedSessionPersistedObject.java | 4 +-
.../java/org/apache/tapestry5/PageCallback.java | 8 +-
.../java/org/apache/tapestry5/SelectModel.java | 4 +-
.../org/apache/tapestry5/SymbolConstants.java | 38 +-
.../org/apache/tapestry5/TapestryConstants.java | 4 +-
.../org/apache/tapestry5/TapestryFilter.java | 8 +-
.../TrackableComponentEventCallback.java | 8 +-
.../apache/tapestry5/ValidationDecorator.java | 6 +-
.../org/apache/tapestry5/ValidationTracker.java | 10 +-
.../apache/tapestry5/ValidationTrackerImpl.java | 20 +-
.../java/org/apache/tapestry5/Validator.java | 4 +-
.../java/org/apache/tapestry5/ValueEncoder.java | 10 +-
.../java/org/apache/tapestry5/VersionUtils.java | 4 +-
.../apache/tapestry5/ajax/MultiZoneUpdate.java | 4 +-
.../annotations/ActivationRequestParameter.java | 24 +-
.../tapestry5/annotations/BeforeRenderBody.java | 13 +-
.../tapestry5/annotations/BeginRender.java | 13 +-
.../tapestry5/annotations/BindParameter.java | 12 +-
.../apache/tapestry5/annotations/Cached.java | 11 +-
.../tapestry5/annotations/Environmental.java | 16 +-
.../annotations/HeartbeatDeferred.java | 18 +-
.../apache/tapestry5/annotations/Import.java | 8 +-
.../apache/tapestry5/annotations/OnEvent.java | 17 +-
.../annotations/PageActivationContext.java | 11 +-
.../tapestry5/annotations/PageAttached.java | 4 +-
.../tapestry5/annotations/PageDetached.java | 4 +-
.../tapestry5/annotations/PageLoaded.java | 11 +-
.../apache/tapestry5/annotations/PageReset.java | 18 +-
.../apache/tapestry5/annotations/Persist.java | 12 +-
.../apache/tapestry5/annotations/Property.java | 11 +-
.../tapestry5/annotations/RequestParameter.java | 19 +-
.../apache/tapestry5/annotations/Retain.java | 13 +-
.../apache/tapestry5/annotations/Secure.java | 11 +-
.../tapestry5/annotations/SessionState.java | 13 +-
.../tapestry5/annotations/SetupRender.java | 2 +-
.../annotations/WhitelistAccessOnly.java | 4 +-
.../corelib/base/AbstractConditional.java | 6 +-
.../tapestry5/corelib/base/AbstractField.java | 8 +-
.../corelib/base/AbstractPropertyOutput.java | 2 +-
.../corelib/base/AbstractTextField.java | 10 +-
.../corelib/components/AjaxFormLoop.java | 8 +-
.../tapestry5/corelib/components/Alerts.java | 3 +-
.../tapestry5/corelib/components/Any.java | 11 +-
.../corelib/components/BeanDisplay.java | 6 +-
.../corelib/components/BeanEditForm.java | 6 +-
.../corelib/components/BeanEditor.java | 4 -
.../tapestry5/corelib/components/Checklist.java | 8 +-
.../tapestry5/corelib/components/DateField.java | 39 +-
.../tapestry5/corelib/components/Delegate.java | 6 +-
.../tapestry5/corelib/components/DevTool.java | 6 +-
.../tapestry5/corelib/components/Dynamic.java | 6 +-
.../tapestry5/corelib/components/Error.java | 6 +-
.../tapestry5/corelib/components/Errors.java | 2 +-
.../tapestry5/corelib/components/EventLink.java | 8 +-
.../tapestry5/corelib/components/Form.java | 40 +-
.../corelib/components/FormFragment.java | 4 +-
.../tapestry5/corelib/components/Grid.java | 27 +-
.../tapestry5/corelib/components/GridRows.java | 6 +-
.../tapestry5/corelib/components/Hidden.java | 4 +-
.../tapestry5/corelib/components/Label.java | 4 +-
.../tapestry5/corelib/components/LocalDate.java | 6 +-
.../tapestry5/corelib/components/Loop.java | 28 +-
.../tapestry5/corelib/components/PageLink.java | 4 +-
.../tapestry5/corelib/components/Palette.java | 22 +-
.../corelib/components/PasswordField.java | 4 +-
.../corelib/components/ProgressiveDisplay.java | 4 +-
.../tapestry5/corelib/components/Radio.java | 4 +-
.../corelib/components/RadioGroup.java | 5 +
.../tapestry5/corelib/components/Select.java | 2 +-
.../tapestry5/corelib/components/TextArea.java | 4 +-
.../tapestry5/corelib/components/TextField.java | 4 +-
.../corelib/components/TimeInterval.java | 6 +-
.../tapestry5/corelib/components/Tree.java | 4 +-
.../tapestry5/corelib/components/Zone.java | 12 +-
.../tapestry5/corelib/data/SecureOption.java | 7 +-
.../corelib/internal/FormSupportImpl.java | 4 +-
.../tapestry5/corelib/mixins/Autocomplete.java | 11 +-
.../tapestry5/corelib/mixins/Confirm.java | 26 +-
.../corelib/mixins/FormFieldFocus.java | 5 +-
.../tapestry5/corelib/mixins/FormGroup.java | 14 +-
.../tapestry5/corelib/mixins/NotEmpty.java | 4 +-
.../corelib/mixins/OverrideFieldFocus.java | 7 +-
.../corelib/mixins/RenderClientId.java | 8 +-
.../corelib/mixins/RenderInformals.java | 14 +-
.../tapestry5/corelib/mixins/ZoneRefresh.java | 16 +-
.../corelib/pages/ExceptionReport.java | 99 +-
.../tapestry5/corelib/pages/ServiceStatus.java | 4 +-
.../java/org/apache/tapestry5/dom/Element.java | 4 +-
.../internal/BeanValidationContext.java | 2 -
.../internal/BeanValidationContextImpl.java | 2 -
.../InternalComponentResourcesCommon.java | 4 +-
.../tapestry5/internal/InternalSymbols.java | 2 +-
.../internal/TapestryAppInitializer.java | 6 +-
.../internal/TapestryInternalUtils.java | 2 +-
.../internal/bindings/LiteralBinding.java | 6 +-
.../internal/bindings/PropBindingFactory.java | 4 +-
.../pageload/EmbeddedComponentAssembler.java | 6 +-
.../internal/pageload/PageLoaderImpl.java | 4 +-
.../services/BlockInjectionProvider.java | 4 +-
.../services/ComponentClassResolverImpl.java | 12 +-
.../services/ComponentInstantiatorSource.java | 8 +-
.../internal/services/ComponentModelSource.java | 4 +-
.../services/ComponentResourcesOperation.java | 4 +-
.../services/ComponentTemplateSource.java | 6 +-
.../services/ComponentTemplateSourceImpl.java | 2 +-
.../DefaultRequestExceptionHandler.java | 9 +-
.../internal/services/DocumentLinker.java | 4 +-
.../services/FormControlNameManager.java | 2 -
.../tapestry5/internal/services/LinkSource.java | 35 +-
.../internal/services/MessagesSourceImpl.java | 6 +-
.../internal/services/PageRenderQueue.java | 6 +-
.../internal/services/RequestPageCache.java | 6 +-
.../services/ResourceDigestManager.java | 8 +-
.../internal/services/SaxTemplateParser.java | 24 +-
...sionApplicationStatePersistenceStrategy.java | 4 +-
.../SessionPersistentFieldStrategy.java | 4 +-
.../UnknownActivationContextHandler.java | 4 +-
.../services/assets/CSSURLRewriter.java | 20 +-
.../assets/CompressionAnalyzerImpl.java | 20 +-
.../assets/JavaScriptStackAssembler.java | 2 +-
.../exceptions/ExceptionReportWriterImpl.java | 313 +
.../exceptions/ExceptionReporterImpl.java | 251 +-
.../structure/ComponentPageElementImpl.java | 21 +-
.../InternalComponentResourcesImpl.java | 16 -
.../tapestry5/internal/structure/Page.java | 12 +-
.../tapestry5/internal/structure/PageImpl.java | 19 +-
.../EventHandlerMethodParameterProvider.java | 4 +-
.../internal/transform/ImportWorker.java | 4 +-
.../internal/transform/InjectPageWorker.java | 16 +-
.../internal/transform/InjectWorker.java | 4 +-
.../internal/transform/ParameterConduit.java | 6 +-
.../tapestry5/internal/util/LocaleUtils.java | 12 +-
.../tapestry5/internal/util/NamedSet.java | 2 +-
.../apache/tapestry5/model/ComponentModel.java | 25 +-
.../tapestry5/model/MutableComponentModel.java | 4 +-
.../apache/tapestry5/modules/AssetsModule.java | 3 +
.../tapestry5/modules/InternalModule.java | 3 +-
.../tapestry5/modules/JavaScriptModule.java | 8 +-
.../tapestry5/modules/TapestryModule.java | 36 +-
.../org/apache/tapestry5/runtime/Component.java | 6 +-
.../apache/tapestry5/runtime/RenderCommand.java | 4 +-
.../services/ApplicationStateManager.java | 6 +-
.../apache/tapestry5/services/AssetFactory.java | 10 +-
.../tapestry5/services/AssetPathConverter.java | 4 +-
.../apache/tapestry5/services/AssetSource.java | 8 +-
.../services/BeanBlockOverrideSource.java | 6 +-
.../tapestry5/services/BeanBlockSource.java | 6 +-
.../tapestry5/services/BindingFactory.java | 4 +-
.../tapestry5/services/BindingSource.java | 4 +-
.../services/ClasspathAssetAliasManager.java | 10 +-
.../services/ClientBehaviorSupport.java | 8 +-
.../tapestry5/services/ClientDataEncoder.java | 4 +-
.../services/ComponentClassResolver.java | 10 +-
.../services/ComponentEventLinkEncoder.java | 12 +-
.../services/ComponentEventRequestHandler.java | 6 +-
.../services/ComponentEventResultProcessor.java | 6 +-
.../tapestry5/services/ComponentOverride.java | 2 +-
.../apache/tapestry5/services/Environment.java | 4 +-
.../services/ExceptionReportWriter.java | 38 +
.../tapestry5/services/ExceptionReporter.java | 10 +-
.../services/FieldValidatorSource.java | 8 +-
.../apache/tapestry5/services/Heartbeat.java | 4 +-
.../services/HiddenFieldLocationRules.java | 4 +-
.../tapestry5/services/LibraryMapping.java | 14 +-
.../tapestry5/services/LocalizationSetter.java | 12 +-
.../tapestry5/services/MarkupRenderer.java | 4 +-
.../tapestry5/services/MetaDataLocator.java | 4 +-
.../tapestry5/services/ObjectRenderer.java | 4 +-
.../services/PageRenderLinkSource.java | 28 +-
.../services/PageRenderRequestHandler.java | 4 +-
.../services/PartialMarkupRenderer.java | 6 +-
.../services/PartialTemplateRenderer.java | 24 +-
.../org/apache/tapestry5/services/Request.java | 8 +-
.../services/RequestExceptionHandler.java | 8 +-
.../services/ResourceDigestGenerator.java | 8 +-
.../org/apache/tapestry5/services/Response.java | 8 +-
.../SessionPersistedObjectAnalyzer.java | 8 +-
.../tapestry5/services/StreamPageContent.java | 6 +-
.../tapestry5/services/TransformConstants.java | 4 +-
.../services/TranslatorAlternatesSource.java | 8 +-
.../tapestry5/services/TranslatorSource.java | 8 +-
.../services/ajax/AjaxResponseRenderer.java | 2 +-
.../services/assets/AssetRequestHandler.java | 6 +-
.../services/assets/CompressionAnalyzer.java | 4 +-
.../services/assets/ContentTypeAnalyzer.java | 4 +-
.../services/assets/ResourceMinimizer.java | 8 +-
.../tapestry5/services/assets/package-info.java | 4 +-
.../services/compatibility/Compatibility.java | 4 +-
.../tapestry5/services/compatibility/Trait.java | 10 +-
.../services/javascript/AMDWrapper.java | 24 +-
.../javascript/ExtensibleJavaScriptStack.java | 2 +-
.../services/javascript/Initialization.java | 4 +-
.../javascript/InitializationPriority.java | 4 +-
.../JavaScriptModuleConfiguration.java | 8 +-
.../services/javascript/JavaScriptStack.java | 6 +-
.../services/javascript/JavaScriptSupport.java | 18 +-
.../javascript/ModuleConfigurationCallback.java | 6 +-
.../services/javascript/ModuleManager.java | 4 +-
.../services/javascript/StackExtensionType.java | 4 +-
.../services/javascript/StylesheetLink.java | 2 +-
.../services/javascript/StylesheetOptions.java | 2 +-
.../ComponentEventLinkTransformer.java | 6 +-
.../PageRenderLinkTransformer.java | 6 +-
.../services/pageload/PagePreloader.java | 4 +-
.../templates/ComponentTemplateLocator.java | 4 +-
.../ComponentClassTransformWorker2.java | 4 +-
.../services/transform/InjectionProvider2.java | 4 +-
.../org/apache/tapestry5/test/PageTester.java | 4 +-
.../apache/tapestry5/tree/DefaultTreeModel.java | 4 +-
.../tapestry5/tree/TreeSelectionModel.java | 4 +-
.../org/apache/tapestry5/validator/Email.java | 13 +-
.../org/apache/tapestry5/validator/Regexp.java | 2 +-
.../org/apache/tapestry5/t5-core-dom.coffee | 6 +-
.../META-INF/assets/core/Autocomplete.css | 56 -
.../META-INF/assets/core/ExceptionReport.css | 4 +
.../assets/core/typeahead-bootstrap3.css | 189 +
.../tapestry5/bootstrap/css/bootstrap-theme.css | 10 +-
.../tapestry5/bootstrap/css/bootstrap.css | 326 +-
.../fonts/glyphicons-halflings-regular.eot | Bin 20335 -> 20127 bytes
.../fonts/glyphicons-halflings-regular.svg | 487 +-
.../fonts/glyphicons-halflings-regular.ttf | Bin 41280 -> 45404 bytes
.../fonts/glyphicons-halflings-regular.woff | Bin 23320 -> 23424 bytes
.../fonts/glyphicons-halflings-regular.woff2 | Bin 0 -> 18028 bytes
.../assets/tapestry5/bootstrap/js/affix.js | 14 +-
.../assets/tapestry5/bootstrap/js/alert.js | 6 +-
.../assets/tapestry5/bootstrap/js/button.js | 6 +-
.../assets/tapestry5/bootstrap/js/carousel.js | 25 +-
.../assets/tapestry5/bootstrap/js/collapse.js | 18 +-
.../assets/tapestry5/bootstrap/js/dropdown.js | 8 +-
.../assets/tapestry5/bootstrap/js/modal.js | 69 +-
.../assets/tapestry5/bootstrap/js/popover.js | 29 +-
.../assets/tapestry5/bootstrap/js/scrollspy.js | 39 +-
.../assets/tapestry5/bootstrap/js/tab.js | 8 +-
.../assets/tapestry5/bootstrap/js/tooltip.js | 54 +-
.../assets/tapestry5/bootstrap/js/transition.js | 4 +-
.../META-INF/assets/tapestry5/jquery.js | 13 +-
.../META-INF/assets/tapestry5/moment-2.10.3.js | 9737 ++++++++++++++
.../META-INF/assets/tapestry5/moment-2.8.4.js | 9394 -------------
.../META-INF/assets/tapestry5/require.js | 95 +-
.../assets/tapestry5/typeahead-0.9.3.js | 1139 --
.../META-INF/assets/tapestry5/typeahead.js | 1782 +++
.../assets/tapestry5/underscore-1.7.0.js | 1416 --
.../assets/tapestry5/underscore-1.8.3.js | 1548 +++
.../org/apache/tapestry5/core_fr.properties | 2 +-
.../tapestry5/corelib/pages/ExceptionReport.tml | 48 +-
.../src/test/app1/AutocompleteDemo.tml | 3 +-
tapestry-core/src/test/app1/DisabledFields.tml | 6 +
.../src/test/app1/GridEarlyPagingDemo.tml | 10 +
.../app1/GridFormWithInitialSortMixinDemo.tml | 38 +
tapestry-core/src/test/app1/GridInLoopDemo.tml | 20 +
.../src/test/app1/ValidateInErrorEvent.tml | 6 +
.../META-INF/modules/validate-in-error.coffee | 7 +
.../integration/app1/AjaxGroovyTests.groovy | 12 +
.../integration/app1/AlertsTests.groovy | 8 +-
.../integration/app1/pages/LogoSubclass.groovy | 7 +
.../integration/app1/pages/LogoSubclass.java | 7 -
.../integration/app1/pages/ZoneFormDemo.groovy | 65 +
.../services/DocumentLinkerImplTest.groovy | 2 +-
.../services/assets/CSSURLRewriterTests.groovy | 35 +
.../assets/CompressionAnalyzerImplTests.groovy | 7 +
.../tapestry5/pagetester/PageTesterTest.java | 31 -
.../tapestry5/integration/app1/AjaxTests.java | 19 +-
.../integration/app1/CoreBehaviorsTests.java | 2 +-
.../tapestry5/integration/app1/FormTests.java | 75 +-
.../tapestry5/integration/app1/GridTests.java | 66 +-
.../integration/app1/components/Border.java | 12 +-
.../integration/app1/components/Count.java | 4 +-
.../integration/app1/mixins/InitialSort.java | 31 +
.../app1/pages/ActionViaLinkDemo.java | 11 +-
.../app1/pages/AutocompleteDemo.java | 14 +-
.../integration/app1/pages/DisabledFields.java | 10 +
.../app1/pages/GridEarlyPagingDemo.java | 44 +
.../pages/GridFormWithInitialSortMixinDemo.java | 19 +
.../integration/app1/pages/GridInLoopDemo.java | 37 +
.../tapestry5/integration/app1/pages/Index.java | 30 +-
.../app1/pages/InplaceGridInLoopDemo.java | 2 +-
.../integration/app1/pages/PageLinkContext.java | 8 +-
.../integration/app1/pages/ReturnTypes.java | 23 +-
.../app1/pages/ValidateInErrorEvent.java | 10 +
.../tapestry5/integration/pagelevel/IfTest.java | 1 +
.../internal/services/URLEncoderImplTest.java | 3 +-
.../internal/util/LocaleUtilsTest.java | 8 +-
.../tapestry5/pagetester/PageTesterTest.java | 31 +
.../tapestry5/services/SyncCostBench.java | 11 +-
.../integration/app1/components/Border.tml | 2 +-
.../integration/app1/pages/ZoneFormDemo.tml | 24 +
.../integration/app2/pages/TestPageForIf.tml | 6 +
.../main/java/org/apache/tapestry5/func/F.java | 6 +-
.../java/org/apache/tapestry5/func/Flow.java | 16 +-
.../apache/tapestry5/func/FlowOperations.java | 14 +-
.../java/org/apache/tapestry5/func/Mapper.java | 4 +-
.../java/org/apache/tapestry5/func/Mapper2.java | 4 +-
.../org/apache/tapestry5/func/Predicate.java | 6 +-
.../java/org/apache/tapestry5/func/Reducer.java | 7 +-
.../HibernateEntityPackageManager.java | 4 +-
.../hibernate/HibernateSessionManager.java | 6 +-
.../hibernate/HibernateSessionSource.java | 4 +-
.../HibernateTransactionDecorator.java | 4 +-
.../hibernate/HibernateGridDataSource.java | 10 +-
tapestry-ioc-jcache/build.gradle | 63 +-
.../tapestry5/jcache/module/JCacheModule.java | 35 +-
.../jcache/internal/AbstractTestExcluder.java | 4 +-
.../ioc/junit/TapestryIOCJUnit4ClassRunner.java | 14 +-
tapestry-ioc/build.gradle | 3 +-
.../org/apache/tapestry5/ioc/AdvisorDef.java | 4 +-
.../org/apache/tapestry5/ioc/IOCSymbols.java | 4 +-
.../org/apache/tapestry5/ioc/IdMatcher.java | 6 +-
.../tapestry5/ioc/ModuleBuilderSource.java | 6 +-
.../apache/tapestry5/ioc/ObjectProvider.java | 6 +-
.../apache/tapestry5/ioc/RegistryBuilder.java | 2 +-
.../org/apache/tapestry5/ioc/ReloadAware.java | 4 +-
.../apache/tapestry5/ioc/ScopeConstants.java | 6 +-
.../tapestry5/ioc/ServiceBindingOptions.java | 3 -
.../tapestry5/ioc/annotations/EagerLoad.java | 4 +-
.../tapestry5/ioc/annotations/Marker.java | 4 +-
.../apache/tapestry5/ioc/annotations/Match.java | 11 +-
.../annotations/PreventServiceDecoration.java | 10 +-
.../apache/tapestry5/ioc/annotations/Scope.java | 9 +-
.../tapestry5/ioc/def/ContributionDef.java | 4 +-
.../apache/tapestry5/ioc/def/DecoratorDef.java | 10 +-
.../org/apache/tapestry5/ioc/def/ModuleDef.java | 4 +-
.../apache/tapestry5/ioc/def/ServiceDef.java | 4 +-
.../tapestry5/ioc/internal/RegistryImpl.java | 20 +-
.../ValidatingMappedConfigurationWrapper.java | 10 +-
.../ioc/internal/services/BridgeBuilder.java | 4 +-
.../services/ExceptionAnalyzerImpl.java | 2 +-
.../ioc/internal/services/MethodSignature.java | 4 +-
.../services/PerThreadServiceLifecycle.java | 2 +-
.../services/SystemEnvSymbolProvider.java | 4 +-
.../internal/services/cron/CronExpression.java | 67 +-
.../services/cron/PeriodicExecutorImpl.java | 21 +-
.../ioc/internal/util/AbstractResource.java | 20 +-
.../ioc/internal/util/ConcurrentBarrier.java | 6 +-
.../ioc/internal/util/InternalUtils.java | 2 +-
.../ioc/modules/TapestryIOCModule.java | 5 +-
.../tapestry5/ioc/services/ChainBuilder.java | 8 +-
.../ioc/services/ExceptionAnalysis.java | 4 +-
.../tapestry5/ioc/services/LazyAdvisor.java | 8 +-
.../ioc/services/LoggingDecorator.java | 4 +-
.../ioc/services/MasterObjectProvider.java | 8 +-
.../ioc/services/PerthreadManager.java | 8 +-
.../tapestry5/ioc/services/PipelineBuilder.java | 8 +-
.../ioc/services/PropertyShadowBuilder.java | 4 +-
.../ioc/services/ServiceLifecycleSource.java | 4 +-
.../tapestry5/ioc/services/ServiceOverride.java | 4 +-
.../tapestry5/ioc/services/StrategyBuilder.java | 8 +-
.../tapestry5/ioc/services/SymbolProvider.java | 4 +-
.../tapestry5/ioc/services/SymbolSource.java | 4 +-
.../ioc/services/ThreadCleanupListener.java | 4 +-
.../tapestry5/ioc/services/cron/Schedule.java | 4 +-
.../apache/tapestry5/ioc/util/IdAllocator.java | 17 +-
.../ioc/util/LocalizedNameGenerator.java | 10 +-
.../tapestry5/services/UpdateListener.java | 4 +-
.../tapestry5/services/UpdateListenerHub.java | 8 +-
.../ioc/specs/CaseInsensitiveMapSpec.groovy | 23 +
.../ioc/specs/ClasspathResourceSpec.groovy | 27 +
.../ioc/specs/ClasspathScannerImplSpec.groovy | 43 +-
.../groovy/ioc/specs/MethodSignatureSpec.groovy | 2 +-
.../ioc/specs/PeriodicExecutorSpec.groovy | 30 +
tapestry-javadoc/build.gradle | 2 -
.../tapestry5/jpa/EntityManagerManager.java | 13 +-
.../tapestry5/jpa/EntityManagerSource.java | 15 +-
.../tapestry5/jpa/JpaEntityPackageManager.java | 8 +-
.../apache/tapestry5/jpa/JpaGridDataSource.java | 13 +-
tapestry-json/build.gradle | 1 -
.../org/apache/tapestry5/json/JSONArray.java | 12 +-
.../apache/tapestry5/json/JSONCollection.java | 6 +-
.../org/apache/tapestry5/json/JSONObject.java | 29 +-
.../org/apache/tapestry5/json/JSONTokener.java | 6 +-
.../org/apache/tapestry5/json/package-info.java | 4 +-
.../kaptcha/components/KaptchaImage.java | 2 +-
tapestry-mongodb/build.gradle | 2 -
.../apache/tapestry5/ioc/test/MockTester.java | 4 +-
.../org/apache/tapestry5/ioc/test/TestBase.java | 12 +-
.../apache/tapestry5/ioc/test/TestUtils.java | 4 +-
.../apache/tapestry5/test/SeleniumTestCase.java | 13 +-
tapestry-upload/build.gradle | 2 +-
.../tapestry5/upload/components/Upload.java | 2 +-
tapestry-webresources/build.gradle | 7 +-
.../ResourceTransformerFactory.java | 5 +-
.../webresources/internal/coffee-script.js | 12 +-
.../webresources/tests/WebResourcesSpec.groovy | 2 +-
.../fonts/glyphicons-halflings-regular.eot | Bin 20335 -> 20127 bytes
.../fonts/glyphicons-halflings-regular.svg | 487 +-
.../fonts/glyphicons-halflings-regular.ttf | Bin 41280 -> 45404 bytes
.../fonts/glyphicons-halflings-regular.woff | Bin 23320 -> 23424 bytes
.../fonts/glyphicons-halflings-regular.woff2 | Bin 0 -> 18028 bytes
.../src/test/webapp/bootstrap/js/affix.js | 14 +-
.../src/test/webapp/bootstrap/js/alert.js | 6 +-
.../src/test/webapp/bootstrap/js/button.js | 6 +-
.../src/test/webapp/bootstrap/js/carousel.js | 25 +-
.../src/test/webapp/bootstrap/js/collapse.js | 18 +-
.../src/test/webapp/bootstrap/js/dropdown.js | 8 +-
.../src/test/webapp/bootstrap/js/modal.js | 69 +-
.../src/test/webapp/bootstrap/js/popover.js | 29 +-
.../src/test/webapp/bootstrap/js/scrollspy.js | 39 +-
.../src/test/webapp/bootstrap/js/tab.js | 8 +-
.../src/test/webapp/bootstrap/js/tooltip.js | 54 +-
.../src/test/webapp/bootstrap/js/transition.js | 4 +-
.../src/test/webapp/bootstrap/less/alerts.less | 5 +
.../src/test/webapp/bootstrap/less/badges.less | 7 +-
.../webapp/bootstrap/less/button-groups.less | 4 +-
.../src/test/webapp/bootstrap/less/buttons.less | 2 +-
.../test/webapp/bootstrap/less/carousel.less | 14 +-
.../src/test/webapp/bootstrap/less/close.less | 1 +
.../bootstrap/less/component-animations.less | 3 +-
.../test/webapp/bootstrap/less/dropdowns.less | 5 +-
.../src/test/webapp/bootstrap/less/forms.less | 74 +-
.../test/webapp/bootstrap/less/glyphicons.less | 71 +
.../test/webapp/bootstrap/less/jumbotron.less | 1 +
.../src/test/webapp/bootstrap/less/media.less | 14 +
.../bootstrap/less/mixins/vendor-prefixes.less | 2 +-
.../src/test/webapp/bootstrap/less/modals.less | 4 +-
.../src/test/webapp/bootstrap/less/navbar.less | 2 +-
.../src/test/webapp/bootstrap/less/navs.less | 2 -
.../src/test/webapp/bootstrap/less/panels.less | 6 +-
.../test/webapp/bootstrap/less/popovers.less | 2 +-
.../webapp/bootstrap/less/responsive-embed.less | 16 +-
.../test/webapp/bootstrap/less/scaffolding.less | 12 +
.../src/test/webapp/bootstrap/less/tables.less | 6 +-
.../src/test/webapp/bootstrap/less/theme.less | 5 +-
.../src/test/webapp/bootstrap/less/tooltip.less | 3 +-
.../src/test/webapp/bootstrap/less/type.less | 2 +-
.../test/webapp/bootstrap/less/utilities.less | 1 -
.../test/webapp/bootstrap/less/variables.less | 11 +-
.../apache/tapestry5/beaneditor/Translate.java | 13 +-
.../apache/tapestry5/beaneditor/Validate.java | 13 +-
.../org/apache/tapestry5/beaneditor/Width.java | 9 +-
.../tapestry5/ioc/annotations/Inject.java | 18 +-
.../ioc/annotations/InjectResource.java | 4 +-
.../ioc/annotations/InjectService.java | 9 +-
.../ioc/annotations/PostInjection.java | 4 +-
.../tapestry5/ioc/annotations/Symbol.java | 6 +-
.../annotations/UsesMappedConfiguration.java | 6 +-
554 files changed, 26513 insertions(+), 24985 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/76e69ad3/plastic/src/main/java/org/apache/tapestry5/internal/plastic/PlasticClassImpl.java
----------------------------------------------------------------------
[4/5] tapestry-5 git commit: TAP5-2029: a best-effort attempt to deal
with generic methods and their annotations in service proxies.
Posted by th...@apache.org.
TAP5-2029: a best-effort attempt to deal with generic methods and their
annotations in service proxies.
Project: http://git-wip-us.apache.org/repos/asf/tapestry-5/repo
Commit: http://git-wip-us.apache.org/repos/asf/tapestry-5/commit/72334aa6
Tree: http://git-wip-us.apache.org/repos/asf/tapestry-5/tree/72334aa6
Diff: http://git-wip-us.apache.org/repos/asf/tapestry-5/diff/72334aa6
Branch: refs/heads/master
Commit: 72334aa632d6ccade195af45014f7903fc0765fa
Parents: 8c8a13a
Author: Thiago H. de Paula Figueiredo <th...@apache.org>
Authored: Thu Jun 18 23:50:12 2015 -0300
Committer: Thiago H. de Paula Figueiredo <th...@apache.org>
Committed: Thu Jun 18 23:50:12 2015 -0300
----------------------------------------------------------------------
.../internal/plastic/asm/tree/MethodNode.java | 8 ++
.../internal/plastic/PlasticClassImpl.java | 136 +++++++++++++++----
.../MethodInvocationGetAnnotationSpec.groovy | 46 ++++++-
.../tapestry5/ioc/internal/AdviceModule.java | 7 +
4 files changed, 168 insertions(+), 29 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/72334aa6/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/tree/MethodNode.java
----------------------------------------------------------------------
diff --git a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/tree/MethodNode.java b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/tree/MethodNode.java
index ce959df..48115c2 100644
--- a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/tree/MethodNode.java
+++ b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/tree/MethodNode.java
@@ -29,6 +29,7 @@
*/
package org.apache.tapestry5.internal.plastic.asm.tree;
+import java.lang.reflect.Modifier;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@@ -835,4 +836,11 @@ public class MethodNode extends MethodVisitor {
}
mv.visitEnd();
}
+
+ @Override
+ public String toString() {
+ return "MethodNode [name=" + name + ", bridge=" + Modifier.isVolatile(access)
+ + ", desc=" + desc + "]";
+ }
+
}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/72334aa6/plastic/src/main/java/org/apache/tapestry5/internal/plastic/PlasticClassImpl.java
----------------------------------------------------------------------
diff --git a/plastic/src/main/java/org/apache/tapestry5/internal/plastic/PlasticClassImpl.java b/plastic/src/main/java/org/apache/tapestry5/internal/plastic/PlasticClassImpl.java
index 1bb08f1..e224bd1 100644
--- a/plastic/src/main/java/org/apache/tapestry5/internal/plastic/PlasticClassImpl.java
+++ b/plastic/src/main/java/org/apache/tapestry5/internal/plastic/PlasticClassImpl.java
@@ -20,10 +20,13 @@ import org.apache.tapestry5.plastic.*;
import java.io.IOException;
import java.lang.annotation.Annotation;
+import java.lang.reflect.Array;
import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.util.*;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
@SuppressWarnings("all")
public class PlasticClassImpl extends Lockable implements PlasticClass, InternalPlasticClassTransformation, Opcodes
@@ -398,40 +401,121 @@ public class PlasticClassImpl extends Lockable implements PlasticClass, Internal
}
+ private static String getParametersDesc(MethodNode methodNode) {
+ return methodNode.desc.substring(methodNode.desc.indexOf('(') + 1, methodNode.desc.lastIndexOf(')'));
+ }
- private static void addMethodAndParameterAnnotationsFromExistingClass(MethodNode methodNode, ClassNode source)
- {
- if (source != null)
+ private static MethodNode findExactMatchMethod(MethodNode methodNode, ClassNode source) {
+
+ MethodNode found = null;
+
+ final String methodDescription = getParametersDesc(methodNode);
+
+ for (MethodNode implementationMethodNode : source.methods)
{
+
+ final String implementationMethodDescription = getParametersDesc(implementationMethodNode);
+ if (methodNode.name.equals(implementationMethodNode.name) &&
+ // We don't want synthetic methods.
+ ((implementationMethodNode.access & Opcodes.ACC_SYNTHETIC) == 0)
+ && (methodDescription.equals(implementationMethodDescription)))
+ {
+ found = implementationMethodNode;
+ break;
+ }
+ }
+
+ return found;
- MethodNode candidate = null;
+ }
+
+ private static List<Class> getJavaParameterTypes(MethodNode methodNode) {
+ final ClassLoader classLoader = PlasticInternalUtils.class.getClassLoader();
+ Type[] parameterTypes = Type.getArgumentTypes(methodNode.desc);
+ List<Class> list = new ArrayList<Class>();
+ for (Type type : parameterTypes)
+ {
+ try
+ {
+ list.add(PlasticInternalUtils.toClass(classLoader, type.getClassName()));
+ }
+ catch (ClassNotFoundException e)
+ {
+ throw new RuntimeException(e); // shouldn't happen anyway
+ }
+ }
+ return list;
+ }
+
+ /**
+ * Returns the first method which matches the given methodNode.
+ * FIXME: this may not find the correct method if the correct one is declared after
+ * another in which all parameters are supertypes of the parameters of methodNode.
+ * To solve this, we would need to dig way deeper than we have time for this.
+ * @param methodNode
+ * @param classNode
+ * @return
+ */
+ private static MethodNode findGenericMethod(MethodNode methodNode, ClassNode classNode)
+ {
+
+ MethodNode found = null;
+
+ List<Class> parameterTypes = getJavaParameterTypes(methodNode);
+
+ for (MethodNode implementationMethodNode : classNode.methods)
+ {
- for (MethodNode implementationMethodNode : source.methods)
+ if (methodNode.name.equals(implementationMethodNode.name))
{
-
- // Find corresponding methods in the implementation class MethodNode
- if (methodNode.name.equals(implementationMethodNode.name) &&
-// methodNode.parameters.size() == implementationMethodNode.parameters.size() &&
- // We don't want synthetic methods.
- ((implementationMethodNode.access & Opcodes.ACC_SYNTHETIC) == 0)
- /*methodNode.desc.equals(implementationMethodNode.desc)*/)
+
+ final List<Class> implementationParameterTypes = getJavaParameterTypes(implementationMethodNode);
+
+ if (parameterTypes.size() == implementationParameterTypes.size())
{
- if (candidate == null)
- {
- candidate = implementationMethodNode;
- }
- // Generics implementation. Two methods with same name: The one which isn't a bridge is the one we're looking for.
- else
- {
- if (isBridge(candidate))
- {
- candidate = implementationMethodNode;
- }
- }
-
+
+ boolean matches = true;
+ for (int i = 0; i < parameterTypes.size(); i++)
+ {
+ final Class implementationParameterType = implementationParameterTypes.get(i);
+ final Class parameterType = parameterTypes.get(i);
+ if (!parameterType.isAssignableFrom(implementationParameterType)) {
+ matches = false;
+ break;
+ }
+
+ }
+
+ if (matches && !isBridge(implementationMethodNode))
+ {
+ found = implementationMethodNode;
+ break;
+ }
+
}
}
+
+ }
+
+ return found;
+
+ }
+
+ private static void addMethodAndParameterAnnotationsFromExistingClass(MethodNode methodNode, ClassNode source)
+ {
+ if (source != null)
+ {
+
+ MethodNode candidate = findExactMatchMethod(methodNode, source);
+
+ final String parametersDesc = getParametersDesc(methodNode);
+
+ // candidate will be null when the method has generic parameters
+ if (candidate == null && parametersDesc.trim().length() > 0)
+ {
+ candidate = findGenericMethod(methodNode, source);
+ }
if (candidate != null)
{
@@ -843,8 +927,8 @@ public class PlasticClassImpl extends Lockable implements PlasticClass, Internal
if (!isOverride)
{
+ addMethodAndParameterAnnotationsFromExistingClass(methodNode, implementationClassNode);
addMethodAndParameterAnnotationsFromExistingClass(methodNode, interfaceClassNode);
- addMethodAndParameterAnnotationsFromExistingClass(methodNode, implementationClassNode);
}
if (isOverride)
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/72334aa6/tapestry-ioc/src/test/groovy/ioc/specs/MethodInvocationGetAnnotationSpec.groovy
----------------------------------------------------------------------
diff --git a/tapestry-ioc/src/test/groovy/ioc/specs/MethodInvocationGetAnnotationSpec.groovy b/tapestry-ioc/src/test/groovy/ioc/specs/MethodInvocationGetAnnotationSpec.groovy
index b4e4c0e..b1f00b5 100644
--- a/tapestry-ioc/src/test/groovy/ioc/specs/MethodInvocationGetAnnotationSpec.groovy
+++ b/tapestry-ioc/src/test/groovy/ioc/specs/MethodInvocationGetAnnotationSpec.groovy
@@ -5,6 +5,7 @@ import org.apache.tapestry5.ioc.annotations.Advise
import org.apache.tapestry5.ioc.internal.AdviceModule
import org.apache.tapestry5.ioc.internal.AnnotatedServiceInterface
import org.apache.tapestry5.ioc.internal.DecoratorModule
+import org.apache.tapestry5.ioc.internal.NonAnnotatedGenericSetServiceInterface
import org.apache.tapestry5.ioc.internal.NonAnnotatedServiceInterface
import org.apache.tapestry5.ioc.internal.TestAdvice
@@ -16,7 +17,7 @@ import org.apache.tapestry5.ioc.internal.TestAdvice
* @see TestAdvice
*/
class MethodInvocationGetAnnotationSpec extends AbstractRegistrySpecification {
-
+
def "MethodAdvice.getAnnotation() and getMethod() in service decoration"() {
when:
@@ -62,11 +63,27 @@ class MethodInvocationGetAnnotationSpec extends AbstractRegistrySpecification {
def annotatedService = registry.getService AnnotatedServiceInterface
def annotatedResult = annotatedService.execute(0);
def annotatedMethod = annotatedService.getClass().getMethod("execute", int.class);
+
+ def nonAnnotatedGenSetService = registry.getService NonAnnotatedGenericSetServiceInterface.class
+ def nonAnnotatedGenSetResult1 = nonAnnotatedGenSetService.execute1(0)
+ def nonAnnotatedGenSetMethod1 = nonAnnotatedGenSetService.getClass().getMethod("execute1", int.class)
+
+ def nonAnnotatedGenSetResult2 = nonAnnotatedGenSetService.execute2("execute2")
+ // We need to look for a method that accept Object instead of string (maybe because of generics...)
+ def nonAnnotatedGenSetMethod2 = nonAnnotatedGenSetService.getClass().getMethod("execute2", Object.class)
+
+ def nonAnnotatedGenSetResult3 = nonAnnotatedGenSetService.execute3(0)
+ def nonAnnotatedGenSetMethod3 = nonAnnotatedGenSetService.getClass().getMethod("execute3", int.class)
+
+ def nonAnnotatedGenSetResult4 = nonAnnotatedGenSetService.execute2("execute2")
+ // We need to look for a method that accept Object instead of string (maybe because of generics...)
+ def nonAnnotatedGenSetMethod4 = nonAnnotatedGenSetService.getClass().getMethod("execute2", Object.class, String.class)
+
then:
nonAnnotatedMethod != null
nonAnnotatedMethod.getAnnotation(Advise.class) != null
- nonAnnotatedMethod.getAnnotation(Advise.class).id().equals("id")
+ nonAnnotatedMethod.getAnnotation(Advise.class).id() == "id"
nonAnnotatedMethod.getAnnotation(Advise.class).serviceInterface() == NonAnnotatedServiceInterface.class
nonAnnotatedService.getClass().getAnnotation(ReorderProperties.class) != null
nonAnnotatedService.getClass().getAnnotation(ReorderProperties.class).value().equals("reorder")
@@ -77,9 +94,32 @@ class MethodInvocationGetAnnotationSpec extends AbstractRegistrySpecification {
annotatedMethod.getAnnotation(Advise.class).id().equals("id")
annotatedMethod.getAnnotation(Advise.class).serviceInterface() == NonAnnotatedServiceInterface.class
annotatedService.getClass().getAnnotation(ReorderProperties.class) != null
- annotatedService.getClass().getAnnotation(ReorderProperties.class).value().equals("reorder")
+ annotatedService.getClass().getAnnotation(ReorderProperties.class).value() == "reorder"
annotatedResult == TestAdvice.ANNOTATION_FOUND
+ nonAnnotatedGenSetMethod1 != null
+ nonAnnotatedGenSetMethod1.getAnnotation(Advise.class) != null
+ nonAnnotatedGenSetMethod1.getAnnotation(Advise.class).id() == "id"
+ nonAnnotatedGenSetMethod1.getAnnotation(Advise.class).serviceInterface() == NonAnnotatedServiceInterface.class
+ nonAnnotatedGenSetResult1 == TestAdvice.ANNOTATION_FOUND
+
+ nonAnnotatedGenSetMethod2 != null
+ nonAnnotatedGenSetMethod2.getAnnotation(Advise.class) != null
+ nonAnnotatedGenSetMethod2.getAnnotation(Advise.class).id() == "id"
+ nonAnnotatedGenSetMethod2.getAnnotation(Advise.class).serviceInterface() == NonAnnotatedServiceInterface.class
+ nonAnnotatedGenSetResult2 == TestAdvice.ANNOTATION_FOUND
+
+ nonAnnotatedGenSetMethod3 != null
+ nonAnnotatedGenSetMethod3.getAnnotation(Advise.class) != null
+ nonAnnotatedGenSetMethod3.getAnnotation(Advise.class).id() == "id"
+ nonAnnotatedGenSetMethod3.getAnnotation(Advise.class).serviceInterface() == NonAnnotatedServiceInterface.class
+ nonAnnotatedGenSetResult3 == TestAdvice.ANNOTATION_FOUND
+
+ nonAnnotatedGenSetMethod4 != null
+ nonAnnotatedGenSetMethod4.getAnnotation(Advise.class) != null
+ nonAnnotatedGenSetMethod4.getAnnotation(Advise.class).id() == "id"
+ nonAnnotatedGenSetMethod4.getAnnotation(Advise.class).serviceInterface() == NonAnnotatedServiceInterface.class
+ nonAnnotatedGenSetResult4 == TestAdvice.ANNOTATION_FOUND
}
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/72334aa6/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/internal/AdviceModule.java
----------------------------------------------------------------------
diff --git a/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/internal/AdviceModule.java b/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/internal/AdviceModule.java
index 466b528..0e0a186 100644
--- a/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/internal/AdviceModule.java
+++ b/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/internal/AdviceModule.java
@@ -24,6 +24,8 @@ public class AdviceModule
{
binder.bind(NonAnnotatedServiceInterface.class, NonAnnotatedServiceInterfaceImpl.class);
binder.bind(AnnotatedServiceInterface.class, AnnotatedServiceInterfaceImpl.class);
+ binder.bind(NonAnnotatedGenericSetServiceInterface.class,
+ NonAnnotatedGenericSetServiceImpl.class);
}
@Advise(serviceInterface = NonAnnotatedServiceInterface.class)
@@ -38,4 +40,9 @@ public class AdviceModule
methodAdviceReceiver.adviseAllMethods(new TestAdvice());
}
+ @Advise(serviceInterface = NonAnnotatedGenericSetServiceInterface.class)
+ public static void adviseNonAnnotatedGenericSetServiceInterface(
+ final MethodAdviceReceiver methodAdviceReceiver) {
+ methodAdviceReceiver.adviseAllMethods(new TestAdvice());
+ }
}
[4/5] tapestry-5 git commit: TAP5-2029: a best-effort attempt to deal
with generic methods and their annotations in service proxies.
Posted by th...@apache.org.
TAP5-2029: a best-effort attempt to deal with generic methods and their
annotations in service proxies.
Project: http://git-wip-us.apache.org/repos/asf/tapestry-5/repo
Commit: http://git-wip-us.apache.org/repos/asf/tapestry-5/commit/72334aa6
Tree: http://git-wip-us.apache.org/repos/asf/tapestry-5/tree/72334aa6
Diff: http://git-wip-us.apache.org/repos/asf/tapestry-5/diff/72334aa6
Branch: refs/heads/master
Commit: 72334aa632d6ccade195af45014f7903fc0765fa
Parents: 8c8a13a
Author: Thiago H. de Paula Figueiredo <th...@apache.org>
Authored: Thu Jun 18 23:50:12 2015 -0300
Committer: Thiago H. de Paula Figueiredo <th...@apache.org>
Committed: Thu Jun 18 23:50:12 2015 -0300
----------------------------------------------------------------------
.../internal/plastic/asm/tree/MethodNode.java | 8 ++
.../internal/plastic/PlasticClassImpl.java | 136 +++++++++++++++----
.../MethodInvocationGetAnnotationSpec.groovy | 46 ++++++-
.../tapestry5/ioc/internal/AdviceModule.java | 7 +
4 files changed, 168 insertions(+), 29 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/72334aa6/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/tree/MethodNode.java
----------------------------------------------------------------------
diff --git a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/tree/MethodNode.java b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/tree/MethodNode.java
index ce959df..48115c2 100644
--- a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/tree/MethodNode.java
+++ b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/tree/MethodNode.java
@@ -29,6 +29,7 @@
*/
package org.apache.tapestry5.internal.plastic.asm.tree;
+import java.lang.reflect.Modifier;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@@ -835,4 +836,11 @@ public class MethodNode extends MethodVisitor {
}
mv.visitEnd();
}
+
+ @Override
+ public String toString() {
+ return "MethodNode [name=" + name + ", bridge=" + Modifier.isVolatile(access)
+ + ", desc=" + desc + "]";
+ }
+
}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/72334aa6/plastic/src/main/java/org/apache/tapestry5/internal/plastic/PlasticClassImpl.java
----------------------------------------------------------------------
diff --git a/plastic/src/main/java/org/apache/tapestry5/internal/plastic/PlasticClassImpl.java b/plastic/src/main/java/org/apache/tapestry5/internal/plastic/PlasticClassImpl.java
index 1bb08f1..e224bd1 100644
--- a/plastic/src/main/java/org/apache/tapestry5/internal/plastic/PlasticClassImpl.java
+++ b/plastic/src/main/java/org/apache/tapestry5/internal/plastic/PlasticClassImpl.java
@@ -20,10 +20,13 @@ import org.apache.tapestry5.plastic.*;
import java.io.IOException;
import java.lang.annotation.Annotation;
+import java.lang.reflect.Array;
import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.util.*;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
@SuppressWarnings("all")
public class PlasticClassImpl extends Lockable implements PlasticClass, InternalPlasticClassTransformation, Opcodes
@@ -398,40 +401,121 @@ public class PlasticClassImpl extends Lockable implements PlasticClass, Internal
}
+ private static String getParametersDesc(MethodNode methodNode) {
+ return methodNode.desc.substring(methodNode.desc.indexOf('(') + 1, methodNode.desc.lastIndexOf(')'));
+ }
- private static void addMethodAndParameterAnnotationsFromExistingClass(MethodNode methodNode, ClassNode source)
- {
- if (source != null)
+ private static MethodNode findExactMatchMethod(MethodNode methodNode, ClassNode source) {
+
+ MethodNode found = null;
+
+ final String methodDescription = getParametersDesc(methodNode);
+
+ for (MethodNode implementationMethodNode : source.methods)
{
+
+ final String implementationMethodDescription = getParametersDesc(implementationMethodNode);
+ if (methodNode.name.equals(implementationMethodNode.name) &&
+ // We don't want synthetic methods.
+ ((implementationMethodNode.access & Opcodes.ACC_SYNTHETIC) == 0)
+ && (methodDescription.equals(implementationMethodDescription)))
+ {
+ found = implementationMethodNode;
+ break;
+ }
+ }
+
+ return found;
- MethodNode candidate = null;
+ }
+
+ private static List<Class> getJavaParameterTypes(MethodNode methodNode) {
+ final ClassLoader classLoader = PlasticInternalUtils.class.getClassLoader();
+ Type[] parameterTypes = Type.getArgumentTypes(methodNode.desc);
+ List<Class> list = new ArrayList<Class>();
+ for (Type type : parameterTypes)
+ {
+ try
+ {
+ list.add(PlasticInternalUtils.toClass(classLoader, type.getClassName()));
+ }
+ catch (ClassNotFoundException e)
+ {
+ throw new RuntimeException(e); // shouldn't happen anyway
+ }
+ }
+ return list;
+ }
+
+ /**
+ * Returns the first method which matches the given methodNode.
+ * FIXME: this may not find the correct method if the correct one is declared after
+ * another in which all parameters are supertypes of the parameters of methodNode.
+ * To solve this, we would need to dig way deeper than we have time for this.
+ * @param methodNode
+ * @param classNode
+ * @return
+ */
+ private static MethodNode findGenericMethod(MethodNode methodNode, ClassNode classNode)
+ {
+
+ MethodNode found = null;
+
+ List<Class> parameterTypes = getJavaParameterTypes(methodNode);
+
+ for (MethodNode implementationMethodNode : classNode.methods)
+ {
- for (MethodNode implementationMethodNode : source.methods)
+ if (methodNode.name.equals(implementationMethodNode.name))
{
-
- // Find corresponding methods in the implementation class MethodNode
- if (methodNode.name.equals(implementationMethodNode.name) &&
-// methodNode.parameters.size() == implementationMethodNode.parameters.size() &&
- // We don't want synthetic methods.
- ((implementationMethodNode.access & Opcodes.ACC_SYNTHETIC) == 0)
- /*methodNode.desc.equals(implementationMethodNode.desc)*/)
+
+ final List<Class> implementationParameterTypes = getJavaParameterTypes(implementationMethodNode);
+
+ if (parameterTypes.size() == implementationParameterTypes.size())
{
- if (candidate == null)
- {
- candidate = implementationMethodNode;
- }
- // Generics implementation. Two methods with same name: The one which isn't a bridge is the one we're looking for.
- else
- {
- if (isBridge(candidate))
- {
- candidate = implementationMethodNode;
- }
- }
-
+
+ boolean matches = true;
+ for (int i = 0; i < parameterTypes.size(); i++)
+ {
+ final Class implementationParameterType = implementationParameterTypes.get(i);
+ final Class parameterType = parameterTypes.get(i);
+ if (!parameterType.isAssignableFrom(implementationParameterType)) {
+ matches = false;
+ break;
+ }
+
+ }
+
+ if (matches && !isBridge(implementationMethodNode))
+ {
+ found = implementationMethodNode;
+ break;
+ }
+
}
}
+
+ }
+
+ return found;
+
+ }
+
+ private static void addMethodAndParameterAnnotationsFromExistingClass(MethodNode methodNode, ClassNode source)
+ {
+ if (source != null)
+ {
+
+ MethodNode candidate = findExactMatchMethod(methodNode, source);
+
+ final String parametersDesc = getParametersDesc(methodNode);
+
+ // candidate will be null when the method has generic parameters
+ if (candidate == null && parametersDesc.trim().length() > 0)
+ {
+ candidate = findGenericMethod(methodNode, source);
+ }
if (candidate != null)
{
@@ -843,8 +927,8 @@ public class PlasticClassImpl extends Lockable implements PlasticClass, Internal
if (!isOverride)
{
+ addMethodAndParameterAnnotationsFromExistingClass(methodNode, implementationClassNode);
addMethodAndParameterAnnotationsFromExistingClass(methodNode, interfaceClassNode);
- addMethodAndParameterAnnotationsFromExistingClass(methodNode, implementationClassNode);
}
if (isOverride)
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/72334aa6/tapestry-ioc/src/test/groovy/ioc/specs/MethodInvocationGetAnnotationSpec.groovy
----------------------------------------------------------------------
diff --git a/tapestry-ioc/src/test/groovy/ioc/specs/MethodInvocationGetAnnotationSpec.groovy b/tapestry-ioc/src/test/groovy/ioc/specs/MethodInvocationGetAnnotationSpec.groovy
index b4e4c0e..b1f00b5 100644
--- a/tapestry-ioc/src/test/groovy/ioc/specs/MethodInvocationGetAnnotationSpec.groovy
+++ b/tapestry-ioc/src/test/groovy/ioc/specs/MethodInvocationGetAnnotationSpec.groovy
@@ -5,6 +5,7 @@ import org.apache.tapestry5.ioc.annotations.Advise
import org.apache.tapestry5.ioc.internal.AdviceModule
import org.apache.tapestry5.ioc.internal.AnnotatedServiceInterface
import org.apache.tapestry5.ioc.internal.DecoratorModule
+import org.apache.tapestry5.ioc.internal.NonAnnotatedGenericSetServiceInterface
import org.apache.tapestry5.ioc.internal.NonAnnotatedServiceInterface
import org.apache.tapestry5.ioc.internal.TestAdvice
@@ -16,7 +17,7 @@ import org.apache.tapestry5.ioc.internal.TestAdvice
* @see TestAdvice
*/
class MethodInvocationGetAnnotationSpec extends AbstractRegistrySpecification {
-
+
def "MethodAdvice.getAnnotation() and getMethod() in service decoration"() {
when:
@@ -62,11 +63,27 @@ class MethodInvocationGetAnnotationSpec extends AbstractRegistrySpecification {
def annotatedService = registry.getService AnnotatedServiceInterface
def annotatedResult = annotatedService.execute(0);
def annotatedMethod = annotatedService.getClass().getMethod("execute", int.class);
+
+ def nonAnnotatedGenSetService = registry.getService NonAnnotatedGenericSetServiceInterface.class
+ def nonAnnotatedGenSetResult1 = nonAnnotatedGenSetService.execute1(0)
+ def nonAnnotatedGenSetMethod1 = nonAnnotatedGenSetService.getClass().getMethod("execute1", int.class)
+
+ def nonAnnotatedGenSetResult2 = nonAnnotatedGenSetService.execute2("execute2")
+ // We need to look for a method that accept Object instead of string (maybe because of generics...)
+ def nonAnnotatedGenSetMethod2 = nonAnnotatedGenSetService.getClass().getMethod("execute2", Object.class)
+
+ def nonAnnotatedGenSetResult3 = nonAnnotatedGenSetService.execute3(0)
+ def nonAnnotatedGenSetMethod3 = nonAnnotatedGenSetService.getClass().getMethod("execute3", int.class)
+
+ def nonAnnotatedGenSetResult4 = nonAnnotatedGenSetService.execute2("execute2")
+ // We need to look for a method that accept Object instead of string (maybe because of generics...)
+ def nonAnnotatedGenSetMethod4 = nonAnnotatedGenSetService.getClass().getMethod("execute2", Object.class, String.class)
+
then:
nonAnnotatedMethod != null
nonAnnotatedMethod.getAnnotation(Advise.class) != null
- nonAnnotatedMethod.getAnnotation(Advise.class).id().equals("id")
+ nonAnnotatedMethod.getAnnotation(Advise.class).id() == "id"
nonAnnotatedMethod.getAnnotation(Advise.class).serviceInterface() == NonAnnotatedServiceInterface.class
nonAnnotatedService.getClass().getAnnotation(ReorderProperties.class) != null
nonAnnotatedService.getClass().getAnnotation(ReorderProperties.class).value().equals("reorder")
@@ -77,9 +94,32 @@ class MethodInvocationGetAnnotationSpec extends AbstractRegistrySpecification {
annotatedMethod.getAnnotation(Advise.class).id().equals("id")
annotatedMethod.getAnnotation(Advise.class).serviceInterface() == NonAnnotatedServiceInterface.class
annotatedService.getClass().getAnnotation(ReorderProperties.class) != null
- annotatedService.getClass().getAnnotation(ReorderProperties.class).value().equals("reorder")
+ annotatedService.getClass().getAnnotation(ReorderProperties.class).value() == "reorder"
annotatedResult == TestAdvice.ANNOTATION_FOUND
+ nonAnnotatedGenSetMethod1 != null
+ nonAnnotatedGenSetMethod1.getAnnotation(Advise.class) != null
+ nonAnnotatedGenSetMethod1.getAnnotation(Advise.class).id() == "id"
+ nonAnnotatedGenSetMethod1.getAnnotation(Advise.class).serviceInterface() == NonAnnotatedServiceInterface.class
+ nonAnnotatedGenSetResult1 == TestAdvice.ANNOTATION_FOUND
+
+ nonAnnotatedGenSetMethod2 != null
+ nonAnnotatedGenSetMethod2.getAnnotation(Advise.class) != null
+ nonAnnotatedGenSetMethod2.getAnnotation(Advise.class).id() == "id"
+ nonAnnotatedGenSetMethod2.getAnnotation(Advise.class).serviceInterface() == NonAnnotatedServiceInterface.class
+ nonAnnotatedGenSetResult2 == TestAdvice.ANNOTATION_FOUND
+
+ nonAnnotatedGenSetMethod3 != null
+ nonAnnotatedGenSetMethod3.getAnnotation(Advise.class) != null
+ nonAnnotatedGenSetMethod3.getAnnotation(Advise.class).id() == "id"
+ nonAnnotatedGenSetMethod3.getAnnotation(Advise.class).serviceInterface() == NonAnnotatedServiceInterface.class
+ nonAnnotatedGenSetResult3 == TestAdvice.ANNOTATION_FOUND
+
+ nonAnnotatedGenSetMethod4 != null
+ nonAnnotatedGenSetMethod4.getAnnotation(Advise.class) != null
+ nonAnnotatedGenSetMethod4.getAnnotation(Advise.class).id() == "id"
+ nonAnnotatedGenSetMethod4.getAnnotation(Advise.class).serviceInterface() == NonAnnotatedServiceInterface.class
+ nonAnnotatedGenSetResult4 == TestAdvice.ANNOTATION_FOUND
}
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/72334aa6/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/internal/AdviceModule.java
----------------------------------------------------------------------
diff --git a/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/internal/AdviceModule.java b/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/internal/AdviceModule.java
index 466b528..0e0a186 100644
--- a/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/internal/AdviceModule.java
+++ b/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/internal/AdviceModule.java
@@ -24,6 +24,8 @@ public class AdviceModule
{
binder.bind(NonAnnotatedServiceInterface.class, NonAnnotatedServiceInterfaceImpl.class);
binder.bind(AnnotatedServiceInterface.class, AnnotatedServiceInterfaceImpl.class);
+ binder.bind(NonAnnotatedGenericSetServiceInterface.class,
+ NonAnnotatedGenericSetServiceImpl.class);
}
@Advise(serviceInterface = NonAnnotatedServiceInterface.class)
@@ -38,4 +40,9 @@ public class AdviceModule
methodAdviceReceiver.adviseAllMethods(new TestAdvice());
}
+ @Advise(serviceInterface = NonAnnotatedGenericSetServiceInterface.class)
+ public static void adviseNonAnnotatedGenericSetServiceInterface(
+ final MethodAdviceReceiver methodAdviceReceiver) {
+ methodAdviceReceiver.adviseAllMethods(new TestAdvice());
+ }
}
[5/5] tapestry-5 git commit: Merge branch 'master' of
https://git-wip-us.apache.org/repos/asf/tapestry-5
Posted by th...@apache.org.
Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/tapestry-5
Project: http://git-wip-us.apache.org/repos/asf/tapestry-5/repo
Commit: http://git-wip-us.apache.org/repos/asf/tapestry-5/commit/d61eee73
Tree: http://git-wip-us.apache.org/repos/asf/tapestry-5/tree/d61eee73
Diff: http://git-wip-us.apache.org/repos/asf/tapestry-5/diff/d61eee73
Branch: refs/heads/master
Commit: d61eee730bf3154e42adb2e1afc99b25e5eb106c
Parents: 72334aa 766c16b
Author: Thiago H. de Paula Figueiredo <th...@apache.org>
Authored: Thu Jun 18 23:50:47 2015 -0300
Committer: Thiago H. de Paula Figueiredo <th...@apache.org>
Committed: Thu Jun 18 23:50:47 2015 -0300
----------------------------------------------------------------------
54_RELEASE_NOTES.md | 2 +-
build.gradle | 4 +-
.../main/java/org/apache/tapestry5/Field.java | 3 -
.../tapestry5/bootstrap/css/bootstrap-theme.css | 139 ++++++-
.../tapestry5/bootstrap/css/bootstrap.css | 368 +++++++++++++++----
.../assets/tapestry5/bootstrap/js/affix.js | 6 +-
.../assets/tapestry5/bootstrap/js/alert.js | 4 +-
.../assets/tapestry5/bootstrap/js/button.js | 22 +-
.../assets/tapestry5/bootstrap/js/carousel.js | 4 +-
.../assets/tapestry5/bootstrap/js/collapse.js | 4 +-
.../assets/tapestry5/bootstrap/js/dropdown.js | 88 ++---
.../assets/tapestry5/bootstrap/js/modal.js | 12 +-
.../assets/tapestry5/bootstrap/js/popover.js | 4 +-
.../assets/tapestry5/bootstrap/js/scrollspy.js | 4 +-
.../assets/tapestry5/bootstrap/js/tab.js | 8 +-
.../assets/tapestry5/bootstrap/js/tooltip.js | 78 +++-
.../assets/tapestry5/bootstrap/js/transition.js | 2 +-
.../src/test/webapp/bootstrap/js/affix.js | 6 +-
.../src/test/webapp/bootstrap/js/alert.js | 4 +-
.../src/test/webapp/bootstrap/js/button.js | 22 +-
.../src/test/webapp/bootstrap/js/carousel.js | 4 +-
.../src/test/webapp/bootstrap/js/collapse.js | 4 +-
.../src/test/webapp/bootstrap/js/dropdown.js | 88 ++---
.../src/test/webapp/bootstrap/js/modal.js | 12 +-
.../src/test/webapp/bootstrap/js/popover.js | 4 +-
.../src/test/webapp/bootstrap/js/scrollspy.js | 4 +-
.../src/test/webapp/bootstrap/js/tab.js | 8 +-
.../src/test/webapp/bootstrap/js/tooltip.js | 78 +++-
.../src/test/webapp/bootstrap/js/transition.js | 2 +-
.../src/test/webapp/bootstrap/less/badges.less | 2 +-
.../test/webapp/bootstrap/less/bootstrap.less | 6 +
.../webapp/bootstrap/less/button-groups.less | 5 +-
.../src/test/webapp/bootstrap/less/buttons.less | 16 +-
.../test/webapp/bootstrap/less/carousel.less | 4 +-
.../test/webapp/bootstrap/less/dropdowns.less | 4 +-
.../src/test/webapp/bootstrap/less/forms.less | 55 ++-
.../webapp/bootstrap/less/input-groups.less | 1 +
.../test/webapp/bootstrap/less/jumbotron.less | 8 +-
.../test/webapp/bootstrap/less/list-group.less | 12 +-
.../src/test/webapp/bootstrap/less/media.less | 5 +
.../src/test/webapp/bootstrap/less/mixins.less | 1 +
.../less/mixins/background-variant.less | 3 +-
.../webapp/bootstrap/less/mixins/buttons.less | 20 +-
.../bootstrap/less/mixins/grid-framework.less | 4 +-
.../test/webapp/bootstrap/less/mixins/grid.less | 4 +-
.../webapp/bootstrap/less/mixins/hide-text.less | 2 +-
.../bootstrap/less/mixins/list-group.less | 3 +-
.../bootstrap/less/mixins/pagination.less | 3 +-
.../bootstrap/less/mixins/reset-text.less | 18 +
.../less/mixins/responsive-visibility.less | 2 +-
.../bootstrap/less/mixins/text-emphasis.less | 3 +-
.../test/webapp/bootstrap/less/normalize.less | 19 +-
.../test/webapp/bootstrap/less/pagination.less | 5 +-
.../src/test/webapp/bootstrap/less/panels.less | 6 +
.../test/webapp/bootstrap/less/popovers.less | 12 +-
.../src/test/webapp/bootstrap/less/print.less | 6 -
.../test/webapp/bootstrap/less/scaffolding.less | 3 +-
.../src/test/webapp/bootstrap/less/theme.less | 28 +-
.../src/test/webapp/bootstrap/less/tooltip.less | 9 +-
.../test/webapp/bootstrap/less/variables.less | 8 +-
60 files changed, 899 insertions(+), 366 deletions(-)
----------------------------------------------------------------------