svn commit: r1640497 - in /sling/trunk/bundles/jcr/resource/src: main/java/org/apache/sling/jcr/resource/internal/ main/java/org/apache/sling/jcr/resource/internal/helper/jcr/ test/java/org/apache/sli
Author: cziegeler Date: Wed Nov 19 08:04:44 2014 New Revision: 1640497 URL: http://svn.apache.org/r1640497 Log: SLING-4184 : Provide path mapping from JCR nodes to resource paths Added: sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/helper/jcr/PathMapper.java (with props) sling/trunk/bundles/jcr/resource/src/test/java/org/apache/sling/jcr/resource/internal/PathMapperImpl.java (with props) sling/trunk/bundles/jcr/resource/src/test/java/org/apache/sling/jcr/resource/internal/helper/jcr/PathMapperTest.java (with props) Modified: sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/JcrResourceListener.java sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/OakResourceListener.java sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrItemResource.java sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrNodeResource.java sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrNodeResourceIterator.java sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrPropertyResource.java sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrResourceProvider.java sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrResourceProviderFactory.java sling/trunk/bundles/jcr/resource/src/test/java/org/apache/sling/jcr/resource/internal/JcrResourceListenerScalabilityTest.java sling/trunk/bundles/jcr/resource/src/test/java/org/apache/sling/jcr/resource/internal/SynchronousJcrResourceListener.java sling/trunk/bundles/jcr/resource/src/test/java/org/apache/sling/jcr/resource/internal/SynchronousOakResourceListener.java sling/trunk/bundles/jcr/resource/src/test/java/org/apache/sling/jcr/resource/internal/helper/JcrNodeResourceIteratorTest.java sling/trunk/bundles/jcr/resource/src/test/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrNodeResourceTest.java sling/trunk/bundles/jcr/resource/src/test/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrPropertyResourceTest.java sling/trunk/bundles/jcr/resource/src/test/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrTestNodeResource.java Modified: sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/JcrResourceListener.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/JcrResourceListener.java?rev=1640497r1=1640496r2=1640497view=diff == --- sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/JcrResourceListener.java (original) +++ sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/JcrResourceListener.java Wed Nov 19 08:04:44 2014 @@ -37,6 +37,8 @@ import org.apache.jackrabbit.api.observa import org.apache.sling.api.SlingConstants; import org.apache.sling.api.resource.Resource; import org.apache.sling.api.resource.ResourceResolver; +import org.apache.sling.jcr.resource.internal.helper.jcr.JcrResourceProvider; +import org.apache.sling.jcr.resource.internal.helper.jcr.PathMapper; import org.osgi.service.event.EventAdmin; import org.osgi.service.event.EventConstants; import org.osgi.service.event.EventProperties; @@ -70,6 +72,8 @@ public class JcrResourceListener impleme /** Helper object. */ final ObservationListenerSupport support; +private final PathMapper pathMapper; + /** * Marker event for {@link #processOsgiEventQueue()} to be signaled to * terminate processing Events. @@ -78,8 +82,10 @@ public class JcrResourceListener impleme public JcrResourceListener( final String mountPrefix, -final ObservationListenerSupport support) +final ObservationListenerSupport support, +final PathMapper pathMapper) throws RepositoryException { +this.pathMapper = pathMapper; boolean foundClass = false; try { this.getClass().getClassLoader().loadClass(JackrabbitEvent.class.getName()); @@ -289,16 +295,21 @@ public class JcrResourceListener impleme final String topic, final ChangedAttributes changedAttributes) { -if (changedAttributes != null) { -changedAttributes.mergeAttributesInto(properties); -} +final String resourcePath = pathMapper.mapJCRPathToResourcePath(path); +if ( resourcePath != null ) { +if (changedAttributes != null) { +changedAttributes.mergeAttributesInto(properties); +
svn commit: r1640498 - in /sling/trunk/bundles/jcr/resource: pom.xml src/main/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrNodeResource.java
Author: cziegeler Date: Wed Nov 19 08:18:45 2014 New Revision: 1640498 URL: http://svn.apache.org/r1640498 Log: SLING-3865 : Remove JcrResource.adaptTo(URL Modified: sling/trunk/bundles/jcr/resource/pom.xml sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrNodeResource.java Modified: sling/trunk/bundles/jcr/resource/pom.xml URL: http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/resource/pom.xml?rev=1640498r1=1640497r2=1640498view=diff == --- sling/trunk/bundles/jcr/resource/pom.xml (original) +++ sling/trunk/bundles/jcr/resource/pom.xml Wed Nov 19 08:18:45 2014 @@ -94,7 +94,6 @@ !-- Include URL support from Jackrabbit -- Embed-Dependency - jackrabbit-classloader;inline=org/apache/jackrabbit/net/**|org/apache/jackrabbit/classloader/Util.*, jackrabbit-jcr-commons;inline=org/apache/jackrabbit/util/ISO9075.*|org/apache/jackrabbit/name/QName.*|org/apache/jackrabbit/util/XMLChar.*|org/apache/jackrabbit/util/Text.*, /Embed-Dependency Modified: sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrNodeResource.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrNodeResource.java?rev=1640498r1=1640497r2=1640498view=diff == --- sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrNodeResource.java (original) +++ sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrNodeResource.java Wed Nov 19 08:18:45 2014 @@ -21,7 +21,6 @@ import static org.apache.jackrabbit.JcrC import static org.apache.jackrabbit.JcrConstants.NT_FILE; import java.io.InputStream; -import java.net.URL; import java.security.AccessControlException; import java.util.Iterator; import java.util.Map; @@ -32,7 +31,6 @@ import javax.jcr.Node; import javax.jcr.Property; import javax.jcr.RepositoryException; -import org.apache.jackrabbit.net.URLFactory; import org.apache.sling.adapter.annotations.Adaptable; import org.apache.sling.adapter.annotations.Adapter; import org.apache.sling.api.resource.ModifiableValueMap; @@ -49,7 +47,7 @@ import org.slf4j.LoggerFactory; /** A Resource that wraps a JCR Node */ @Adaptable(adaptableClass=Resource.class, adapters={ -@Adapter({Node.class, Map.class, Item.class, ValueMap.class, URL.class}), +@Adapter({Node.class, Map.class, Item.class, ValueMap.class}), @Adapter(value=PersistableValueMap.class, condition=If the resource is a JcrNodeResource and the user has set property privileges on the node.), @Adapter(value=InputStream.class, condition=If the resource is a JcrNodeResource and has a jcr:data property or is an nt:file node.) }) @@ -58,8 +56,6 @@ class JcrNodeResource extends JcrItemRes /** marker value for the resourceSupertType before trying to evaluate */ private static final String UNSET_RESOURCE_SUPER_TYPE = unset; -private static volatile boolean loggedUrlWarning = false; - /** default log */ private static final Logger LOGGER = LoggerFactory.getLogger(JcrNodeResource.class); @@ -132,8 +128,6 @@ class JcrNodeResource extends JcrItemRes return (Type) getNode(); // unchecked cast } else if (type == InputStream.class) { return (Type) getInputStream(); // unchecked cast -} else if (type == URL.class) { -return (Type) getURL(); // unchecked cast } else if (type == Map.class || type == ValueMap.class) { return (Type) new JcrPropertyMap(getNode(), this.dynamicClassLoader); // unchecked cast } else if (type == PersistableValueMap.class ) { @@ -241,21 +235,6 @@ class JcrNodeResource extends JcrItemRes return null; } -private URL getURL() { -if ( !loggedUrlWarning ) { -loggedUrlWarning = true; -LOGGER.warn(Adapting a JCR resource to a URL is deprecated. This feature will be + -removed in future versions. Please adjust your code.); -} -try { -return URLFactory.createURL(getNode().getSession(), getPath()); -} catch (final Exception ex) { -LOGGER.error(getURL: Cannot create URL for + this, ex); -} - -return null; -} - // -- Descendable interface @Override
svn commit: r1640500 - /sling/trunk/contrib/scripting/sightly/engine/pom.xml
Author: fmeschbe Date: Wed Nov 19 08:48:08 2014 New Revision: 1640500 URL: http://svn.apache.org/r1640500 Log: SLING-4182 Down to Commons IO 1.4 Commons IO 1.4 has all required API and properly exports the expected API version 1.4 This closes #44 Modified: sling/trunk/contrib/scripting/sightly/engine/pom.xml Modified: sling/trunk/contrib/scripting/sightly/engine/pom.xml URL: http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/sightly/engine/pom.xml?rev=1640500r1=1640499r2=1640500view=diff == --- sling/trunk/contrib/scripting/sightly/engine/pom.xml (original) +++ sling/trunk/contrib/scripting/sightly/engine/pom.xml Wed Nov 19 08:48:08 2014 @@ -253,7 +253,7 @@ dependency groupIdcommons-io/groupId artifactIdcommons-io/artifactId -version2.0/version +version1.4/version scopeprovided/scope /dependency /dependencies
svn commit: r1640505 - in /sling/trunk/contrib: scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/engine/extension/ xss/src/main/java/org/apache/sling/xss/ xss/src/main/java/or
Author: fmeschbe Date: Wed Nov 19 09:01:54 2014 New Revision: 1640505 URL: http://svn.apache.org/r1640505 Log: SLING-4176 - Added validation/filtering for StyleToken context * Adding a new method for checking CSS tokens to the XSSAPI * Incl. implementation and unit tests This closes #38 (Applying patch by Vlad Bailescue; Thanks alot) Modified: sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/engine/extension/XSSRuntimeExtension.java sling/trunk/contrib/xss/src/main/java/org/apache/sling/xss/XSSAPI.java sling/trunk/contrib/xss/src/main/java/org/apache/sling/xss/impl/XSSAPIImpl.java sling/trunk/contrib/xss/src/test/java/org/apache/sling/xss/impl/XSSAPIImplTest.java Modified: sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/engine/extension/XSSRuntimeExtension.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/engine/extension/XSSRuntimeExtension.java?rev=1640505r1=1640504r2=1640505view=diff == --- sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/engine/extension/XSSRuntimeExtension.java (original) +++ sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/engine/extension/XSSRuntimeExtension.java Wed Nov 19 09:01:54 2014 @@ -103,35 +103,29 @@ public class XSSRuntimeExtension extends } private String applyXSSFilter(String text, MarkupContext xssContext) { -if (xssContext.equals(MarkupContext.ATTRIBUTE)) { -return xssapi.encodeForHTMLAttr(text); -} -if (xssContext.equals(MarkupContext.COMMENT) || -xssContext.equals(MarkupContext.TEXT)) { -return xssapi.encodeForHTML(text); -} -if (xssContext.equals(MarkupContext.ATTRIBUTE_NAME)) { -return escapeAttributeName(text); -} -if (xssContext.equals(MarkupContext.NUMBER)) { -return xssapi.getValidLong(text, 0).toString(); -} -if (xssContext.equals(MarkupContext.URI)) { -return xssapi.getValidHref(text); -} -if (xssContext.equals(MarkupContext.SCRIPT_TOKEN) -|| xssContext.equals(MarkupContext.SCRIPT_COMMENT)) { -return xssapi.getValidJSToken(text, ); -} -if (xssContext.equals(MarkupContext.SCRIPT_STRING) -|| xssContext.equals(MarkupContext.STYLE_STRING)) { -return xssapi.encodeForJSString(text); -} -if (xssContext.equals(MarkupContext.ELEMENT_NAME)) { -return escapeElementName(text); -} -if (xssContext.equals(MarkupContext.HTML)) { -return xssapi.filterHTML(text); +switch (xssContext) { +case ATTRIBUTE: +return xssapi.encodeForHTMLAttr(text); +case COMMENT: +case TEXT: +return xssapi.encodeForHTML(text); +case ATTRIBUTE_NAME: +return escapeAttributeName(text); +case NUMBER: +return xssapi.getValidLong(text, 0).toString(); +case URI: +return xssapi.getValidHref(text); +case SCRIPT_TOKEN: +case SCRIPT_COMMENT: +return xssapi.getValidJSToken(text, ); +case STYLE_TOKEN: +return xssapi.getValidStyleToken(text, ); +case SCRIPT_STRING: +return xssapi.encodeForJSString(text); +case ELEMENT_NAME: +return escapeElementName(text); +case HTML: +return xssapi.filterHTML(text); } return text; //todo: apply the rest of XSS filters } Modified: sling/trunk/contrib/xss/src/main/java/org/apache/sling/xss/XSSAPI.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/xss/src/main/java/org/apache/sling/xss/XSSAPI.java?rev=1640505r1=1640504r2=1640505view=diff == --- sling/trunk/contrib/xss/src/main/java/org/apache/sling/xss/XSSAPI.java (original) +++ sling/trunk/contrib/xss/src/main/java/org/apache/sling/xss/XSSAPI.java Wed Nov 19 09:01:54 2014 @@ -86,6 +86,16 @@ public interface XSSAPI { public String getValidJSToken(String token, String defaultValue); /** + *
svn commit: r1640507 - in /sling/trunk/contrib/scripting/sightly: engine/src/main/antlr4/org/apache/sling/parser/expr/generated/ testing-content/ testing-content/src/main/resources/SLING-INF/ testing/
Author: fmeschbe Date: Wed Nov 19 09:16:44 2014 New Revision: 1640507 URL: http://svn.apache.org/r1640507 Log: SLING-4167 - The Sightly implementation should provide support for escaped expressions * defined escaped expressions in the lexer * defined escaped expressions as text fragments in the parser * updated TCK version from Adobe to use the new escaped expressions tests * added a resource for the new tests in the testing-content module This closes #40 (Applying patch provided by Radu Cotescu, Thanks alot) Modified: sling/trunk/contrib/scripting/sightly/engine/src/main/antlr4/org/apache/sling/parser/expr/generated/SightlyLexer.g4 sling/trunk/contrib/scripting/sightly/engine/src/main/antlr4/org/apache/sling/parser/expr/generated/SightlyParser.g4 sling/trunk/contrib/scripting/sightly/testing-content/pom.xml sling/trunk/contrib/scripting/sightly/testing-content/src/main/resources/SLING-INF/sightlytck.json sling/trunk/contrib/scripting/sightly/testing/pom.xml Modified: sling/trunk/contrib/scripting/sightly/engine/src/main/antlr4/org/apache/sling/parser/expr/generated/SightlyLexer.g4 URL: http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/sightly/engine/src/main/antlr4/org/apache/sling/parser/expr/generated/SightlyLexer.g4?rev=1640507r1=1640506r2=1640507view=diff == --- sling/trunk/contrib/scripting/sightly/engine/src/main/antlr4/org/apache/sling/parser/expr/generated/SightlyLexer.g4 (original) +++ sling/trunk/contrib/scripting/sightly/engine/src/main/antlr4/org/apache/sling/parser/expr/generated/SightlyLexer.g4 Wed Nov 19 09:16:44 2014 @@ -18,6 +18,8 @@ **/ lexer grammar SightlyLexer; +ESC_EXPR: '\${'.*? '}'; + EXPR_START: '${' - pushMode(ExpressionMode); TEXT_PART: .; //$hello ${expr} Modified: sling/trunk/contrib/scripting/sightly/engine/src/main/antlr4/org/apache/sling/parser/expr/generated/SightlyParser.g4 URL: http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/sightly/engine/src/main/antlr4/org/apache/sling/parser/expr/generated/SightlyParser.g4?rev=1640507r1=1640506r2=1640507view=diff == --- sling/trunk/contrib/scripting/sightly/engine/src/main/antlr4/org/apache/sling/parser/expr/generated/SightlyParser.g4 (original) +++ sling/trunk/contrib/scripting/sightly/engine/src/main/antlr4/org/apache/sling/parser/expr/generated/SightlyParser.g4 Wed Nov 19 09:16:44 2014 @@ -47,6 +47,8 @@ textFrag returns [String str] @init { StringBuilder sb = new StringBuilder(); } : (TEXT_PART { sb.append($TEXT_PART.text); })+ { $str = sb.toString(); } +| (ESC_EXPR { sb.append($ESC_EXPR.text); })+ +{ $str = sb.toString().substring(1); } ; expression returns [Expression expr] Modified: sling/trunk/contrib/scripting/sightly/testing-content/pom.xml URL: http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/sightly/testing-content/pom.xml?rev=1640507r1=1640506r2=1640507view=diff == --- sling/trunk/contrib/scripting/sightly/testing-content/pom.xml (original) +++ sling/trunk/contrib/scripting/sightly/testing-content/pom.xml Wed Nov 19 09:16:44 2014 @@ -87,7 +87,7 @@ artifactItem groupIdio.sightly/groupId artifactIdio.sightly.tck/artifactId -version1.0.1/version +version1.0.2/version typejar/type outputDirectory${project.build.directory}/sightlytck//outputDirectory includes**/*.html,**/*.js,**/*.java/includes Modified: sling/trunk/contrib/scripting/sightly/testing-content/src/main/resources/SLING-INF/sightlytck.json URL: http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/sightly/testing-content/src/main/resources/SLING-INF/sightlytck.json?rev=1640507r1=1640506r2=1640507view=diff == --- sling/trunk/contrib/scripting/sightly/testing-content/src/main/resources/SLING-INF/sightlytck.json (original) +++ sling/trunk/contrib/scripting/sightly/testing-content/src/main/resources/SLING-INF/sightlytck.json Wed Nov 19 09:16:44 2014 @@ -21,6 +21,10 @@ xss : { jcr:primaryType: nt:unstructured, sling:resourceType: /sightlytck/scripts/exprlang/xss +}, +escapedexpr: { +jcr:primaryType: nt:unstructured, +sling:resourceType: /sightlytck/scripts/exprlang/escapedexpr } }, blockstatements: { Modified: sling/trunk/contrib/scripting/sightly/testing/pom.xml URL:
svn commit: r1640508 - in /sling/trunk/contrib/scripting/sightly/engine: ./ src/main/java/org/apache/sling/scripting/sightly/api/
Author: fmeschbe Date: Wed Nov 19 09:30:38 2014 New Revision: 1640508 URL: http://svn.apache.org/r1640508 Log: SLING-4180 - Sightly Engine should properly reimport its own API export * added ProviderType annotation for services implemented by the engine bundle * added ConsumerType annotation for services that can be implemented by other bundles This closes #43 (Applying patch by Radu Cotescu with the exception of the Exceptions which I don't annotate for now; Thanks for providing the patch) Added: sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/api/package-info.java (with props) Modified: sling/trunk/contrib/scripting/sightly/engine/pom.xml sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/api/BaseRenderUnit.java sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/api/ExtensionInstance.java sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/api/ObjectModel.java sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/api/ProviderOutcome.java sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/api/Record.java sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/api/RenderContext.java sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/api/RenderUnit.java sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/api/ResourceResolution.java sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/api/RuntimeExtension.java sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/api/RuntimeExtensionComponent.java sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/api/SightlyRuntime.java sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/api/StackedWriter.java sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/api/UnitLocator.java sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/api/Use.java sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/api/UseProvider.java sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/api/UseProviderComponent.java Modified: sling/trunk/contrib/scripting/sightly/engine/pom.xml URL: http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/sightly/engine/pom.xml?rev=1640508r1=1640507r2=1640508view=diff == --- sling/trunk/contrib/scripting/sightly/engine/pom.xml (original) +++ sling/trunk/contrib/scripting/sightly/engine/pom.xml Wed Nov 19 09:30:38 2014 @@ -79,7 +79,7 @@ instructions Embed-Dependencyantlr4-runtime,org.abego.treelayout.core/Embed-Dependency Export-Package - org.apache.sling.scripting.sightly.api;version=1.0.0 +org.apache.sling.scripting.sightly.api /Export-Package ScriptEngine-Name${project.name}/ScriptEngine-Name ScriptEngine-Version${project.version}/ScriptEngine-Version Modified: sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/api/BaseRenderUnit.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/api/BaseRenderUnit.java?rev=1640508r1=1640507r2=1640508view=diff == --- sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/api/BaseRenderUnit.java (original) +++ sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/api/BaseRenderUnit.java Wed Nov 19 09:30:38 2014 @@ -26,9 +26,12 @@ import java.util.Set; import javax.script.Bindings; import javax.script.SimpleBindings; +import aQute.bnd.annotation.ProviderType; + /** * Compiled version of render units */ +@ProviderType public abstract class BaseRenderUnit implements RenderUnit { private final MapString, RenderUnit subTemplates = new HashMapString, RenderUnit(); Modified: sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/api/ExtensionInstance.java URL:
svn commit: r1640525 - in /sling/trunk/contrib: extensions/validation/ extensions/xss/ validation/ xss/
Author: fmeschbe Date: Wed Nov 19 11:19:23 2014 New Revision: 1640525 URL: http://svn.apache.org/r1640525 Log: SLING-4187 Move XSS and Validation to Extensions Added: sling/trunk/contrib/extensions/validation/ - copied from r1640523, sling/trunk/contrib/validation/ sling/trunk/contrib/extensions/xss/ - copied from r1640523, sling/trunk/contrib/xss/ Removed: sling/trunk/contrib/validation/ sling/trunk/contrib/xss/
svn commit: r1640532 - in /sling/trunk/contrib/extensions/distribution: api/src/main/java/org/apache/sling/distribution/component/ core/src/main/java/org/apache/sling/distribution/agent/impl/ core/src
Author: mpetria Date: Wed Nov 19 11:42:32 2014 New Revision: 1640532 URL: http://svn.apache.org/r1640532 Log: SLING-4153: Making DistributionComponentFactory delegate creation of subcomponents Added: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/DistributionComponentManager.java Modified: sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/component/DistributionComponentFactory.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/CoordinatingDistributionAgentFactory.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgentFactory.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/DefaultDistributionComponentFactory.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/DefaultDistributionComponentFactoryConstants.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/DistributionComponentFactoryManager.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/GenericDistributionComponentFactory.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/ResourceBasedDistributionComponentFactory.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/exporter/AgentDistributionPackageExporterFactory.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/exporter/LocalDistributionPackageExporterFactory.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/exporter/RemoteDistributionPackageExporterFactory.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/LocalDistributionPackageImporterFactory.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/RemoteDistributionPackageImporterFactory.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/authentication/impl/UserCredentialsTransportAuthenticationProviderFactory.java sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/agent/impl/CoordinatingDistributionAgentFactoryTest.java sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/component/impl/DefaultDistributionComponentFactoryTest.java Modified: sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/component/DistributionComponentFactory.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/component/DistributionComponentFactory.java?rev=1640532r1=1640531r2=1640532view=diff == --- sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/component/DistributionComponentFactory.java (original) +++ sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/component/DistributionComponentFactory.java Wed Nov 19 11:42:32 2014 @@ -29,6 +29,7 @@ import aQute.bnd.annotation.ProviderType /** * factory for {@link DistributionComponent}s. * A client should register a component factory if it has custom implementations of distribution components. + * As components are hierarchical a factory can delegate the creation of its sub components to another factory. */ @ConsumerType public interface DistributionComponentFactory { @@ -41,10 +42,12 @@ public interface DistributionComponentFa * @param propertiesthe properties to be supplied for the initialization of the component * @param ComponentType the actual type of the {@link DistributionComponent} * to be created + * @param subComponentFactory the factory to be called for creating sub components * @return a {@link DistributionComponent} of the specified type initialized with given properties or codenull/code * if that could not be created */ @CheckForNull ComponentType extends DistributionComponent ComponentType createComponent(@Nonnull java.lang.ClassComponentType type, - @Nonnull MapString, Object properties); + @Nonnull
svn commit: r1640572 - in /sling/trunk/contrib/extensions/validation: api/src/main/java/org/apache/sling/validation/api/ api/src/main/java/org/apache/sling/validation/api/exceptions/ core/ core/src/ma
Author: kwin Date: Wed Nov 19 15:23:05 2014 New Revision: 1640572 URL: http://svn.apache.org/r1640572 Log: SLING-4138, refactored Validator interface to support arbitrary types, arrays and cross-field validation Added: sling/trunk/contrib/extensions/validation/api/src/main/java/org/apache/sling/validation/api/ParameterizedValidator.java sling/trunk/contrib/extensions/validation/core/src/main/java/org/apache/sling/validation/impl/ParameterizedValidatorImpl.java sling/trunk/contrib/extensions/validation/core/src/main/java/org/apache/sling/validation/impl/util/ValidatorTypeUtil.java sling/trunk/contrib/extensions/validation/core/src/test/java/org/apache/sling/validation/impl/util/ValidatorTypeUtilTest.java sling/trunk/contrib/extensions/validation/core/src/test/java/org/apache/sling/validation/impl/util/examplevalidators/ sling/trunk/contrib/extensions/validation/core/src/test/java/org/apache/sling/validation/impl/util/examplevalidators/AbstractValidatorWithAdditionalType.java sling/trunk/contrib/extensions/validation/core/src/test/java/org/apache/sling/validation/impl/util/examplevalidators/DateValidator.java sling/trunk/contrib/extensions/validation/core/src/test/java/org/apache/sling/validation/impl/util/examplevalidators/DerivedStringValidator.java sling/trunk/contrib/extensions/validation/core/src/test/java/org/apache/sling/validation/impl/util/examplevalidators/ExtendedStringValidator.java sling/trunk/contrib/extensions/validation/core/src/test/java/org/apache/sling/validation/impl/util/examplevalidators/GenericTypeParameterBaseClass.java sling/trunk/contrib/extensions/validation/core/src/test/java/org/apache/sling/validation/impl/util/examplevalidators/IntegerValidator.java sling/trunk/contrib/extensions/validation/core/src/test/java/org/apache/sling/validation/impl/util/examplevalidators/StringArrayValidator.java sling/trunk/contrib/extensions/validation/core/src/test/java/org/apache/sling/validation/impl/util/examplevalidators/StringValidator.java Removed: sling/trunk/contrib/extensions/validation/api/src/main/java/org/apache/sling/validation/api/Type.java sling/trunk/contrib/extensions/validation/api/src/main/java/org/apache/sling/validation/api/exceptions/NonExistingTypeException.java Modified: sling/trunk/contrib/extensions/validation/api/src/main/java/org/apache/sling/validation/api/ResourceProperty.java sling/trunk/contrib/extensions/validation/api/src/main/java/org/apache/sling/validation/api/Validator.java sling/trunk/contrib/extensions/validation/core/pom.xml sling/trunk/contrib/extensions/validation/core/src/main/java/org/apache/sling/validation/impl/JCRValidationModel.java sling/trunk/contrib/extensions/validation/core/src/main/java/org/apache/sling/validation/impl/ResourcePropertyImpl.java sling/trunk/contrib/extensions/validation/core/src/main/java/org/apache/sling/validation/impl/ValidationServiceImpl.java sling/trunk/contrib/extensions/validation/core/src/main/java/org/apache/sling/validation/impl/util/JCRBuilder.java sling/trunk/contrib/extensions/validation/core/src/main/java/org/apache/sling/validation/impl/validators/RegexValidator.java sling/trunk/contrib/extensions/validation/core/src/test/java/org/apache/sling/validation/impl/ValidationServiceImplTest.java Added: sling/trunk/contrib/extensions/validation/api/src/main/java/org/apache/sling/validation/api/ParameterizedValidator.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/validation/api/src/main/java/org/apache/sling/validation/api/ParameterizedValidator.java?rev=1640572view=auto == --- sling/trunk/contrib/extensions/validation/api/src/main/java/org/apache/sling/validation/api/ParameterizedValidator.java (added) +++ sling/trunk/contrib/extensions/validation/api/src/main/java/org/apache/sling/validation/api/ParameterizedValidator.java Wed Nov 19 15:23:05 2014 @@ -0,0 +1,35 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * License); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * AS IS BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.sling.validation.api; + +import java.util.Map; + +/** + * Defines a validator instance with information
svn commit: r1640585 - in /sling/trunk/contrib/extensions/xss/src/main/java/org/apache/sling/xss: JSONUtil.java ProtectionContext.java XSSAPI.java XSSFilter.java package-info.java
Author: fmeschbe Date: Wed Nov 19 16:08:50 2014 New Revision: 1640585 URL: http://svn.apache.org/r1640585 Log: SLING-4185 The org.apache.sling.xss bundle should properly export its API Applying slightly modified patch by Radu Cotescu (Thanks alot). Modified: sling/trunk/contrib/extensions/xss/src/main/java/org/apache/sling/xss/JSONUtil.java sling/trunk/contrib/extensions/xss/src/main/java/org/apache/sling/xss/ProtectionContext.java sling/trunk/contrib/extensions/xss/src/main/java/org/apache/sling/xss/XSSAPI.java sling/trunk/contrib/extensions/xss/src/main/java/org/apache/sling/xss/XSSFilter.java sling/trunk/contrib/extensions/xss/src/main/java/org/apache/sling/xss/package-info.java Modified: sling/trunk/contrib/extensions/xss/src/main/java/org/apache/sling/xss/JSONUtil.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/xss/src/main/java/org/apache/sling/xss/JSONUtil.java?rev=1640585r1=1640584r2=1640585view=diff == --- sling/trunk/contrib/extensions/xss/src/main/java/org/apache/sling/xss/JSONUtil.java (original) +++ sling/trunk/contrib/extensions/xss/src/main/java/org/apache/sling/xss/JSONUtil.java Wed Nov 19 16:08:50 2014 @@ -24,16 +24,18 @@ import org.apache.sling.commons.json.io. * JSON utilities * p/ * Support for handling xss protected values with JSON objects and JSON writers. - * - * @since 1.0.0 */ -public class JSONUtil { +public final class JSONUtil { /** * Key suffix for XSS protected properties */ public static final String KEY_SUFFIX_XSS = _xss; +// no instantiation +private JSONUtil() { +} + /** * Puts a xss protected value into a JSON object. * The value is put under the provided key. Modified: sling/trunk/contrib/extensions/xss/src/main/java/org/apache/sling/xss/ProtectionContext.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/xss/src/main/java/org/apache/sling/xss/ProtectionContext.java?rev=1640585r1=1640584r2=1640585view=diff == --- sling/trunk/contrib/extensions/xss/src/main/java/org/apache/sling/xss/ProtectionContext.java (original) +++ sling/trunk/contrib/extensions/xss/src/main/java/org/apache/sling/xss/ProtectionContext.java Wed Nov 19 16:08:50 2014 @@ -16,13 +16,12 @@ **/ package org.apache.sling.xss; + /** * This enumeration defines the context for executing XSS protection. * p/ * The specified rules refer to * http://www.owasp.org/index.php/XSS_%28Cross_Site_Scripting%29_Prevention_Cheat_Sheet - * - * @since 1.0 */ public enum ProtectionContext { /** Modified: sling/trunk/contrib/extensions/xss/src/main/java/org/apache/sling/xss/XSSAPI.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/xss/src/main/java/org/apache/sling/xss/XSSAPI.java?rev=1640585r1=1640584r2=1640585view=diff == --- sling/trunk/contrib/extensions/xss/src/main/java/org/apache/sling/xss/XSSAPI.java (original) +++ sling/trunk/contrib/extensions/xss/src/main/java/org/apache/sling/xss/XSSAPI.java Wed Nov 19 16:08:50 2014 @@ -20,6 +20,8 @@ package org.apache.sling.xss; import org.apache.sling.api.SlingHttpServletRequest; import org.apache.sling.api.resource.ResourceResolver; +import aQute.bnd.annotation.ProviderType; + /** * A service providing validators and encoders for XSS protection during the composition of HTML * pages. @@ -31,6 +33,7 @@ import org.apache.sling.api.resource.Res * p/ * When in doubt, use a validator. */ +@ProviderType public interface XSSAPI { // = Modified: sling/trunk/contrib/extensions/xss/src/main/java/org/apache/sling/xss/XSSFilter.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/xss/src/main/java/org/apache/sling/xss/XSSFilter.java?rev=1640585r1=1640584r2=1640585view=diff == --- sling/trunk/contrib/extensions/xss/src/main/java/org/apache/sling/xss/XSSFilter.java (original) +++ sling/trunk/contrib/extensions/xss/src/main/java/org/apache/sling/xss/XSSFilter.java Wed Nov 19 16:08:50 2014 @@ -16,12 +16,13 @@ **/ package org.apache.sling.xss; +import aQute.bnd.annotation.ProviderType; + /** * This service should be used to protect output against potential XSS attacks. * The protection is context based. - * - * @since 1.0 */ +@ProviderType public interface XSSFilter { /** Modified: sling/trunk/contrib/extensions/xss/src/main/java/org/apache/sling/xss/package-info.java URL:
svn commit: r1640589 - in /sling/trunk/contrib/extensions/validation: api/src/main/java/org/apache/sling/validation/api/ core/src/main/java/org/apache/sling/validation/impl/ core/src/main/java/org/apa
Author: kwin Date: Wed Nov 19 16:28:08 2014 New Revision: 1640589 URL: http://svn.apache.org/r1640589 Log: SLILNG-4027 removal of ValidatorLookupService Removed: sling/trunk/contrib/extensions/validation/api/src/main/java/org/apache/sling/validation/api/ValidatorLookupService.java sling/trunk/contrib/extensions/validation/core/src/main/java/org/apache/sling/validation/impl/ValidatorLookupServiceImpl.java Modified: sling/trunk/contrib/extensions/validation/core/src/main/java/org/apache/sling/validation/impl/ChildResourceImpl.java sling/trunk/contrib/extensions/validation/core/src/main/java/org/apache/sling/validation/impl/ValidationServiceImpl.java sling/trunk/contrib/extensions/validation/core/src/main/java/org/apache/sling/validation/impl/util/JCRBuilder.java sling/trunk/contrib/extensions/validation/core/src/test/java/org/apache/sling/validation/impl/ValidationServiceImplTest.java Modified: sling/trunk/contrib/extensions/validation/core/src/main/java/org/apache/sling/validation/impl/ChildResourceImpl.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/validation/core/src/main/java/org/apache/sling/validation/impl/ChildResourceImpl.java?rev=1640589r1=1640588r2=1640589view=diff == --- sling/trunk/contrib/extensions/validation/core/src/main/java/org/apache/sling/validation/impl/ChildResourceImpl.java (original) +++ sling/trunk/contrib/extensions/validation/core/src/main/java/org/apache/sling/validation/impl/ChildResourceImpl.java Wed Nov 19 16:28:08 2014 @@ -1,11 +1,12 @@ package org.apache.sling.validation.impl; +import java.util.Map; import java.util.Set; import org.apache.sling.api.resource.Resource; import org.apache.sling.validation.api.ChildResource; import org.apache.sling.validation.api.ResourceProperty; -import org.apache.sling.validation.api.ValidatorLookupService; +import org.apache.sling.validation.api.Validator; import org.apache.sling.validation.impl.util.JCRBuilder; /** @@ -16,13 +17,13 @@ public class ChildResourceImpl implement private String name; private SetResourceProperty properties; -public ChildResourceImpl(Resource modelResource, Resource childResource, ValidatorLookupService validatorLookupService) { +public ChildResourceImpl(Resource modelResource, Resource childResource, MapString, Validator? validatorsMap) { String root = modelResource.getPath(); if (!childResource.getPath().startsWith(root)) { throw new IllegalArgumentException(Expected resource + childResource.getPath() + to be under root path + root); } name = childResource.getPath().replaceFirst(root + /, ).replaceAll(Constants.CHILDREN + /, ); -properties = JCRBuilder.buildProperties(validatorLookupService, childResource.getChild(Constants.PROPERTIES)); +properties = JCRBuilder.buildProperties(validatorsMap, childResource.getChild(Constants.PROPERTIES)); } @Override Modified: sling/trunk/contrib/extensions/validation/core/src/main/java/org/apache/sling/validation/impl/ValidationServiceImpl.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/validation/core/src/main/java/org/apache/sling/validation/impl/ValidationServiceImpl.java?rev=1640589r1=1640588r2=1640589view=diff == --- sling/trunk/contrib/extensions/validation/core/src/main/java/org/apache/sling/validation/impl/ValidationServiceImpl.java (original) +++ sling/trunk/contrib/extensions/validation/core/src/main/java/org/apache/sling/validation/impl/ValidationServiceImpl.java Wed Nov 19 16:28:08 2014 @@ -18,25 +18,21 @@ */ package org.apache.sling.validation.impl; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.lang.reflect.Type; -import java.lang.reflect.TypeVariable; import java.util.Dictionary; import java.util.Hashtable; import java.util.Iterator; import java.util.List; import java.util.Map; -import java.util.Map.Entry; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import javax.jcr.query.Query; import org.apache.commons.lang3.StringUtils; -import org.apache.commons.lang3.reflect.TypeUtils; import org.apache.felix.scr.annotations.Component; import org.apache.felix.scr.annotations.Reference; +import org.apache.felix.scr.annotations.ReferenceCardinality; +import org.apache.felix.scr.annotations.ReferencePolicy; import org.apache.felix.scr.annotations.Service; import org.apache.sling.api.SlingConstants; import org.apache.sling.api.resource.LoginException; @@ -54,7 +50,6 @@ import org.apache.sling.validation.api.V import org.apache.sling.validation.api.ValidationResult; import org.apache.sling.validation.api.ValidationService; import org.apache.sling.validation.api.Validator; -import