svn commit: r1777305 - in /sling/trunk/contrib/extensions/reqanalyzer: ./ src/main/java/org/apache/sling/reqanalyzer/impl/gui/ src/test/ src/test/java/ src/test/java/org/ src/test/java/org/apache/ src
Author: fmeschbe Date: Wed Jan 4 13:04:38 2017 New Revision: 1777305 URL: http://svn.apache.org/viewvc?rev=1777305=rev Log: SLING-6433 Request Processing Analyzer throws IOOB due to old format assumptions of RequestProgressTracker output Apply patch by Krystian Nowak (thanks a lot) Added: sling/trunk/contrib/extensions/reqanalyzer/src/test/ sling/trunk/contrib/extensions/reqanalyzer/src/test/java/ sling/trunk/contrib/extensions/reqanalyzer/src/test/java/org/ sling/trunk/contrib/extensions/reqanalyzer/src/test/java/org/apache/ sling/trunk/contrib/extensions/reqanalyzer/src/test/java/org/apache/sling/ sling/trunk/contrib/extensions/reqanalyzer/src/test/java/org/apache/sling/reqanalyzer/ sling/trunk/contrib/extensions/reqanalyzer/src/test/java/org/apache/sling/reqanalyzer/impl/ sling/trunk/contrib/extensions/reqanalyzer/src/test/java/org/apache/sling/reqanalyzer/impl/gui/ sling/trunk/contrib/extensions/reqanalyzer/src/test/java/org/apache/sling/reqanalyzer/impl/gui/RequestTableModelTest.java sling/trunk/contrib/extensions/reqanalyzer/src/test/resources/ sling/trunk/contrib/extensions/reqanalyzer/src/test/resources/requesttracker.txt Modified: sling/trunk/contrib/extensions/reqanalyzer/pom.xml sling/trunk/contrib/extensions/reqanalyzer/src/main/java/org/apache/sling/reqanalyzer/impl/gui/RequestTableModel.java Modified: sling/trunk/contrib/extensions/reqanalyzer/pom.xml URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/reqanalyzer/pom.xml?rev=1777305=1777304=1777305=diff == --- sling/trunk/contrib/extensions/reqanalyzer/pom.xml (original) +++ sling/trunk/contrib/extensions/reqanalyzer/pom.xml Wed Jan 4 13:04:38 2017 @@ -82,6 +82,16 @@ + +org.apache.rat +apache-rat-plugin + + + +src/test/resources/*.txt + + + Modified: sling/trunk/contrib/extensions/reqanalyzer/src/main/java/org/apache/sling/reqanalyzer/impl/gui/RequestTableModel.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/reqanalyzer/src/main/java/org/apache/sling/reqanalyzer/impl/gui/RequestTableModel.java?rev=1777305=1777304=1777305=diff == --- sling/trunk/contrib/extensions/reqanalyzer/src/main/java/org/apache/sling/reqanalyzer/impl/gui/RequestTableModel.java (original) +++ sling/trunk/contrib/extensions/reqanalyzer/src/main/java/org/apache/sling/reqanalyzer/impl/gui/RequestTableModel.java Wed Jan 4 13:04:38 2017 @@ -30,11 +30,10 @@ public class RequestTableModel implement private long previousStamp; void addRow(String row) { -// split row: "%1$7d (%2$tF %2$tT) %3$s%n +// split row: "%1$7d %3$s%n final String stampS = row.substring(0, 7); -final int endTimeStamp = row.indexOf(')'); -final String message = row.substring(endTimeStamp+2); +final String message = row.substring(7); long stamp = Long.parseLong(stampS.trim()); long delta = stamp - this.previousStamp; Added: sling/trunk/contrib/extensions/reqanalyzer/src/test/java/org/apache/sling/reqanalyzer/impl/gui/RequestTableModelTest.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/reqanalyzer/src/test/java/org/apache/sling/reqanalyzer/impl/gui/RequestTableModelTest.java?rev=1777305=auto == --- sling/trunk/contrib/extensions/reqanalyzer/src/test/java/org/apache/sling/reqanalyzer/impl/gui/RequestTableModelTest.java (added) +++ sling/trunk/contrib/extensions/reqanalyzer/src/test/java/org/apache/sling/reqanalyzer/impl/gui/RequestTableModelTest.java Wed Jan 4 13:04:38 2017 @@ -0,0 +1,51 @@ +/* + * 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.reqanaly
svn commit: r1773793 - in /sling/trunk/bundles/jcr/davex: ./ src/main/java/org/apache/sling/jcr/davex/impl/servlets/ src/test/java/org/apache/sling/jcr/davex/impl/servlets/
Author: fmeschbe Date: Mon Dec 12 14:05:20 2016 New Revision: 1773793 URL: http://svn.apache.org/viewvc?rev=1773793=rev Log: SLING-6378 Unclosed ResourceResolver in davex AuthHttpContext * Refactored Servlet to be a whiteboard registered servlet * Refactored AuthHttpContext to be a whiteboard registered ServletContextHelper used by the SlingDavExServlet Modified: sling/trunk/bundles/jcr/davex/pom.xml sling/trunk/bundles/jcr/davex/src/main/java/org/apache/sling/jcr/davex/impl/servlets/AuthHttpContext.java sling/trunk/bundles/jcr/davex/src/main/java/org/apache/sling/jcr/davex/impl/servlets/SlingDavExServlet.java sling/trunk/bundles/jcr/davex/src/test/java/org/apache/sling/jcr/davex/impl/servlets/AuthHttpContextTest.java Modified: sling/trunk/bundles/jcr/davex/pom.xml URL: http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/davex/pom.xml?rev=1773793=1773792=1773793=diff == --- sling/trunk/bundles/jcr/davex/pom.xml (original) +++ sling/trunk/bundles/jcr/davex/pom.xml Mon Dec 12 14:05:20 2016 @@ -152,7 +152,8 @@ org.osgi -org.osgi.compendium +org.osgi.service.http.whiteboard +1.0.0 Modified: sling/trunk/bundles/jcr/davex/src/main/java/org/apache/sling/jcr/davex/impl/servlets/AuthHttpContext.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/davex/src/main/java/org/apache/sling/jcr/davex/impl/servlets/AuthHttpContext.java?rev=1773793=1773792=1773793=diff == --- sling/trunk/bundles/jcr/davex/src/main/java/org/apache/sling/jcr/davex/impl/servlets/AuthHttpContext.java (original) +++ sling/trunk/bundles/jcr/davex/src/main/java/org/apache/sling/jcr/davex/impl/servlets/AuthHttpContext.java Mon Dec 12 14:05:20 2016 @@ -17,53 +17,54 @@ package org.apache.sling.jcr.davex.impl.servlets; import java.io.IOException; -import java.net.URL; +import java.util.Set; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import org.apache.felix.scr.annotations.Component; +import org.apache.felix.scr.annotations.ConfigurationPolicy; +import org.apache.felix.scr.annotations.Properties; +import org.apache.felix.scr.annotations.Property; +import org.apache.felix.scr.annotations.Reference; +import org.apache.felix.scr.annotations.Service; import org.apache.sling.auth.core.AuthenticationSupport; -import org.osgi.service.http.HttpContext; - -class AuthHttpContext implements HttpContext { +import org.osgi.framework.Constants; +import org.osgi.service.http.context.ServletContextHelper; +import org.osgi.service.http.whiteboard.HttpWhiteboardConstants; + +@Component(metatype = false, policy = ConfigurationPolicy.IGNORE) +@Service(ServletContextHelper.class) +@Properties({ +@Property(name = Constants.SERVICE_DESCRIPTION, value = "Sling JcrRemoting Servlet"), +@Property(name = Constants.SERVICE_VENDOR, value = "The Apache Software Foundation"), +@Property(name = HttpWhiteboardConstants.HTTP_WHITEBOARD_CONTEXT_NAME, value = AuthHttpContext.HTTP_CONTEXT_NAME), +@Property(name = HttpWhiteboardConstants.HTTP_WHITEBOARD_CONTEXT_PATH, value = "/"), +@Property(name = Constants.SERVICE_RANKING, intValue = 5) +}) +public class AuthHttpContext extends ServletContextHelper { /** - * The root path at which the DavEx servlet is registered. This is used to - * extract the workspace name from the request URL where the workspace name - * is the first segment in the path after the this path. + * The name of this ServletContext for use by they SlingDavExServlet */ -private final String davRoot; +static final String HTTP_CONTEXT_NAME = "DavExAuthHttpContext"; /** * Handles security * * @see #handleSecurity(HttpServletRequest, HttpServletResponse) */ +@Reference private AuthenticationSupport authenticator; -AuthHttpContext(final String davRoot) { -this.davRoot = davRoot; -} - -public void setAuthenticationSupport(final AuthenticationSupport auth) { -this.authenticator = auth; -} - -// -- HttpContext - -/** - * Returns the MIME type as resolved by the MimeTypeService or - * null if the service is not available. - */ -public String getMimeType(String name) { -return null; -} +// -- ServletContextHelper /** - * Always returns null because resources are all provided - * through the {@link MainServlet}. + * Always returns null as resources are only accessible through + * the {@link SlingDavExServlet}. */ -public URL getResource(String name) { +@Override +public Set getResourcePaths(String path) { return null; } @@ -94,40 +95,21 @@ class AuthHttpC
svn commit: r1767618 - in /sling/trunk/launchpad/base/src: main/java/org/apache/sling/launchpad/base/impl/ main/java/org/apache/sling/launchpad/base/shared/ main/java/org/apache/sling/launchpad/webapp
Author: fmeschbe Date: Wed Nov 2 08:51:17 2016 New Revision: 1767618 URL: http://svn.apache.org/viewvc?rev=1767618=rev Log: SLING-6226 substVars not properly handling unknown properties - Apply patch - Add new Util class with substVars method - Remove duplicates in SlingServlet and Sling - Add unit test for Util class Added: sling/trunk/launchpad/base/src/main/java/org/apache/sling/launchpad/base/shared/Util.java sling/trunk/launchpad/base/src/test/java/org/apache/sling/launchpad/base/shared/ sling/trunk/launchpad/base/src/test/java/org/apache/sling/launchpad/base/shared/UtilTest.java (with props) Modified: sling/trunk/launchpad/base/src/main/java/org/apache/sling/launchpad/base/impl/Sling.java sling/trunk/launchpad/base/src/main/java/org/apache/sling/launchpad/webapp/SlingServlet.java Modified: sling/trunk/launchpad/base/src/main/java/org/apache/sling/launchpad/base/impl/Sling.java URL: http://svn.apache.org/viewvc/sling/trunk/launchpad/base/src/main/java/org/apache/sling/launchpad/base/impl/Sling.java?rev=1767618=1767617=1767618=diff == --- sling/trunk/launchpad/base/src/main/java/org/apache/sling/launchpad/base/impl/Sling.java (original) +++ sling/trunk/launchpad/base/src/main/java/org/apache/sling/launchpad/base/impl/Sling.java Wed Nov 2 08:51:17 2016 @@ -44,6 +44,7 @@ import org.apache.felix.framework.util.F import org.apache.sling.launchpad.api.LaunchpadContentProvider; import org.apache.sling.launchpad.base.shared.Notifiable; import org.apache.sling.launchpad.base.shared.SharedConstants; +import org.apache.sling.launchpad.base.shared.Util; import org.osgi.framework.Bundle; import org.osgi.framework.BundleContext; import org.osgi.framework.BundleException; @@ -408,7 +409,7 @@ public class Sling { } // resolve variables and ensure sling.home is an absolute path -slingHome = substVars(slingHome, SharedConstants.SLING_HOME, null, staticProps); +slingHome = Util.substVars(slingHome, SharedConstants.SLING_HOME, null, staticProps); File slingHomeFile = new File(slingHome).getAbsoluteFile(); slingHome = slingHomeFile.getAbsolutePath(); @@ -471,7 +472,7 @@ public class Sling { // Perform variable substitution for system properties. for (Entry<String, String> entry : runtimeProps.entrySet()) { -entry.setValue(substVars(entry.getValue(), entry.getKey(), null, +entry.setValue(Util.substVars(entry.getValue(), entry.getKey(), null, runtimeProps)); } @@ -755,7 +756,7 @@ public class Sling { String include = entry.getValue(); // ensure variable resolution on this property -include = substVars(include, key, null, props); +include = Util.substVars(include, key, null, props); StringTokenizer tokener = new StringTokenizer(include, ","); while (tokener.hasMoreTokens()) { @@ -856,131 +857,6 @@ public class Sling { } } -// -- Property file variable substition support - -/** - * The starting delimiter of variable names (value is "${"). - */ -private static final String DELIM_START = "${"; - -/** - * The ending delimiter of variable names (value is "}"). - */ -private static final String DELIM_STOP = "}"; - -/** - * This method performs property variable substitution on the specified - * value. If the specified value contains the syntax - * ${prop-name}, where prop-name - * refers to either a configuration property or a system property, then the - * corresponding property value is substituted for the variable placeholder. - * Multiple variable placeholders may exist in the specified value as well - * as nested variable placeholders, which are substituted from inner most to - * outer most. Configuration properties override system properties. - * - * NOTE - this is a verbatim copy of the same-named method - * in o.a.s.launchpad.webapp.SlingServlet. Please keep them in sync. - * - * @param val The string on which to perform property substitution. - * @param currentKey The key of the property being evaluated used to detect - *cycles. - * @param cycleMap Map of variable references used to detect nested cycles. - * @param configProps Set of configuration properties. - * @return The value of the specified string after system property - * substitution. - * @throws IllegalArgumentException If there was a syntax error in the - * property placeholder syntax or a recursive variable - * reference. - */ -private static String substVars(String val, String currentKey, -Map<String, String> cycleMap, Map<String,
svn commit: r1675805 - in /sling/trunk/bundles/resourceresolver/src: main/java/org/apache/sling/resourceresolver/impl/tree/ProviderHandler.java test/java/org/apache/sling/resourceresolver/impl/tree/Re
Author: fmeschbe Date: Fri Apr 24 08:58:11 2015 New Revision: 1675805 URL: http://svn.apache.org/r1675805 Log: SLING-4656 Fix ProviderHandler.compareTo * Document natural order of ProviderHandler to be the same as service.ranking order. which is the revers of the natural ServiceReference order previously implemented * Added test case by Carsten Ziegeler (thanks) Modified: sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/tree/ProviderHandler.java sling/trunk/bundles/resourceresolver/src/test/java/org/apache/sling/resourceresolver/impl/tree/ResourceProviderEntryTest.java Modified: sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/tree/ProviderHandler.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/tree/ProviderHandler.java?rev=1675805r1=1675804r2=1675805view=diff == --- sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/tree/ProviderHandler.java (original) +++ sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/tree/ProviderHandler.java Fri Apr 24 08:58:11 2015 @@ -43,12 +43,22 @@ import org.slf4j.LoggerFactory; * The provider handler is the common base class for the * {@link ResourceProviderHandler} and the * {@link ResourceProviderFactoryHandler}. + * p + * The natural ordering for instances of this class is according to the + * OSGi Service ranking order: + * ol + * liAn instance with a higher service.ranking property is compared less + *than an instance with a lower service.ranking property./li + * liIf service.ranking properties are equal, the service with the + *lower service.id is compared less than the service with the higher + *service.id/li + * /ol */ public abstract class ProviderHandler implements ComparableProviderHandler { /** Default logger */ private final Logger logger = LoggerFactory.getLogger(getClass()); - + /** Service properties. */ private final MapString, Object properties; @@ -314,28 +324,21 @@ public abstract class ProviderHandler im return 0; // same service } -Object rankObj = this.getProperties().get(Constants.SERVICE_RANKING); +Object thisRankObj = this.getProperties().get(Constants.SERVICE_RANKING); Object otherRankObj = other.getProperties().get(Constants.SERVICE_RANKING); -// If no rank, then spec says it defaults to zero. -rankObj = (rankObj == null) ? new Integer(0) : rankObj; -otherRankObj = (otherRankObj == null) ? new Integer(0) : otherRankObj; - -// If rank is not Integer, then spec says it defaults to zero. -Integer rank = (rankObj instanceof Integer) -? (Integer) rankObj : new Integer(0); -Integer otherRank = (otherRankObj instanceof Integer) -? (Integer) otherRankObj : new Integer(0); +// If rank is not specified or not an Integer, then spec says it defaults to zero. +Integer thisRank = (thisRankObj instanceof Integer) ? (Integer) thisRankObj : Integer.valueOf(0); +Integer otherRank = (otherRankObj instanceof Integer) ? (Integer) otherRankObj : Integer.valueOf(0); // Sort by rank in ascending order. -if (rank.compareTo(otherRank) 0) { -return -1; // lower rank -} else if (rank.compareTo(otherRank) 0) { -return 1; // higher rank +int rankOrder = thisRank.compareTo(otherRank); +if (rankOrder != 0) { +return (rankOrder 0) ? -1 : 1; } // If ranks are equal, then sort by service id in descending order. -return (this.serviceId.compareTo(other.serviceId) 0) ? 1 : -1; +return (this.serviceId.compareTo(other.serviceId) 0) ? 1 : -1; } /** Modified: sling/trunk/bundles/resourceresolver/src/test/java/org/apache/sling/resourceresolver/impl/tree/ResourceProviderEntryTest.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/resourceresolver/src/test/java/org/apache/sling/resourceresolver/impl/tree/ResourceProviderEntryTest.java?rev=1675805r1=1675804r2=1675805view=diff == --- sling/trunk/bundles/resourceresolver/src/test/java/org/apache/sling/resourceresolver/impl/tree/ResourceProviderEntryTest.java (original) +++ sling/trunk/bundles/resourceresolver/src/test/java/org/apache/sling/resourceresolver/impl/tree/ResourceProviderEntryTest.java Fri Apr 24 08:58:11 2015 @@ -25,6 +25,7 @@ import static org.junit.Assert.fail; import java.util.Collections; import java.util.HashMap; +import java.util.Iterator; import java.util.Map; import org.apache.sling.api.resource.AbstractResource; @@ -43,7 +44,7 @@ import
svn commit: r1675803 - in /sling/trunk/bundles/servlets/resolver/src: main/java/org/apache/sling/servlets/resolver/internal/SlingServletResolver.java test/java/org/apache/sling/servlets/resolver/inter
Author: fmeschbe Date: Fri Apr 24 08:45:02 2015 New Revision: 1675803 URL: http://svn.apache.org/r1675803 Log: SLING-4655 Inherit service.ranking property in ServletResourceProvider * Added method to create servie registration properties for ServletResourceProvider registration * Added test case for new method Modified: sling/trunk/bundles/servlets/resolver/src/main/java/org/apache/sling/servlets/resolver/internal/SlingServletResolver.java sling/trunk/bundles/servlets/resolver/src/test/java/org/apache/sling/servlets/resolver/internal/SlingServletResolverTest.java Modified: sling/trunk/bundles/servlets/resolver/src/main/java/org/apache/sling/servlets/resolver/internal/SlingServletResolver.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/servlets/resolver/src/main/java/org/apache/sling/servlets/resolver/internal/SlingServletResolver.java?rev=1675803r1=1675802r2=1675803view=diff == --- sling/trunk/bundles/servlets/resolver/src/main/java/org/apache/sling/servlets/resolver/internal/SlingServletResolver.java (original) +++ sling/trunk/bundles/servlets/resolver/src/main/java/org/apache/sling/servlets/resolver/internal/SlingServletResolver.java Fri Apr 24 08:45:02 2015 @@ -995,13 +995,10 @@ public class SlingServletResolver return false; } -final DictionaryString, Object params = new HashtableString, Object(); -params.put(ResourceProvider.ROOTS, provider.getServletPaths()); -params.put(Constants.SERVICE_DESCRIPTION, ServletResourceProvider for Servlets at -+ Arrays.asList(provider.getServletPaths())); - -final ServiceRegistration reg = context.getBundleContext() -.registerService(ResourceProvider.SERVICE_NAME, provider, params); +final ServiceRegistration reg = context.getBundleContext().registerService( +ResourceProvider.SERVICE_NAME, +provider, +createServiceProperties(reference, provider)); LOGGER.info(Registered {}, provider.toString()); synchronized (this.servletsByReference) { @@ -1011,6 +1008,23 @@ public class SlingServletResolver return true; } +private DictionaryString, Object createServiceProperties(final ServiceReference reference, +final ServletResourceProvider provider) { + +final DictionaryString, Object params = new HashtableString, Object(); +params.put(ResourceProvider.ROOTS, provider.getServletPaths()); +params.put(Constants.SERVICE_DESCRIPTION, +ServletResourceProvider for Servlets at + Arrays.asList(provider.getServletPaths())); + +// inherit service ranking +Object rank = reference.getProperty(Constants.SERVICE_RANKING); +if (rank instanceof Integer) { +params.put(Constants.SERVICE_RANKING, rank); +} + +return params; +} + private void destroyAllServlets(final CollectionServiceReference refs) { for (ServiceReference serviceReference : refs) { destroyServlet(serviceReference); Modified: sling/trunk/bundles/servlets/resolver/src/test/java/org/apache/sling/servlets/resolver/internal/SlingServletResolverTest.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/servlets/resolver/src/test/java/org/apache/sling/servlets/resolver/internal/SlingServletResolverTest.java?rev=1675803r1=1675802r2=1675803view=diff == --- sling/trunk/bundles/servlets/resolver/src/test/java/org/apache/sling/servlets/resolver/internal/SlingServletResolverTest.java (original) +++ sling/trunk/bundles/servlets/resolver/src/test/java/org/apache/sling/servlets/resolver/internal/SlingServletResolverTest.java Fri Apr 24 08:45:02 2015 @@ -18,11 +18,13 @@ */ package org.apache.sling.servlets.resolver.internal; +import static junit.framework.TestCase.assertNull; +import static junit.framework.TestCase.assertTrue; import static org.apache.sling.servlets.resolver.internal.ServletResolverConstants.SLING_SERLVET_NAME; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; import java.lang.reflect.Field; +import java.lang.reflect.Method; import java.util.ArrayList; import java.util.Dictionary; import java.util.List; @@ -46,6 +48,8 @@ import org.apache.sling.commons.testing. import org.apache.sling.commons.testing.sling.MockResourceResolver; import org.apache.sling.commons.testing.sling.MockSlingHttpServletRequest; import org.apache.sling.servlets.resolver.internal.resource.MockServletResource; +import org.apache.sling.servlets.resolver.internal.resource.ServletResourceProvider; +import org.apache.sling.servlets.resolver.internal.resource.ServletResourceProviderFactory; import org.jmock.Mockery; import org.jmock.integration.junit4.JMock; import org.jmock.integration.junit4
svn commit: r1669598 - in /sling/trunk/contrib/extensions/i18n/src: main/java/org/apache/sling/i18n/impl/ test/java/org/apache/sling/i18n/impl/
Author: fmeschbe Date: Fri Mar 27 14:30:06 2015 New Revision: 1669598 URL: http://svn.apache.org/r1669598 Log: SLING-4543 Add support for JSON dictionaries Applying patch by Alex Klimetscheck (thanks alot !) Modified: sling/trunk/contrib/extensions/i18n/src/main/java/org/apache/sling/i18n/impl/JcrResourceBundle.java sling/trunk/contrib/extensions/i18n/src/main/java/org/apache/sling/i18n/impl/JcrResourceBundleProvider.java sling/trunk/contrib/extensions/i18n/src/test/java/org/apache/sling/i18n/impl/JcrResourceBundleTest.java Modified: sling/trunk/contrib/extensions/i18n/src/main/java/org/apache/sling/i18n/impl/JcrResourceBundle.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/i18n/src/main/java/org/apache/sling/i18n/impl/JcrResourceBundle.java?rev=1669598r1=1669597r2=1669598view=diff == --- sling/trunk/contrib/extensions/i18n/src/main/java/org/apache/sling/i18n/impl/JcrResourceBundle.java (original) +++ sling/trunk/contrib/extensions/i18n/src/main/java/org/apache/sling/i18n/impl/JcrResourceBundle.java Fri Mar 27 14:30:06 2015 @@ -18,12 +18,14 @@ */ package org.apache.sling.i18n.impl; +import java.io.IOException; +import java.io.InputStream; import java.util.ArrayList; import java.util.Collections; import java.util.Enumeration; -import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; +import java.util.LinkedHashMap; import java.util.LinkedHashSet; import java.util.List; import java.util.Locale; @@ -31,9 +33,12 @@ import java.util.Map; import java.util.ResourceBundle; import java.util.Set; +import org.apache.jackrabbit.commons.json.JsonHandler; +import org.apache.jackrabbit.commons.json.JsonParser; import org.apache.jackrabbit.util.ISO9075; import org.apache.sling.api.SlingException; import org.apache.sling.api.resource.Resource; +import org.apache.sling.api.resource.ResourceMetadata; import org.apache.sling.api.resource.ResourceResolver; import org.apache.sling.api.resource.ResourceUtil; import org.apache.sling.api.resource.ValueMap; @@ -74,17 +79,19 @@ public class JcrResourceBundle extends R ResourceResolver resourceResolver) { this.locale = locale; +log.info(Finding all dictionaries for '{}' (basename: {}) ..., locale, baseName == null ? none : baseName); + long start = System.currentTimeMillis(); refreshSession(resourceResolver); SetString roots = loadPotentialLanguageRoots(resourceResolver, locale, baseName); this.resources = loadFully(resourceResolver, roots, this.languageRoots); + long end = System.currentTimeMillis(); -if (log.isDebugEnabled()) { -log.debug( -JcrResourceBundle: Fully loaded {} entries for {} (base: {}) in {}ms, -new Object[] { resources.size(), locale, baseName, -(end - start) }); -log.debug(JcrResourceBundle: Language roots: {}, languageRoots); +if (log.isInfoEnabled()) { +log.info( +Finished loading {} entries for '{}' (basename: {}) in {}ms, +new Object[] { resources.size(), locale, baseName == null ? none : baseName, (end - start)} +); } } @@ -139,11 +146,11 @@ public class JcrResourceBundle extends R * Therefore this method must not be called concurrently or the set * must either be thread safe. * - * @param resourceResolver The storage access (must not be {@code null}) - * @param roots The set of (potential) disctionary subtrees. This must + * @param resolver The storage access (must not be {@code null}) + * @param roots The set of (potential) dictionary subtrees. This must * not be {@code null}. If empty, no resources will actually be * loaded. - * @param languageRoots The set of actualy dictionary subtrees. While + * @param languageRoots The set of actually dictionary subtrees. While * processing the resources, all subtrees listed in the {@code roots} * set is added to this set if it actually contains resources. This * must not be {@code null}. @@ -152,83 +159,169 @@ public class JcrResourceBundle extends R * @throws NullPointerException if either of the parameters is {@code null}. */ @SuppressWarnings(deprecation) -private MapString, Object loadFully(final ResourceResolver resourceResolver, SetString roots, SetString languageRoots) { -final ListListMapString, Object allResources = new ArrayListListMapString,Object(); +private MapString, Object loadFully(final ResourceResolver resolver, SetString roots, SetString languageRoots) { -final String[] path = resourceResolver.getSearchPath(); +final String[] searchPath = resolver.getSearchPath(); -for (final String root: roots) { -String fullLoadQuery
svn commit: r1664624 - /sling/trunk/contrib/extensions/ftpserver/src/main/java/org/apache/sling/ftpserver/impl/SlingConfiguration.java
Author: fmeschbe Date: Fri Mar 6 13:53:34 2015 New Revision: 1664624 URL: http://svn.apache.org/r1664624 Log: SLING-4476 Fix copyright header Modified: sling/trunk/contrib/extensions/ftpserver/src/main/java/org/apache/sling/ftpserver/impl/SlingConfiguration.java Modified: sling/trunk/contrib/extensions/ftpserver/src/main/java/org/apache/sling/ftpserver/impl/SlingConfiguration.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/ftpserver/src/main/java/org/apache/sling/ftpserver/impl/SlingConfiguration.java?rev=1664624r1=1664623r2=1664624view=diff == --- sling/trunk/contrib/extensions/ftpserver/src/main/java/org/apache/sling/ftpserver/impl/SlingConfiguration.java (original) +++ sling/trunk/contrib/extensions/ftpserver/src/main/java/org/apache/sling/ftpserver/impl/SlingConfiguration.java Fri Mar 6 13:53:34 2015 @@ -1,20 +1,21 @@ -/* +/* + * 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 * - * ADOBE CONFIDENTIAL - * ___ + * http://www.apache.org/licenses/LICENSE-2.0 * - * Copyright 2013 Adobe Systems Incorporated - * All Rights Reserved. - * - * NOTICE: All information contained herein is, and remains - * the property of Adobe Systems Incorporated and its suppliers, - * if any. The intellectual and technical concepts contained - * herein are proprietary to Adobe Systems Incorporated and its - * suppliers and are protected by trade secret or copyright law. - * Dissemination of this information or reproduction of this material - * is strictly forbidden unless prior written permission is obtained - * from Adobe Systems Incorporated. - **/ + * 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.ftpserver.impl; import java.util.Map;
svn propchange: r1664624 - svn:log
Author: fmeschbe Revision: 1664624 Modified property: svn:log Modified: svn:log at Fri Mar 6 13:54:21 2015 -- --- svn:log (original) +++ svn:log Fri Mar 6 13:54:21 2015 @@ -1 +1 @@ -SLING-4476 Fix copyright header +SLING-4476 Fix license header
svn commit: r1658319 - /sling/site/trunk/content/project-information/project-team.mdtext
Author: fmeschbe Date: Mon Feb 9 08:18:38 2015 New Revision: 1658319 URL: http://svn.apache.org/r1658319 Log: Committers += Radu Modified: sling/site/trunk/content/project-information/project-team.mdtext Modified: sling/site/trunk/content/project-information/project-team.mdtext URL: http://svn.apache.org/viewvc/sling/site/trunk/content/project-information/project-team.mdtext?rev=1658319r1=1658318r2=1658319view=diff == --- sling/site/trunk/content/project-information/project-team.mdtext (original) +++ sling/site/trunk/content/project-information/project-team.mdtext Mon Feb 9 08:18:38 2015 @@ -36,6 +36,7 @@ Committers marked with an asterisk (*) a | mykee (*) | Mike Müller | MySign AG | Java Developer | | olli (*) | Oliver Lietz | | Java Developer | | pauls (*) | Karl Pauls | | Java Developer | +| radu | Radu Cotescu | Adobe | Java Developer | | rombert (*) | Robert Munteanu | Adobe | Java Developer | | sboehme | Sandro Boehme | inovex GmbH | Java Developer | | sseifert | Stefan Seifert | pro!vision GmbH | Java Developer |
svn commit: r939504 - /websites/production/sling/content/
Author: fmeschbe Date: Mon Feb 9 08:19:52 2015 New Revision: 939504 Log: Committers += Radu Added: websites/production/sling/content/ - copied from r939503, websites/staging/sling/trunk/content/
svn commit: r1657850 - in /sling/trunk/contrib/scripting/sightly: testing-content/pom.xml testing-content/src/main/resources/SLING-INF/sightlytck.json testing/pom.xml
Author: fmeschbe Date: Fri Feb 6 14:59:55 2015 New Revision: 1657850 URL: http://svn.apache.org/r1657850 Log: SLING-4357 Update Sightly IT (Applying patch by Radu Cotescu, thanks alot) Modified: 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/testing-content/pom.xml URL: http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/sightly/testing-content/pom.xml?rev=1657850r1=1657849r2=1657850view=diff == --- sling/trunk/contrib/scripting/sightly/testing-content/pom.xml (original) +++ sling/trunk/contrib/scripting/sightly/testing-content/pom.xml Fri Feb 6 14:59:55 2015 @@ -85,7 +85,7 @@ artifactItem groupIdio.sightly/groupId artifactIdio.sightly.tck/artifactId -version1.0.2/version +version1.1.0/version typejar/type outputDirectory${project.build.directory}/sightlytck//outputDirectory includes**/*.html,**/*.js,**/*.java/includes @@ -133,6 +133,25 @@ failOnErrortrue/failOnError /configuration /plugin +plugin +groupIdorg.codehaus.mojo/groupId +artifactIdjslint-maven-plugin/artifactId +version1.0.1/version +configuration + sourceJsFolder${basedir}/src/main/resources/SLING-INF/sourceJsFolder +includes +include**/*.json/include +/includes +encodingUTF-8/encoding +/configuration +executions +execution +goals +goaljslint/goal +/goals +/execution +/executions +/plugin /plugins /build 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=1657850r1=1657849r2=1657850view=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 Fri Feb 6 14:59:55 2015 @@ -68,9 +68,20 @@ element: { jcr:primartyType: nt:unstructured, sling:resourceType: /sightlytck/scripts/blockstatements/element +}, +repeat: { +jcr:primartyType: nt:unstructured, +sling:resourceType: /sightlytck/scripts/blockstatements/repeat } }, +tags: { +jcr:primaryType: sling:Folder, +sly: { +jcr:primaryType: nt:unstructured, +sling:resourceType: /sightlytck/scripts/tags/sly +} +}, helpers: { jcr:primaryType: sling:Folder, testresource: { Modified: sling/trunk/contrib/scripting/sightly/testing/pom.xml URL: http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/sightly/testing/pom.xml?rev=1657850r1=1657849r2=1657850view=diff == --- sling/trunk/contrib/scripting/sightly/testing/pom.xml (original) +++ sling/trunk/contrib/scripting/sightly/testing/pom.xml Fri Feb 6 14:59:55 2015 @@ -295,7 +295,7 @@ dependency groupIdio.sightly/groupId artifactIdio.sightly.tck/artifactId -version1.0.2/version +version1.1.0/version scopetest/scope /dependency
svn commit: r1657852 - in /sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl: html/dom/MarkupHandler.java plugin/UnwrapPlugin.java
Author: fmeschbe Date: Fri Feb 6 15:06:19 2015 New Revision: 1657852 URL: http://svn.apache.org/r1657852 Log: SLING-4355 Implement support for the 'sly' HTML tag (Apply patch by Radu Cotescu, thanks a lot) Modified: sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/html/dom/MarkupHandler.java sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/plugin/UnwrapPlugin.java Modified: sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/html/dom/MarkupHandler.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/html/dom/MarkupHandler.java?rev=1657852r1=1657851r2=1657852view=diff == --- sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/html/dom/MarkupHandler.java (original) +++ sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/html/dom/MarkupHandler.java Fri Feb 6 15:06:19 2015 @@ -31,6 +31,7 @@ import org.apache.sling.scripting.sightl import org.apache.sling.scripting.sightly.impl.compiler.frontend.ExpressionWrapper; import org.apache.sling.scripting.sightly.impl.compiler.frontend.Fragment; import org.apache.sling.scripting.sightly.impl.compiler.frontend.Interpolation; +import org.apache.sling.scripting.sightly.impl.compiler.ris.command.Patterns; import org.apache.sling.scripting.sightly.impl.filter.Filter; import org.apache.sling.scripting.sightly.impl.compiler.expression.Expression; import org.apache.sling.scripting.sightly.impl.compiler.expression.ExpressionNode; @@ -94,6 +95,10 @@ public class MarkupHandler { ElementContext context = elementStack.peek(); PluginInvoke invoke = context.pluginInvoke(); invoke.beforeElement(stream, context.getTagName()); +boolean slyTag = sly.equalsIgnoreCase(context.getTagName()); +if (slyTag) { +Patterns.beginStreamIgnore(stream); +} invoke.beforeTagOpen(stream); out(context.getOpenTagStartMarkup()); invoke.beforeAttributes(stream); @@ -101,6 +106,9 @@ public class MarkupHandler { invoke.afterAttributes(stream); out(markup); invoke.afterTagOpen(stream); +if (slyTag) { +Patterns.endStreamIgnore(stream); +} invoke.beforeChildren(stream); } @@ -249,9 +257,16 @@ public class MarkupHandler { PluginInvoke invoke = context.pluginInvoke(); invoke.afterChildren(stream); boolean selfClosingTag = StringUtils.isEmpty(markup); +boolean slyTag = sly.equalsIgnoreCase(context.getTagName()); +if (slyTag) { +Patterns.beginStreamIgnore(stream); +} invoke.beforeTagClose(stream, selfClosingTag); out(markup); invoke.afterTagClose(stream, selfClosingTag); +if (slyTag) { +Patterns.endStreamIgnore(stream); +} invoke.afterElement(stream); } Modified: sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/plugin/UnwrapPlugin.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/plugin/UnwrapPlugin.java?rev=1657852r1=1657851r2=1657852view=diff == --- sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/plugin/UnwrapPlugin.java (original) +++ sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/plugin/UnwrapPlugin.java Fri Feb 6 15:06:19 2015 @@ -22,15 +22,16 @@ import org.apache.felix.scr.annotations. import org.apache.felix.scr.annotations.Properties; import org.apache.felix.scr.annotations.Property; import org.apache.felix.scr.annotations.Service; +import org.apache.sling.scripting.sightly.impl.compiler.common.DefaultPluginInvoke; import org.apache.sling.scripting.sightly.impl.compiler.expression.Expression; import org.apache.sling.scripting.sightly.impl.compiler.expression.ExpressionNode; import org.apache.sling.scripting.sightly.impl.compiler.expression.node.BooleanConstant; import org.apache.sling.scripting.sightly.impl.compiler.expression.node.StringConstant; +import org.apache.sling.scripting.sightly.impl.compiler.frontend.CompilerContext; import org.apache.sling.scripting.sightly.impl.compiler.ris.Command; import org.apache.sling.scripting.sightly.impl.compiler.ris.command.Conditional; +import org.apache.sling.scripting.sightly.impl.compiler.ris.command.Patterns; import org.apache.sling.scripting.sightly.impl.compiler.ris.command.VariableBinding; -import
svn commit: r1657853 - /sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/plugin/RepeatPlugin.java
Author: fmeschbe Date: Fri Feb 6 15:08:38 2015 New Revision: 1657853 URL: http://svn.apache.org/r1657853 Log: SLING-4356 Implement support for 'data-sly-repeat' (Apply patch by Radu Cotescu, thanks a lot) Added: sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/plugin/RepeatPlugin.java (with props) Added: sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/plugin/RepeatPlugin.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/plugin/RepeatPlugin.java?rev=1657853view=auto == --- sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/plugin/RepeatPlugin.java (added) +++ sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/plugin/RepeatPlugin.java Fri Feb 6 15:08:38 2015 @@ -0,0 +1,128 @@ +/*** + * 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.scripting.sightly.impl.plugin; + + +import java.util.HashMap; + +import org.apache.felix.scr.annotations.Component; +import org.apache.felix.scr.annotations.Properties; +import org.apache.felix.scr.annotations.Property; +import org.apache.felix.scr.annotations.Service; +import org.apache.sling.scripting.sightly.impl.compiler.Syntax; +import org.apache.sling.scripting.sightly.impl.compiler.common.DefaultPluginInvoke; +import org.apache.sling.scripting.sightly.impl.compiler.expression.Expression; +import org.apache.sling.scripting.sightly.impl.compiler.expression.ExpressionNode; +import org.apache.sling.scripting.sightly.impl.compiler.expression.node.BinaryOperation; +import org.apache.sling.scripting.sightly.impl.compiler.expression.node.BinaryOperator; +import org.apache.sling.scripting.sightly.impl.compiler.expression.node.Identifier; +import org.apache.sling.scripting.sightly.impl.compiler.expression.node.MapLiteral; +import org.apache.sling.scripting.sightly.impl.compiler.expression.node.NumericConstant; +import org.apache.sling.scripting.sightly.impl.compiler.expression.node.UnaryOperation; +import org.apache.sling.scripting.sightly.impl.compiler.expression.node.UnaryOperator; +import org.apache.sling.scripting.sightly.impl.compiler.frontend.CompilerContext; +import org.apache.sling.scripting.sightly.impl.compiler.ris.command.Conditional; +import org.apache.sling.scripting.sightly.impl.compiler.ris.command.Loop; +import org.apache.sling.scripting.sightly.impl.compiler.ris.command.VariableBinding; +import org.apache.sling.scripting.sightly.impl.compiler.util.stream.PushStream; + +@Component +@Service(Plugin.class) +@Properties({ +@Property(name = Plugin.SCR_PROP_NAME_BLOCK_NAME, value=repeat), +@Property(name = Plugin.SCR_PROP_NAME_PRIORITY, intValue = 130) +}) +public class RepeatPlugin extends PluginComponent { + +private static final String INDEX = index; +private static final String COUNT = count; +private static final String FIRST = first; +private static final String MIDDLE = middle; +private static final String LAST = last; +private static final String ODD = odd; +private static final String EVEN = even; + +@Override +public PluginInvoke invoke(final Expression expression, final PluginCallInfo callInfo, final CompilerContext compilerContext) { +return new DefaultPluginInvoke() { + +private String listVariable = compilerContext.generateVariable(collectionVar); +private String collectionSizeVar = compilerContext.generateVariable(size); + +@Override +public void beforeElement(PushStream stream, String tagName) { +stream.emit(new VariableBinding.Start(listVariable, expression.getRoot())); +stream.emit(new VariableBinding.Start(collectionSizeVar, +new UnaryOperation(UnaryOperator.LENGTH, new
svn commit: r1657851 - /sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/filter/JoinFilter.java
Author: fmeschbe Date: Fri Feb 6 15:03:11 2015 New Revision: 1657851 URL: http://svn.apache.org/r1657851 Log: SLING-4354 Update the behaviour of the 'join' option (Apply patch by Radu Cotescu, thanks a lot) Modified: sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/filter/JoinFilter.java Modified: sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/filter/JoinFilter.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/filter/JoinFilter.java?rev=1657851r1=1657850r2=1657851view=diff == --- sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/filter/JoinFilter.java (original) +++ sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/filter/JoinFilter.java Fri Feb 6 15:03:11 2015 @@ -19,6 +19,7 @@ package org.apache.sling.scripting.sightly.impl.filter; +import java.util.Arrays; import java.util.Collection; import java.util.Iterator; @@ -63,7 +64,13 @@ public class JoinFilter extends FilterCo throw new SightlyException(Join function must be called with two arguments.); } RenderContextImpl renderContextImpl = (RenderContextImpl) renderContext; -Collection? collection = renderContextImpl.toCollection(arguments[0]); +Object joinArgument = arguments[0]; +Collection? collection = renderContextImpl.toCollection(joinArgument); +if (joinArgument != null collection.isEmpty()) { +collection = Arrays.asList(new Object[] { +joinArgument +}); +} String joinString = renderContextImpl.toString(arguments[1]); return join(renderContextImpl, collection, joinString); }
svn commit: r1654811 - in /sling/trunk/contrib/scripting/sightly/engine/src: main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/ main/java/org/apache/sling/scripting/sightly/impl/e
Author: fmeschbe Date: Mon Jan 26 14:27:42 2015 New Revision: 1654811 URL: http://svn.apache.org/r1654811 Log: SLING-4349 Extend RenderContext to provide access to the ServletResolver resource resolver Applying slightly modified patch by Radu Cotescu (thanks a lot) (Change is to not wrap the ResourceResolover since this is not the task of this feature here. Rather the ScriptResolver providing the ResourceResolver in the ScriptContext should wrap it in the first place to prevent closing) Added: sling/trunk/contrib/scripting/sightly/engine/src/test/java/org/apache/sling/scripting/sightly/impl/engine/ sling/trunk/contrib/scripting/sightly/engine/src/test/java/org/apache/sling/scripting/sightly/impl/engine/runtime/ sling/trunk/contrib/scripting/sightly/engine/src/test/java/org/apache/sling/scripting/sightly/impl/engine/runtime/RenderContextImplTest.java (with props) Modified: sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/PojoUseProvider.java sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/RenderUnitProvider.java sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/ScriptUseProvider.java sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/runtime/RenderContextImpl.java sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/render/RenderContext.java Modified: sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/PojoUseProvider.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/PojoUseProvider.java?rev=1654811r1=1654810r2=1654811view=diff == --- sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/PojoUseProvider.java (original) +++ sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/PojoUseProvider.java Mon Jan 26 14:27:42 2015 @@ -33,7 +33,6 @@ import org.apache.sling.api.resource.Res import org.apache.sling.api.scripting.SlingScriptHelper; import org.apache.sling.scripting.sightly.ResourceResolution; import org.apache.sling.scripting.sightly.impl.compiler.SightlyJavaCompilerService; -import org.apache.sling.scripting.sightly.impl.engine.runtime.RenderContextImpl; import org.apache.sling.scripting.sightly.pojo.Use; import org.apache.sling.scripting.sightly.render.RenderContext; import org.apache.sling.scripting.sightly.use.ProviderOutcome; @@ -82,7 +81,7 @@ public class PojoUseProvider implements Bindings bindings = UseProviderUtils.merge(globalBindings, arguments); SlingScriptHelper sling = UseProviderUtils.getHelper(bindings); try { -ResourceResolver adminResolver = RenderContextImpl.getScriptResourceResolver(renderContext); +ResourceResolver adminResolver = renderContext.getScriptResourceResolver(); Resource resource = ResourceResolution.getResourceForRequest(adminResolver, sling.getRequest()); Object result = sightlyJavaCompilerService.getInstance(adminResolver, resource, identifier); if (result instanceof Use) { Modified: sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/RenderUnitProvider.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/RenderUnitProvider.java?rev=1654811r1=1654810r2=1654811view=diff == --- sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/RenderUnitProvider.java (original) +++ sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/RenderUnitProvider.java Mon Jan 26 14:27:42 2015 @@ -76,9 +76,8 @@ public class RenderUnitProvider implemen } private Resource locateResource(Bindings bindings, String script, RenderContext renderContext) { -ResourceResolver adminResolver = RenderContextImpl.getScriptResourceResolver(renderContext); SlingHttpServletRequest request = (SlingHttpServletRequest) bindings.get(SlingBindings.REQUEST); -Resource resource = ResourceResolution.getResourceForRequest(adminResolver, request); +Resource resource = ResourceResolution.getResourceForRequest(renderContext.getScriptResourceResolver
svn commit: r1654840 - in /sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly: impl/engine/extension/use/PojoUseProvider.java impl/engine/extension/use/UseRu
Author: fmeschbe Date: Mon Jan 26 16:25:36 2015 New Revision: 1654840 URL: http://svn.apache.org/r1654840 Log: SLING-4337 Sightly should only log errors from use providers if none of the use providers succeeded Applying patch by Justin Edelson and Radu Cotescu (Thanks a lot) One slight modification, though: I made the three fields of ProviderOutcome final and add the cause to the private constructor. Also renamed the field t to cause and the method to getCause -- along the lines of how Throwable does it Modified: sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/PojoUseProvider.java sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/UseRuntimeExtension.java sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/use/ProviderOutcome.java Modified: sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/PojoUseProvider.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/PojoUseProvider.java?rev=1654840r1=1654839r2=1654840view=diff == --- sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/PojoUseProvider.java (original) +++ sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/PojoUseProvider.java Mon Jan 26 16:25:36 2015 @@ -89,8 +89,7 @@ public class PojoUseProvider implements } return ProviderOutcome.notNullOrFailure(result); } catch (Exception e) { -LOG.error(String.format(Can't instantiate %s POJO., identifier), e); -return ProviderOutcome.failure(); +return ProviderOutcome.failure(e); } } } Modified: sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/UseRuntimeExtension.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/UseRuntimeExtension.java?rev=1654840r1=1654839r2=1654840view=diff == --- sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/UseRuntimeExtension.java (original) +++ sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/UseRuntimeExtension.java Mon Jan 26 16:25:36 2015 @@ -77,14 +77,17 @@ public class UseRuntimeExtension impleme Bindings useArguments = new SimpleBindings(Collections.unmodifiableMap(useArgumentsMap)); ArrayListUseProvider providers = new ArrayListUseProvider(providersMap.values()); ListIteratorUseProvider iterator = providers.listIterator(providers.size()); +Throwable failureCause = null; while (iterator.hasPrevious()) { UseProvider provider = iterator.previous(); ProviderOutcome outcome = provider.provide(identifier, renderContext, useArguments); if (outcome.isSuccess()) { return outcome.getResult(); +} else if (outcome.getCause() != null) { +failureCause = outcome.getCause(); } } -throw new SightlyException(No use provider could resolve identifier: + identifier); +throw new SightlyException(No use provider could resolve identifier: + identifier, failureCause); } // OSGi Modified: sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/use/ProviderOutcome.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/use/ProviderOutcome.java?rev=1654840r1=1654839r2=1654840view=diff == --- sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/use/ProviderOutcome.java (original) +++ sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/use/ProviderOutcome.java Mon Jan 26 16:25:36 2015 @@ -24,31 +24,52 @@ package org.apache.sling.scripting.sight */ public final class ProviderOutcome { -private boolean success; -private Object result; +// whether this is a success or failure +private final boolean success; -private static
svn commit: r1654212 - in /sling/trunk/contrib/scripting/sightly/engine/src: main/java/org/apache/sling/scripting/sightly/impl/compiler/ main/java/org/apache/sling/scripting/sightly/impl/engine/ main/
Author: fmeschbe Date: Fri Jan 23 13:50:56 2015 New Revision: 1654212 URL: http://svn.apache.org/r1654212 Log: SLING-4342 [Sightly] Reduce the number of repository reads * reduces the number of repository reads by optimising the SightlyJavaCompilerService and UnitLoader * enhances documentation for UnitChangeMonitor * removes useless SightlyRenderException Apply patch by Radu Cotescu (thanks a lot) Removed: sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/runtime/SightlyRenderException.java Modified: sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/SightlyJavaCompilerService.java sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/UnitChangeMonitor.java sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/UnitLoader.java sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/IncludeRuntimeExtension.java sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/PojoUseProvider.java sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/UseProviderUtils.java sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/runtime/RenderContextImpl.java sling/trunk/contrib/scripting/sightly/engine/src/test/java/org/apache/sling/scripting/sightly/impl/compiler/SightlyJavaCompilerServiceTest.java Modified: sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/SightlyJavaCompilerService.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/SightlyJavaCompilerService.java?rev=1654212r1=1654211r2=1654212view=diff == --- sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/SightlyJavaCompilerService.java (original) +++ sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/SightlyJavaCompilerService.java Fri Jan 23 13:50:56 2015 @@ -44,6 +44,7 @@ import org.apache.sling.commons.compiler import org.apache.sling.commons.compiler.Options; import org.apache.sling.jcr.compiler.JcrJavaCompiler; import org.apache.sling.scripting.sightly.ResourceResolution; +import org.apache.sling.scripting.sightly.SightlyException; import org.apache.sling.scripting.sightly.impl.engine.UnitChangeMonitor; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -80,40 +81,51 @@ public class SightlyJavaCompilerService * compilation. In case the requested class does not denote a fully qualified classname, this service will try to find the class through * Sling's servlet resolution mechanism and compile the class on-the-fly if required. * - * @param resource the lookup will be performed based on this resource - * @param className name of class to use for object instantiation + * @param resolver a {@link ResourceResolver} with read access to resources from the search path (see {@link + * ResourceResolver#getSearchPath()}) + * @param callingScript the lookup will be performed based on this resource only if the {@code className} does not identify a fully + * qualified class name; otherwise this parameter can be {@code null} + * @param className name of class to use for object instantiation * @return object instance of the requested class * @throws CompilerException in case of any runtime exception */ -public Object getInstance(Resource resource, String className) { - -LOG.debug(Attempting to obtain bean instance of resource '{}' and class '{}', resource.getPath(), className); - -// assume fully qualified class name +public Object getInstance(ResourceResolver resolver, Resource callingScript, String className) { if (className.contains(.)) { -try { -String pojoPath = getPathFromJavaName(className); -return loadPOJOFromRepo(resource.getResourceResolver(), className, pojoPath); -} catch (CompilerException e1) { -if (e1.getFailureCause() == CompilerException.CompilerExceptionCause.MISSING_REPO_POJO) { -// the POJO might have been loaded once and come from a bundle +String pojoPath = getPathFromJavaName(className); +if (unitChangeMonitor.getLastModifiedDateForJavaUseObject(pojoPath) 0) { +// it looks like the POJO comes from
svn commit: r1654141 - /sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/use/UseProvider.java
Author: fmeschbe Date: Fri Jan 23 08:42:05 2015 New Revision: 1654141 URL: http://svn.apache.org/r1654141 Log: Add JavaDoc indicating the use of service.ranking service property to order UseProvider services Modified: sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/use/UseProvider.java Modified: sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/use/UseProvider.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/use/UseProvider.java?rev=1654141r1=1654140r2=1654141view=diff == --- sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/use/UseProvider.java (original) +++ sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/use/UseProvider.java Fri Jan 23 08:42:05 2015 @@ -26,8 +26,14 @@ import org.apache.sling.scripting.sightl import aQute.bnd.annotation.ConsumerType; /** - * Provides instances for the use API. Providers are tried in the order - * of their priority until one is found which can provide a non-null instance + * Provides instances for the use API. Providers are tried in the order of their + * service ranking until one is found which can provide a non-null instance + * p + * {@code UseProvider} services are ranked according to the OSGi service + * registration propertiy {@code service.ranking} which is an integer value. + * {@code UseProvider} servies with lower ranking values are tried before + * services with higher ranking values. The default value for the ranking if the + * property is missing is zero. */ @ConsumerType public interface UseProvider {
svn commit: r1654218 - in /sling/trunk/contrib/scripting/sightly/engine/src: main/java/org/apache/sling/scripting/sightly/impl/html/dom/ test/java/org/apache/sling/scripting/sightly/impl/html/ test/ja
Author: fmeschbe Date: Fri Jan 23 14:16:00 2015 New Revision: 1654218 URL: http://svn.apache.org/r1654218 Log: SLING-4346 Sightly: HtmlParser does not parse documents correctly when comments span across internal char buffer size Apply patch by Vlad Bailescu (thanks a lot) Added: sling/trunk/contrib/scripting/sightly/engine/src/test/java/org/apache/sling/scripting/sightly/impl/html/ sling/trunk/contrib/scripting/sightly/engine/src/test/java/org/apache/sling/scripting/sightly/impl/html/dom/ sling/trunk/contrib/scripting/sightly/engine/src/test/java/org/apache/sling/scripting/sightly/impl/html/dom/HtmlParserTest.java (with props) Modified: sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/html/dom/HtmlParser.java Modified: sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/html/dom/HtmlParser.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/html/dom/HtmlParser.java?rev=1654218r1=1654217r2=1654218view=diff == --- sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/html/dom/HtmlParser.java (original) +++ sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/html/dom/HtmlParser.java Fri Jan 23 14:16:00 2015 @@ -27,6 +27,8 @@ import java.io.Reader; */ public final class HtmlParser { +private static int BUF_SIZE = 2048; + /** Internal character buffer */ private final CharArrayWriter buffer = new CharArrayWriter(256); @@ -101,7 +103,7 @@ public final class HtmlParser { throws IOException { try { this.documentHandler.onStart(); -final char[] readBuffer = new char[2048]; +final char[] readBuffer = new char[BUF_SIZE]; int readLen = 0; while ( (readLen = reader.read(readBuffer)) 0 ) { this.update(readBuffer, readLen); @@ -163,7 +165,7 @@ public final class HtmlParser { parseState = PARSE_STATE.COMMENT; parseSubState = 0; tagType = TT_NONE; -flushBuffer(); +// keep the accumulated buffer } else if (c == '' || c == '\'') { quoteChar = c; prevParseState = parseState; @@ -281,7 +283,7 @@ public final class HtmlParser { case 4: if (c == '') { parseState = PARSE_STATE.OUTSIDE; -documentHandler.onComment(new String(buf, start, curr - start + 1)); +processComment(buf, start, curr - start + 1); start = curr + 1; } else { parseSubState = 2; @@ -398,7 +400,7 @@ public final class HtmlParser { } } if (start end) { -if (tagType == TT_NONE) { +if (tagType == TT_NONE parseState != PARSE_STATE.COMMENT) { documentHandler.onCharacters(buf, start, end - start); } else { buffer.write(buf, start, end - start); @@ -439,6 +441,20 @@ public final class HtmlParser { } /** + * Process a comment from current and accumulated character data + * + * @param ch character data work buffer + * @param off start offset for current data + * @param len length of current data + * @throws IOException + */ +private void processComment(char[] ch, int off, int len) throws IOException { +buffer.write(ch, off, len); +documentHandler.onComment(buffer.toString()); +buffer.reset(); +} + +/** * Decompose a tag and feed it to the document handler. * * @param ch Added: sling/trunk/contrib/scripting/sightly/engine/src/test/java/org/apache/sling/scripting/sightly/impl/html/dom/HtmlParserTest.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/sightly/engine/src/test/java/org/apache/sling/scripting/sightly/impl/html/dom/HtmlParserTest.java?rev=1654218view=auto == --- sling/trunk/contrib/scripting/sightly/engine/src/test/java/org/apache/sling/scripting/sightly/impl/html/dom/HtmlParserTest.java (added) +++ sling/trunk/contrib/scripting/sightly/engine/src/test/java/org/apache/sling/scripting/sightly/impl/html/dom/HtmlParserTest.java Fri Jan 23 14:16:00 2015 @@ -0,0 +1,188 @@ +/*** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work
svn commit: r1652954 - /sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/runtime/RenderContextImpl.java
Author: fmeschbe Date: Mon Jan 19 10:23:37 2015 New Revision: 1652954 URL: http://svn.apache.org/r1652954 Log: SLING-4314 The implementation of RenderContext#resolveProperty can be slow for certain cases My change to the patch caused NPE. So a another refactoring is needed for the findMethod method: Only return if the matched method is accepatble. Otherwise break out of the loop and fall down to throwing the NoSuchMethodException thus never returning null from findMethod. Modified: sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/runtime/RenderContextImpl.java Modified: sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/runtime/RenderContextImpl.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/runtime/RenderContextImpl.java?rev=1652954r1=1652953r2=1652954view=diff == --- sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/runtime/RenderContextImpl.java (original) +++ sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/runtime/RenderContextImpl.java Mon Jan 19 10:23:37 2015 @@ -347,14 +347,17 @@ public class RenderContextImpl implement for (Method m : publicMethods) { if (m.getParameterTypes().length == 0) { String methodName = m.getName(); -if (baseName.equals(methodName)) { -return (isMethodAllowed(m)) ? m : null; -} -if ((get + capitalized).equals(methodName)) { -return (isMethodAllowed(m)) ? m : null; -} -if ((is + capitalized).equals(methodName)) { -return (isMethodAllowed(m)) ? m : null; +if (baseName.equals(methodName) +|| (get + capitalized).equals(methodName) +|| (is + capitalized).equals(methodName)) { + +// this method is good, check whether allowed +if (isMethodAllowed(m)) { +return m; +} + +// method would match but is not allwed, abort +break; } } }
svn commit: r1653035 - /sling/trunk/contrib/scripting/sightly/testing/pom.xml
Author: fmeschbe Date: Mon Jan 19 15:57:01 2015 New Revision: 1653035 URL: http://svn.apache.org/r1653035 Log: SLING-4333 Use Launchpad 7 bundles and Launchpad Installer 1.2.2 to run the tests Modified: sling/trunk/contrib/scripting/sightly/testing/pom.xml Modified: sling/trunk/contrib/scripting/sightly/testing/pom.xml URL: http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/sightly/testing/pom.xml?rev=1653035r1=1653034r2=1653035view=diff == --- sling/trunk/contrib/scripting/sightly/testing/pom.xml (original) +++ sling/trunk/contrib/scripting/sightly/testing/pom.xml Mon Jan 19 15:57:01 2015 @@ -173,7 +173,7 @@ controlHost${test.host}/controlHost controlPort${sling.control.port}/controlPort defaultBundleList -version8-SNAPSHOT/version +version7/version /defaultBundleList jarWebSupport bundles @@ -201,7 +201,7 @@ bundle groupIdorg.apache.sling/groupId artifactIdorg.apache.sling.launchpad.installer/artifactId -version1.2.1-SNAPSHOT/version +version1.2.2/version /bundle bundle groupIdorg.apache.sling/groupId
svn commit: r1652411 - in /sling/trunk/contrib/scripting/sightly: engine/src/main/java/org/apache/sling/scripting/sightly/ engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/ engine
Author: fmeschbe Date: Fri Jan 16 14:04:55 2015 New Revision: 1652411 URL: http://svn.apache.org/r1652411 Log: SLING-4304 Refactor the ResourceResolution class and improve its JavaDoc Apply patch by Radu Cotescu (thanks a lot) Modified: sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/ResourceResolution.java sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/SightlyJavaCompilerService.java sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/PojoUseProvider.java sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/RenderUnitProvider.java sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/UseProviderUtils.java sling/trunk/contrib/scripting/sightly/js-use-provider/src/main/java/org/apache/sling/scripting/sightly/js/impl/JsEnvironment.java Modified: sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/ResourceResolution.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/ResourceResolution.java?rev=1652411r1=1652410r2=1652411view=diff == --- sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/ResourceResolution.java (original) +++ sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/ResourceResolution.java Fri Jan 16 14:04:55 2015 @@ -38,30 +38,54 @@ public final class ResourceResolution { private static final int RECURSION_LIMIT = 100; /** - * Resolve the resource with the given path relative to the base resource, using the - * resource super type logic - * @param resourceResolver The resource resolver to be used - * @param base the base resource. It can be null if path is absolute - * @param path the path to the resource - * @return the retrieved resource or null if no resource was found + * p + * Resolves a resource from the search path relative to the {@code base} resource by traversing the {@code sling:resourceSuperType} + * chain. + * /p + * p + * Since this method will traverse the {@code sling:resourceSuperType} chain, the {@code ResourceResolver} used for resolving the + * {@code base} resource should be able to read the super type resources. + * /p + * + * @param base the base resource from which to start the lookup + * @param path the relative path to the resource; if the path is absolute the {@code Resource} identified by this path will be + * returned + * @return the resource identified by the relative {@code path} or {@code null} if no resource was found * @throws java.lang.UnsupportedOperationException if the resource is not in the resource resolver's search path - * @throws java.lang.IllegalStateException if the number of steps necessary to search for the resource on the resource - * superType chain has reached the maximum limit - * @throws java.lang.IllegalArgumentException if a null componentResource is provided but the path is not absolute + * @throws java.lang.IllegalStateException if the number of steps necessary to search for the resource on the resource + * superType chain has reached the maximum limit + * @see ResourceResolver#getSearchPath() */ -public static Resource resolveComponentRelative(ResourceResolver resourceResolver, Resource base, String path) { -Resource componentResource = null; +public static Resource getResourceFromSearchPath(Resource base, String path) { +if (path.startsWith(/)) { +Resource resource = base.getResourceResolver().getResource(path); +if (resource != null) { +return searchPathChecked(resource); +} +return null; +} +Resource internalBase = null; if (base != null) { if (nt:file.equals(base.getResourceType())) { -componentResource = retrieveParent(resourceResolver, base); +internalBase = retrieveParent(base); } else { -componentResource = base; +internalBase = base; } } -return resolveComponent(resourceResolver, componentResource, path); +return resolveComponentInternal(internalBase, path); } -public static Resource resolveComponentForRequest(ResourceResolver resolver, SlingHttpServletRequest request) { +/** + * p + * Resolves the resource accessed by a {@code request}. Since
svn commit: r1652412 - in /sling/trunk/contrib/scripting/sightly: engine/pom.xml js-use-provider/pom.xml pom.xml repl/pom.xml testing-content/pom.xml testing/pom.xml
Author: fmeschbe Date: Fri Jan 16 14:15:40 2015 New Revision: 1652412 URL: http://svn.apache.org/r1652412 Log: SLING-4323 Fix SCM locations Modified: sling/trunk/contrib/scripting/sightly/engine/pom.xml sling/trunk/contrib/scripting/sightly/js-use-provider/pom.xml sling/trunk/contrib/scripting/sightly/pom.xml sling/trunk/contrib/scripting/sightly/repl/pom.xml sling/trunk/contrib/scripting/sightly/testing-content/pom.xml sling/trunk/contrib/scripting/sightly/testing/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=1652412r1=1652411r2=1652412view=diff == --- sling/trunk/contrib/scripting/sightly/engine/pom.xml (original) +++ sling/trunk/contrib/scripting/sightly/engine/pom.xml Fri Jan 16 14:15:40 2015 @@ -45,9 +45,9 @@ /description scm - connectionscm:svn:http://svn.apache.org/repos/asf/sling/trunk/bundles/scripting/sightly/engine/connection - developerConnectionscm:svn:https://svn.apache.org/repos/asf/sling/trunk/bundles/scripting/sightly/engine/developerConnection - urlhttp://svn.apache.org/viewvc/sling/trunk/bundles/scripting/sightly/engine/url + connectionscm:svn:http://svn.apache.org/repos/asf/sling/trunk/contrib/scripting/sightly/engine/connection + developerConnectionscm:svn:https://svn.apache.org/repos/asf/sling/trunk/contrib/scripting/sightly/engine/developerConnection + urlhttp://svn.apache.org/viewvc/sling/trunk/contrib/scripting/sightly/engine/url /scm properties Modified: sling/trunk/contrib/scripting/sightly/js-use-provider/pom.xml URL: http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/sightly/js-use-provider/pom.xml?rev=1652412r1=1652411r2=1652412view=diff == --- sling/trunk/contrib/scripting/sightly/js-use-provider/pom.xml (original) +++ sling/trunk/contrib/scripting/sightly/js-use-provider/pom.xml Fri Jan 16 14:15:40 2015 @@ -44,9 +44,9 @@ /description scm - connectionscm:svn:http://svn.apache.org/repos/asf/sling/trunk/bundles/scripting/sightly/js-use-provider/connection - developerConnectionscm:svn:https://svn.apache.org/repos/asf/sling/trunk/bundles/scripting/sightly/js-use-provider/developerConnection - urlhttp://svn.apache.org/repos/asf/sling/trunk/bundles/scripting/sightly/js-use-provider/url + connectionscm:svn:http://svn.apache.org/repos/asf/sling/trunk/contrib/scripting/sightly/js-use-provider/connection + developerConnectionscm:svn:https://svn.apache.org/repos/asf/sling/trunk/contrib/scripting/sightly/js-use-provider/developerConnection + urlhttp://svn.apache.org/repos/asf/sling/trunk/contrib/scripting/sightly/js-use-provider/url /scm properties Modified: sling/trunk/contrib/scripting/sightly/pom.xml URL: http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/sightly/pom.xml?rev=1652412r1=1652411r2=1652412view=diff == --- sling/trunk/contrib/scripting/sightly/pom.xml (original) +++ sling/trunk/contrib/scripting/sightly/pom.xml Fri Jan 16 14:15:40 2015 @@ -44,9 +44,9 @@ /description scm - connectionscm:svn:http://svn.apache.org/repos/asf/sling/trunk/bundles/scripting/sightly/connection - developerConnectionscm:svn:https://svn.apache.org/repos/asf/sling/trunk/bundles/scripting/sightly/developerConnection - urlhttp://svn.apache.org/viewvc/sling/trunk/bundles/scripting/sightly/url + connectionscm:svn:http://svn.apache.org/repos/asf/sling/trunk/contrib/scripting/sightly/connection + developerConnectionscm:svn:https://svn.apache.org/repos/asf/sling/trunk/contrib/scripting/sightly/developerConnection + urlhttp://svn.apache.org/viewvc/sling/trunk/contrib/scripting/sightly/url /scm modules Modified: sling/trunk/contrib/scripting/sightly/repl/pom.xml URL: http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/sightly/repl/pom.xml?rev=1652412r1=1652411r2=1652412view=diff == --- sling/trunk/contrib/scripting/sightly/repl/pom.xml (original) +++ sling/trunk/contrib/scripting/sightly/repl/pom.xml Fri Jan 16 14:15:40 2015 @@ -36,9 +36,9 @@ descriptionREPL for Apache Sling Scripting Sightly engine/description scm - connectionscm:svn:http://svn.apache.org/repos/asf/sling/trunk/bundles/scripting/sightly/repl/connection - developerConnectionscm:svn:https://svn.apache.org/repos/asf/sling/trunk/bundles/scripting/sightly/repl/developerConnection - urlhttp://svn.apache.org/viewvc/sling/trunk/bundles/scripting/sightly/repl/url + connectionscm:svn:http://svn.apache.org/repos/asf/sling/trunk
svn propchange: r1652415 - svn:log
Author: fmeschbe Revision: 1652415 Modified property: svn:log Modified: svn:log at Fri Jan 16 14:30:42 2015 -- --- svn:log (original) +++ svn:log Fri Jan 16 14:30:42 2015 @@ -1,6 +1,6 @@ SLING-4314 The implementation of RenderContext#resolveProperty can be slow for certain cases -Applying slightly modified patch by Radu Cotescu (thanks a lot). +Applying slightly modified patch by Vlad Bailescu (thanks a lot). Modification is to actually throw NoSuchMethodException already from findMethod instead of first returning null, then checking and then throwing.
svn propchange: r1652186 - svn:log
Author: fmeschbe Revision: 1652186 Modified property: svn:log Modified: svn:log at Fri Jan 16 15:15:58 2015 -- --- svn:log (original) +++ svn:log Fri Jan 16 15:15:58 2015 @@ -1,8 +1,8 @@ -FELIX-4313 Remove ExtensionInstance interface +SLING-4313 Remove ExtensionInstance interface The ExtensionInstance is an indirection from the RuntimeExtension which turned out to not be needed since there is no instance state that has to be kept. Hence removing ExtensionInstance and adding the call method to RuntimeExtension. -Applied patch by Radu Cotescu (thanks a lot) +Applied patch by Vlad Bailescu (thanks a lot)
svn commit: r1652186 - in /sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly: extension/ impl/engine/extension/ impl/engine/extension/use/ impl/engine/runti
Author: fmeschbe Date: Thu Jan 15 17:35:58 2015 New Revision: 1652186 URL: http://svn.apache.org/r1652186 Log: FELIX-4313 Remove ExtensionInstance interface The ExtensionInstance is an indirection from the RuntimeExtension which turned out to not be needed since there is no instance state that has to be kept. Hence removing ExtensionInstance and adding the call method to RuntimeExtension. Applied patch by Radu Cotescu (thanks a lot) Removed: sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/extension/ExtensionInstance.java Modified: sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/extension/RuntimeExtension.java sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/I18nRuntimeExtension.java sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/IncludeRuntimeExtension.java sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/ResourceRuntimeExtension.java sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/XSSRuntimeExtension.java sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/UseRuntimeExtension.java sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/runtime/RenderContextImpl.java sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/filter/FormatFilter.java sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/filter/JoinFilter.java sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/render/RenderContext.java Modified: sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/extension/RuntimeExtension.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/extension/RuntimeExtension.java?rev=1652186r1=1652185r2=1652186view=diff == --- sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/extension/RuntimeExtension.java (original) +++ sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/extension/RuntimeExtension.java Thu Jan 15 17:35:58 2015 @@ -37,9 +37,10 @@ public interface RuntimeExtension { String NAME = org.apache.sling.scripting.sightly.extension.name; /** - * Provide an instance of this extension + * Call the {@code RuntimeExtension} * @param renderContext - the runtime context + * @param arguments - the call arguments * @return an extension instance */ -ExtensionInstance provide(RenderContext renderContext); +Object call(RenderContext renderContext, Object... arguments); } Modified: sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/I18nRuntimeExtension.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/I18nRuntimeExtension.java?rev=1652186r1=1652185r2=1652186view=diff == --- sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/I18nRuntimeExtension.java (original) +++ sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/I18nRuntimeExtension.java Thu Jan 15 17:35:58 2015 @@ -33,7 +33,6 @@ import org.apache.sling.api.SlingHttpSer import org.apache.sling.api.scripting.SlingBindings; import org.apache.sling.api.scripting.SlingScriptHelper; import org.apache.sling.i18n.ResourceBundleProvider; -import org.apache.sling.scripting.sightly.extension.ExtensionInstance; import org.apache.sling.scripting.sightly.extension.RuntimeExtension; import org.apache.sling.scripting.sightly.impl.filter.I18nFilter; import org.apache.sling.scripting.sightly.render.RenderContext; @@ -50,50 +49,44 @@ public class I18nRuntimeExtension implem private static final Logger LOG = LoggerFactory.getLogger(I18nRuntimeExtension.class); @Override -public ExtensionInstance provide(final RenderContext renderContext) { +public Object call(final RenderContext renderContext, Object... arguments) { +ExtensionUtils.checkArgumentCount(I18nFilter.FUNCTION, arguments, 3); +String text = renderContext.toString(arguments[0]); +String locale
svn commit: r1652117 - in /sling/trunk/contrib/scripting/sightly: engine/src/main/java/org/apache/sling/scripting/sightly/extension/ engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine
Author: fmeschbe Date: Thu Jan 15 14:50:02 2015 New Revision: 1652117 URL: http://svn.apache.org/r1652117 Log: SLING-4309 Remove redundant RuntimeExtensionException and SightlyUseException from Sightly's API Applying patch by Radu Cotescu (thank you very much) Removed: sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/extension/RuntimeExtensionException.java sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/use/SightlyUseException.java Modified: sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/ExtensionUtils.java sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/XSSRuntimeExtension.java sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/UseProviderUtils.java sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/UseRuntimeExtension.java sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/filter/FormatFilter.java sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/filter/JoinFilter.java sling/trunk/contrib/scripting/sightly/js-use-provider/src/main/java/org/apache/sling/scripting/sightly/js/impl/JsEnvironment.java sling/trunk/contrib/scripting/sightly/js-use-provider/src/main/java/org/apache/sling/scripting/sightly/js/impl/async/AsyncExtractor.java sling/trunk/contrib/scripting/sightly/js-use-provider/src/main/java/org/apache/sling/scripting/sightly/js/impl/loop/EventLoop.java sling/trunk/contrib/scripting/sightly/js-use-provider/src/main/java/org/apache/sling/scripting/sightly/js/impl/use/DependencyResolver.java Modified: sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/ExtensionUtils.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/ExtensionUtils.java?rev=1652117r1=1652116r2=1652117view=diff == --- sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/ExtensionUtils.java (original) +++ sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/ExtensionUtils.java Thu Jan 15 14:50:02 2015 @@ -18,8 +18,8 @@ **/ package org.apache.sling.scripting.sightly.impl.engine.extension; +import org.apache.sling.scripting.sightly.SightlyException; import org.apache.sling.scripting.sightly.extension.RuntimeExtension; -import org.apache.sling.scripting.sightly.extension.RuntimeExtensionException; /** * Helper class for {@link RuntimeExtension} implementations. @@ -32,11 +32,11 @@ public class ExtensionUtils { * @param extensionName the name of the extension * @param arguments the arguments array * @param count the expected number or arguments - * @throws RuntimeExtensionException if the number of supplied arguments differs from what's expected + * @throws SightlyException if the number of supplied arguments differs from what's expected */ public static void checkArgumentCount(String extensionName, Object[] arguments, int count) { if (arguments.length != count) { -throw new RuntimeExtensionException(String.format(Extension %s requires %d arguments, extensionName, count)); +throw new SightlyException(String.format(Extension %s requires %d arguments, extensionName, count)); } } Modified: sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/XSSRuntimeExtension.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/XSSRuntimeExtension.java?rev=1652117r1=1652116r2=1652117view=diff == --- sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/XSSRuntimeExtension.java (original) +++ sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/XSSRuntimeExtension.java Thu Jan 15 14:50:02 2015 @@ -30,9 +30,9 @@ import org.apache.felix.scr.annotations. import org.apache.felix.scr.annotations.Property; import org.apache.felix.scr.annotations.Service; import org.apache.sling.api.SlingHttpServletRequest; +import
svn commit: r1650895 - in /sling/trunk/contrib/scripting/sightly/engine: ./ src/main/java/org/apache/sling/scripting/sightly/impl/compiler/ src/test/ src/test/java/ src/test/java/org/ src/test/java/or
Author: fmeschbe Date: Sun Jan 11 12:11:41 2015 New Revision: 1650895 URL: http://svn.apache.org/r1650895 Log: SLING-4282 [Sightly] Fully qualified Use POJOs are not correctly identified in the repository Apply patch by Radu Cotescu (thanks alot) Added: sling/trunk/contrib/scripting/sightly/engine/src/test/ sling/trunk/contrib/scripting/sightly/engine/src/test/java/ sling/trunk/contrib/scripting/sightly/engine/src/test/java/org/ sling/trunk/contrib/scripting/sightly/engine/src/test/java/org/apache/ sling/trunk/contrib/scripting/sightly/engine/src/test/java/org/apache/sling/ sling/trunk/contrib/scripting/sightly/engine/src/test/java/org/apache/sling/scripting/ sling/trunk/contrib/scripting/sightly/engine/src/test/java/org/apache/sling/scripting/sightly/ sling/trunk/contrib/scripting/sightly/engine/src/test/java/org/apache/sling/scripting/sightly/impl/ sling/trunk/contrib/scripting/sightly/engine/src/test/java/org/apache/sling/scripting/sightly/impl/compiler/ sling/trunk/contrib/scripting/sightly/engine/src/test/java/org/apache/sling/scripting/sightly/impl/compiler/MockPojo.java (with props) sling/trunk/contrib/scripting/sightly/engine/src/test/java/org/apache/sling/scripting/sightly/impl/compiler/SightlyJavaCompilerServiceTest.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/impl/compiler/SightlyJavaCompilerService.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=1650895r1=1650894r2=1650895view=diff == --- sling/trunk/contrib/scripting/sightly/engine/pom.xml (original) +++ sling/trunk/contrib/scripting/sightly/engine/pom.xml Sun Jan 11 12:11:41 2015 @@ -253,6 +253,32 @@ version1.4/version scopeprovided/scope /dependency + +!-- testing -- +dependency +groupIdjunit/groupId +artifactIdjunit/artifactId +version4.11/version +scopetest/scope +/dependency +dependency +groupIdorg.mockito/groupId +artifactIdmockito-core/artifactId +version1.9.5/version +scopetest/scope +/dependency +dependency +groupIdorg.powermock/groupId +artifactIdpowermock-api-mockito/artifactId +version1.5.5/version +scopetest/scope +/dependency +dependency +groupIdorg.slf4j/groupId +artifactIdslf4j-simple/artifactId +version1.5.2/version +scopetest/scope +/dependency /dependencies /project Modified: sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/SightlyJavaCompilerService.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/SightlyJavaCompilerService.java?rev=1650895r1=1650894r2=1650895view=diff == --- sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/SightlyJavaCompilerService.java (original) +++ sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/SightlyJavaCompilerService.java Sun Jan 11 12:11:41 2015 @@ -22,7 +22,12 @@ import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.Reader; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.LinkedHashSet; import java.util.List; +import java.util.Map; +import java.util.Set; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantReadWriteLock; @@ -142,19 +147,90 @@ public class SightlyJavaCompilerService } } else { try { -// the POJO was compiled but not cached by the unitChangeMonitor +// the POJO might have been compiled before from the repo but not cached by the unitChangeMonitor return loadObject(className); } catch (CompilerException e) { // the POJO was never compiled, nor cached by unitChangeMonitor -Resource pojoResource = resolver.getResource(pojoPath); -if (pojoResource != null) { -return compileSource(pojoResource, className); +SetString possiblePaths = getPossiblePojoPaths(pojoPath); +Resource pojoResource; +for (String possiblePath : possiblePaths) { +pojoResource = resolver.getResource(possiblePath
svn commit: r1645651 - in /sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl: compiler/ compiler/optimization/reduce/ engine/ engine/extension/use/ eng
Author: fmeschbe Date: Mon Dec 15 13:27:00 2014 New Revision: 1645651 URL: http://svn.apache.org/r1645651 Log: SLING-4240 SlightlyScriptEngine improvements * Share ResourceResolver for locating script resources with the script execution environment instead of recreating each time * Improve compiler error reporting * Improvide discovery of script changes to limit recompilation and leverage caching of loaded classes in the DynamicClassloader (applied slightly modified patch by Radu Cotescu; thanks a lot) Added: sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/UnitChangeMonitor.java (with props) Modified: sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/CompilerException.java sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/SightlyJavaCompilerService.java sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/optimization/reduce/EvalResult.java sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/SightlyScriptEngine.java sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/UnitLoader.java sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/PojoUseProvider.java sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/RenderUnitProvider.java sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/ScriptUseProvider.java sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/runtime/RenderContextImpl.java Modified: sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/CompilerException.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/CompilerException.java?rev=1645651r1=1645650r2=1645651view=diff == --- sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/CompilerException.java (original) +++ sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/CompilerException.java Mon Dec 15 13:27:00 2014 @@ -20,19 +20,32 @@ package org.apache.sling.scripting.sight public class CompilerException extends RuntimeException { -public CompilerException() { -super(); -} +private CompilerExceptionCause cause; public CompilerException(String message) { super(message); } -public CompilerException(String message, Throwable throwable) { -super(message, throwable); +public CompilerException(CompilerExceptionCause cause) { +super(); +this.cause = cause; +} + +public CompilerException(CompilerExceptionCause cause, String message) { +super(message); } -public CompilerException(Throwable throwable) { +public CompilerException(CompilerExceptionCause cause, Throwable throwable) { super(throwable); +this.cause = cause; +} + +public CompilerExceptionCause getFailureCause() { +return cause; +} + +public enum CompilerExceptionCause { +MISSING_REPO_POJO, +COMPILER_ERRORS } } Modified: sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/SightlyJavaCompilerService.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/SightlyJavaCompilerService.java?rev=1645651r1=1645650r2=1645651view=diff == --- sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/SightlyJavaCompilerService.java (original) +++ sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/SightlyJavaCompilerService.java Mon Dec 15 13:27:00 2014 @@ -30,10 +30,8 @@ import org.apache.felix.scr.annotations. import org.apache.felix.scr.annotations.Component; import org.apache.felix.scr.annotations.Reference; import org.apache.felix.scr.annotations.Service; -import org.apache.sling.api.resource.LoginException; import org.apache.sling.api.resource.Resource; import org.apache.sling.api.resource.ResourceResolver; -import org.apache.sling.api.resource.ResourceResolverFactory; import
svn commit: r1644580 - in /sling/trunk/contrib/extensions/xss: ./ src/main/java/org/apache/sling/xss/ src/main/java/org/apache/sling/xss/impl/ src/test/java/org/apache/sling/xss/impl/
Author: fmeschbe Date: Thu Dec 11 09:15:04 2014 New Revision: 1644580 URL: http://svn.apache.org/r1644580 Log: SLING-4236 Clarify XSSAPI with respect to null and empty input strings * Include patch by Radu Cotescu (thanks a lot) * Extend patch to getValid* and filterHtml methods * Leverage TestCase.assertEquals for result validation * Add more tests for empty and null input * Add LongValidationRule Added: sling/trunk/contrib/extensions/xss/src/main/java/org/apache/sling/xss/impl/LongValidationRule.java (with props) Modified: sling/trunk/contrib/extensions/xss/pom.xml 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/impl/XSSAPIImpl.java sling/trunk/contrib/extensions/xss/src/test/java/org/apache/sling/xss/impl/XSSAPIImplTest.java Modified: sling/trunk/contrib/extensions/xss/pom.xml URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/xss/pom.xml?rev=1644580r1=1644579r2=1644580view=diff == --- sling/trunk/contrib/extensions/xss/pom.xml (original) +++ sling/trunk/contrib/extensions/xss/pom.xml Thu Dec 11 09:15:04 2014 @@ -265,6 +265,12 @@ scopeprovided/scope /dependency dependency +groupIdcom.google.code.findbugs/groupId +artifactIdjsr305/artifactId +version2.0.0/version +scopeprovided/scope +/dependency +dependency groupIdjunit/groupId artifactIdjunit/artifactId scopetest/scope 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=1644580r1=1644579r2=1644580view=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 Thu Dec 11 09:15:04 2014 @@ -17,6 +17,9 @@ package org.apache.sling.xss; +import javax.annotation.Nonnull; +import javax.annotation.Nullable; + import org.apache.sling.api.SlingHttpServletRequest; import org.apache.sling.api.resource.ResourceResolver; @@ -42,33 +45,36 @@ public interface XSSAPI { /** * Validate a string which should contain an integer, returning a default value if the source is - * empty, can't be parsed, or contains XSS risks. + * {@code null}, empty, can't be parsed, or contains XSS risks. * * @param integer the source integer - * @param defaultValue a default value if the source can't be used + * @param defaultValue a default value if the source can't be used, is {@code null} or an empty string * @return a sanitized integer */ -public Integer getValidInteger(String integer, int defaultValue); +@Nullable +public Integer getValidInteger(@Nullable String integer, @Nullable int defaultValue); /** * Validate a string which should contain a long, returning a default value if the source is - * empty, can't be parsed, or contains XSS risks. + * {@code null}, empty, can't be parsed, or contains XSS risks. * * @param source the source long - * @param defaultValue a default value if the source can't be used + * @param defaultValue a default value if the source can't be used, is {@code null} or an empty string * @return a sanitized integer */ -public Long getValidLong(String source, long defaultValue); +@Nullable +public Long getValidLong(@Nullable String source, @Nullable long defaultValue); /** * Validate a string which should contain a dimension, returning a default value if the source is * empty, can't be parsed, or contains XSS risks. Allows integer dimensions and the keyword auto. * * @param dimensionthe source dimension - * @param defaultValue a default value if the source can't be used + * @param defaultValue a default value if the source can't be used, is {@code null} or an empty string * @return a sanitized dimension */ -public String getValidDimension(String dimension, String defaultValue); +@Nullable +public String getValidDimension(@Nullable String dimension, @Nullable String defaultValue); /** * Sanitizes a URL for writing as an HTML href or src attribute value. @@ -76,27 +82,30 @@ public interface XSSAPI { * @param url the source URL * @return a sanitized URL (possibly empty) */ -public String getValidHref(String url); +@Nonnull +public String getValidHref(@Nullable String url); /** * Validate a Javascript token. The value must be either a single identifier, a literal
svn commit: r1644369 - /sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/PojoUseProvider.java
Author: fmeschbe Date: Wed Dec 10 10:41:53 2014 New Revision: 1644369 URL: http://svn.apache.org/r1644369 Log: SLING-4232 Don't try to access a name which obviously cannot be a Java Class name. (Applying patch by Radu Cotescu; Thanks a lot) Modified: sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/PojoUseProvider.java Modified: sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/PojoUseProvider.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/PojoUseProvider.java?rev=1644369r1=1644368r2=1644369view=diff == --- sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/PojoUseProvider.java (original) +++ sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/PojoUseProvider.java Wed Dec 10 10:41:53 2014 @@ -19,6 +19,8 @@ package org.apache.sling.scripting.sightly.impl.engine.extension.use; +import java.util.regex.Pattern; + import javax.script.Bindings; import org.apache.felix.scr.annotations.Component; @@ -64,11 +66,18 @@ public class PojoUseProvider implements private final Logger LOG = LoggerFactory.getLogger(PojoUseProvider.class); +private static final Pattern javaPattern = Pattern.compile(([[\\p{L}[^\\p{Lu}]]_$][\\p{L}\\p{N}_$]*\\.)*[\\p{Lu}_$][\\p{L}\\p{N}_$]*); + @Reference private SightlyJavaCompilerService sightlyJavaCompilerService = null; @Override public ProviderOutcome provide(String identifier, RenderContext renderContext, Bindings arguments) { +if (!javaPattern.matcher(identifier).matches()) { +LOG.debug(Identifier {} does not match a Java class name pattern., identifier); +return ProviderOutcome.failure(); +} + Bindings globalBindings = renderContext.getBindings(); Bindings bindings = UseProviderUtils.merge(globalBindings, arguments); SlingScriptHelper sling = UseProviderUtils.getHelper(bindings);
svn commit: r1643823 - in /sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly: extension/ impl/engine/ impl/engine/extension/ impl/engine/extension/use/ impl
Author: fmeschbe Date: Mon Dec 8 14:12:45 2014 New Revision: 1643823 URL: http://svn.apache.org/r1643823 Log: SLING-4227 Rename RuntimeExtension.SCR_PROP_NAME to NAME Modified: sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/extension/RuntimeExtension.java sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/ExtensionRegistryService.java sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/I18nRuntimeExtension.java sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/IncludeRuntimeExtension.java sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/ResourceRuntimeExtension.java sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/XSSRuntimeExtension.java sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/UseRuntimeExtension.java sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/filter/FormatFilter.java sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/filter/JoinFilter.java Modified: sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/extension/RuntimeExtension.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/extension/RuntimeExtension.java?rev=1643823r1=1643822r2=1643823view=diff == --- sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/extension/RuntimeExtension.java (original) +++ sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/extension/RuntimeExtension.java Mon Dec 8 14:12:45 2014 @@ -28,7 +28,13 @@ import aQute.bnd.annotation.ConsumerType @ConsumerType public interface RuntimeExtension { -String SCR_PROP_NAME = org.apache.sling.scripting.sightly.extension.name; +/** + * The name of the service registration property indicating the + * {@code RuntimeExtension} name. This service registration property is + * mandatory to register runtime extensions to the Sightly Engine and is of + * type String. + */ +String NAME = org.apache.sling.scripting.sightly.extension.name; /** * Provide an instance of this extension Modified: sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/ExtensionRegistryService.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/ExtensionRegistryService.java?rev=1643823r1=1643822r2=1643823view=diff == --- sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/ExtensionRegistryService.java (original) +++ sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/ExtensionRegistryService.java Mon Dec 8 14:12:45 2014 @@ -54,7 +54,7 @@ public class ExtensionRegistryService { @SuppressWarnings(UnusedDeclaration) protected synchronized void bindExtensionService(RuntimeExtension extension, MapString, Object properties) { Integer newPriority = PropertiesUtil.toInteger(properties.get(Constants.SERVICE_RANKING), 0); -String extensionName = PropertiesUtil.toString(properties.get(RuntimeExtension.SCR_PROP_NAME), ); +String extensionName = PropertiesUtil.toString(properties.get(RuntimeExtension.NAME), ); Integer priority = PropertiesUtil.toInteger(mappingPriorities.get(extensionName), 0); if (newPriority priority) { mapping = Collections.unmodifiableMap(add(mapping, extension, extensionName)); @@ -70,7 +70,7 @@ public class ExtensionRegistryService { @SuppressWarnings(UnusedDeclaration) protected synchronized void unbindExtensionService(RuntimeExtension extension, MapString, Object properties) { -String extensionName = PropertiesUtil.toString(properties.get(RuntimeExtension.SCR_PROP_NAME), ); +String extensionName = PropertiesUtil.toString(properties.get(RuntimeExtension.NAME), ); mappingPriorities.remove(extensionName); mapping = Collections.unmodifiableMap(remove(mapping, extensionName)); } Modified: sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/I18nRuntimeExtension.java URL
svn commit: r1643241 - in /sling/trunk/contrib: extensions/xss/src/main/java/org/apache/sling/xss/ extensions/xss/src/main/java/org/apache/sling/xss/impl/ extensions/xss/src/test/java/org/apache/sling
Author: fmeschbe Date: Fri Dec 5 11:33:07 2014 New Revision: 1643241 URL: http://svn.apache.org/viewvc?rev=1643241view=rev Log: SLING-4177 Properly XSS escape CSS style string (applying patch by Vlad Bailescu, thanks alot) Modified: 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/impl/XSSAPIImpl.java sling/trunk/contrib/extensions/xss/src/test/java/org/apache/sling/xss/impl/XSSAPIImplTest.java sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/XSSRuntimeExtension.java 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=1643241r1=1643240r2=1643241view=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 Fri Dec 5 11:33:07 2014 @@ -158,6 +158,16 @@ public interface XSSAPI { */ public String encodeForJSString(String source); +/** + * Encodes a souce string for writing to CSS string content. + * DO NOT USE FOR WRITING OUT ARBITRARY CSS TOKENS; YOU MUST USE A VALIDATOR FOR THAT! + * (Encoding only ensures the source string cannot break out of its context.) + * + * @param source the input to encode + * @return an encoded version of the source + */ +public String encodeForCSSString(String source); + // = // FILTERS Modified: sling/trunk/contrib/extensions/xss/src/main/java/org/apache/sling/xss/impl/XSSAPIImpl.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/xss/src/main/java/org/apache/sling/xss/impl/XSSAPIImpl.java?rev=1643241r1=1643240r2=1643241view=diff == --- sling/trunk/contrib/extensions/xss/src/main/java/org/apache/sling/xss/impl/XSSAPIImpl.java (original) +++ sling/trunk/contrib/extensions/xss/src/main/java/org/apache/sling/xss/impl/XSSAPIImpl.java Fri Dec 5 11:33:07 2014 @@ -289,6 +289,13 @@ public class XSSAPIImpl implements XSSAP return Encode.forJavaScript(source); } +/** + * @see org.apache.sling.xss.XSSAPI#encodeForCSSString(String) + */ +public String encodeForCSSString(String source) { +return Encode.forCssString(source); +} + // = // FILTERS // Modified: sling/trunk/contrib/extensions/xss/src/test/java/org/apache/sling/xss/impl/XSSAPIImplTest.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/xss/src/test/java/org/apache/sling/xss/impl/XSSAPIImplTest.java?rev=1643241r1=1643240r2=1643241view=diff == --- sling/trunk/contrib/extensions/xss/src/test/java/org/apache/sling/xss/impl/XSSAPIImplTest.java (original) +++ sling/trunk/contrib/extensions/xss/src/test/java/org/apache/sling/xss/impl/XSSAPIImplTest.java Fri Dec 5 11:33:07 2014 @@ -338,6 +338,27 @@ public class XSSAPIImplTest { } @Test +public void TestEncodeForCSSString() { +String[][] testData = { +// Source Expected result +{test , test}, +{\\ , \\5c}, +{' , \\27}, +{\ , \\22} +}; + +for (String[] aTestData : testData) { +String source = aTestData[0]; +String expected = aTestData[1]; + +String result = xssAPI.encodeForCSSString(source); +if (!result.equals(expected)) { +fail(Encoding ' + source + ', expecting ' + expected + ', but got ' + result + '); +} +} +} + +@Test public void TestGetValidStyleToken() { String[][] testData = { // Source Expected result Modified: sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/XSSRuntimeExtension.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/XSSRuntimeExtension.java?rev=1643241r1=1643240r2=1643241view=diff == --- sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/XSSRuntimeExtension.java (original) +++ sling/trunk/contrib/scripting
svn commit: r1643248 - in /sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl: compiler/frontend/SightlyParserErrorListener.java engine/UnitLoader.java
Author: fmeschbe Date: Fri Dec 5 12:00:18 2014 New Revision: 1643248 URL: http://svn.apache.org/viewvc?rev=1643248view=rev Log: SLING-4219 Prevent IllegalStateException if SlightlyParserErrorListener is called with null RecognitionException Note: The actual problem is the SlingException(String, Throwable) constructor which calls initCause if the Throwable is null. This should be fixed as well. (Applying patch by Radu Cotescu, thanks for providing the patch!) Modified: sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/frontend/SightlyParserErrorListener.java sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/UnitLoader.java Modified: sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/frontend/SightlyParserErrorListener.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/frontend/SightlyParserErrorListener.java?rev=1643248r1=1643247r2=1643248view=diff == --- sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/frontend/SightlyParserErrorListener.java (original) +++ sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/frontend/SightlyParserErrorListener.java Fri Dec 5 12:00:18 2014 @@ -28,25 +28,22 @@ import org.antlr.v4.runtime.Parser; import org.antlr.v4.runtime.RecognitionException; import org.antlr.v4.runtime.Recognizer; import org.apache.sling.scripting.sightly.impl.compiler.SightlyParsingException; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; /** * The {@code SightlyParserErrorListener} handles parsing error reporting by sending offending input to a logger. */ public class SightlyParserErrorListener extends BaseErrorListener { -private static final Logger LOG = LoggerFactory.getLogger(SightlyParserErrorListener.class); - @Override -public void syntaxError(Recognizer?, ? recognizer, Object offendingSymbol, int line, int charPositionInLine, String msg, RecognitionException e) { +public void syntaxError(Recognizer?, ? recognizer, Object offendingSymbol, int line, int charPositionInLine, String msg, +RecognitionException e) { ListString stack = ((Parser) recognizer).getRuleInvocationStack(); Collections.reverse(stack); -StringBuilder errorMessage = new StringBuilder(); -errorMessage.append(Sightly syntax error detected.\n); -errorMessage.append(rule stack: ).append(stack).append(\n); -errorMessage.append(error starts at column: ).append(charPositionInLine).append(\n); -errorMessage.append(msg); -throw new SightlyParsingException(Sightly syntax error detected, ((CommonTokenStream) recognizer.getInputStream()).getTokenSource().getInputStream().toString(), e); +if (e != null) { +throw new SightlyParsingException(msg, +((CommonTokenStream) recognizer.getInputStream()).getTokenSource().getInputStream().toString(), e); +} +throw new SightlyParsingException(msg, +((CommonTokenStream) recognizer.getInputStream()).getTokenSource().getInputStream().toString()); } } Modified: sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/UnitLoader.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/UnitLoader.java?rev=1643248r1=1643247r2=1643248view=diff == --- sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/UnitLoader.java (original) +++ sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/UnitLoader.java Fri Dec 5 12:00:18 2014 @@ -292,7 +292,7 @@ public class UnitLoader implements Event if (StringUtils.isNotEmpty(offendingInput)) { offendingInput = StringEscapeUtils.unescapeHtml(offendingInput.trim()); int errorLine = getLineWhereErrorOccurred(scriptSource, offendingInput); -throw new SightlyParsingException(Parsing error in template + identifier.getResource().getPath() + at line + +throw new SightlyException(Parsing error in template + identifier.getResource().getPath() + at line + errorLine + :\n + offendingInput + \n); } else { throw e;
svn commit: r1643255 - in /sling/trunk/bundles/api/src: main/java/org/apache/sling/api/SlingException.java test/java/org/apache/sling/api/SlingExceptionTest.java
Author: fmeschbe Date: Fri Dec 5 12:23:38 2014 New Revision: 1643255 URL: http://svn.apache.org/viewvc?rev=1643255view=rev Log: SLING-4220 Don't call initCause Calling initCause is not needed since SlingException does not extend from ServletException any more and exception chaining properly works. Added: sling/trunk/bundles/api/src/test/java/org/apache/sling/api/SlingExceptionTest.java (with props) Modified: sling/trunk/bundles/api/src/main/java/org/apache/sling/api/SlingException.java Modified: sling/trunk/bundles/api/src/main/java/org/apache/sling/api/SlingException.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/api/src/main/java/org/apache/sling/api/SlingException.java?rev=1643255r1=1643254r2=1643255view=diff == --- sling/trunk/bundles/api/src/main/java/org/apache/sling/api/SlingException.java (original) +++ sling/trunk/bundles/api/src/main/java/org/apache/sling/api/SlingException.java Fri Dec 5 12:23:38 2014 @@ -67,11 +67,6 @@ public class SlingException extends Runt */ public SlingException(String text, Throwable cause) { super(text, cause); - -// ensure proper JDK 1.4 exception chaining -if (getCause() == null) { -initCause(cause); -} } /** @@ -83,10 +78,5 @@ public class SlingException extends Runt */ protected SlingException(Throwable cause) { super(cause); - -// ensure proper JDK 1.4 exception chaining -if (getCause() == null) { -initCause(cause); -} } } \ No newline at end of file Added: sling/trunk/bundles/api/src/test/java/org/apache/sling/api/SlingExceptionTest.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/api/src/test/java/org/apache/sling/api/SlingExceptionTest.java?rev=1643255view=auto == --- sling/trunk/bundles/api/src/test/java/org/apache/sling/api/SlingExceptionTest.java (added) +++ sling/trunk/bundles/api/src/test/java/org/apache/sling/api/SlingExceptionTest.java Fri Dec 5 12:23:38 2014 @@ -0,0 +1,62 @@ +/* + * 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.api; + +import junit.framework.TestCase; + +import org.junit.Test; + +public class SlingExceptionTest { + +private static final String MESSAGE = message; + +private static final Throwable CAUSE = new Exception(cause); + +@Test +public void test_SlingException_msg_ex() { +validate(new SlingException(null, null), null, null); +validate(new SlingException(MESSAGE, null), MESSAGE, null); +validate(new SlingException(null, CAUSE), null, CAUSE); +validate(new SlingException(MESSAGE, CAUSE), MESSAGE, CAUSE); +} + +@Test +public void test_SlingException_ex() { +validate(new SlingException((Throwable) null), null, null); +validate(new SlingException(CAUSE), CAUSE.toString(), CAUSE); +} + +@Test +public void test_SlingException_msg() { +validate(new SlingException((String) null), null, null); +validate(new SlingException(MESSAGE), MESSAGE, null); +} + +@Test +public void test_SlingException() { +validate(new SlingException(), null, null); +} + +private void validate(final SlingException e, final String message, final Throwable cause) { +TestCase.assertNotNull(e); +TestCase.assertEquals(message, e.getMessage()); +TestCase.assertEquals(cause, e.getCause()); +} + +} Propchange: sling/trunk/bundles/api/src/test/java/org/apache/sling/api/SlingExceptionTest.java -- svn:mime-type = text/plain
svn commit: r1642281 [5/14] - in /sling/trunk/contrib/scripting/sightly: ./ engine/ engine/src/main/antlr4/org/apache/sling/parser/expr/generated/ engine/src/main/antlr4/org/apache/sling/scripting/ en
Added: sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/SightlyJavaCompilerService.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/SightlyJavaCompilerService.java?rev=1642281view=auto == --- sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/SightlyJavaCompilerService.java (added) +++ sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/SightlyJavaCompilerService.java Fri Nov 28 10:18:01 2014 @@ -0,0 +1,322 @@ +/*** + * 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.scripting.sightly.impl.compiler; + +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.Reader; +import java.util.List; +import java.util.concurrent.locks.Lock; +import java.util.concurrent.locks.ReentrantReadWriteLock; + +import org.apache.felix.scr.annotations.Activate; +import org.apache.felix.scr.annotations.Component; +import org.apache.felix.scr.annotations.Reference; +import org.apache.felix.scr.annotations.Service; +import org.apache.sling.api.resource.LoginException; +import org.apache.sling.api.resource.Resource; +import org.apache.sling.api.resource.ResourceResolver; +import org.apache.sling.api.resource.ResourceResolverFactory; +import org.apache.sling.commons.classloader.ClassLoaderWriter; +import org.apache.sling.commons.compiler.CompilationResult; +import org.apache.sling.commons.compiler.CompilationUnit; +import org.apache.sling.commons.compiler.CompilerMessage; +import org.apache.sling.commons.compiler.Options; +import org.apache.sling.jcr.compiler.JcrJavaCompiler; +import org.apache.sling.scripting.sightly.ResourceResolution; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + + +/** + * The {@code SightlyJavaCompiler} allows for simple instantiation of arbitrary classes that are either stored in the repository + * or in regular OSGi bundles. It also compiles Java sources on-the-fly and can discover class' source files based on + * {@link Resource}s (typically Sling components). It supports Sling Resource type inheritance. + */ +@Component +@Service(SightlyJavaCompilerService.class) +public class SightlyJavaCompilerService { + +private static final Logger LOG = LoggerFactory.getLogger(SightlyJavaCompilerService.class); + +@Reference +private ClassLoaderWriter classLoaderWriter = null; + +@Reference +private JcrJavaCompiler jcrJavaCompiler = null; + +@Reference +private ResourceResolverFactory rrf = null; + +private Options options; + +private ReentrantReadWriteLock lock = new ReentrantReadWriteLock(); +private Lock readLock = lock.readLock(); +private Lock writeLock = lock.writeLock(); + +/** + * This method returns an Object instance based on a class that is either found through regular classloading mechanisms or on-the-fly + * compilation. In case the requested class does not denote a fully qualified classname, this service will try to find the class through + * Sling's servlet resolution mechanism and compile the class on-the-fly if required. + * + * @param resource the lookup will be performed based on this resource + * @param className name of class to use for object instantiation + * @return object instance of the requested class + * @throws CompilerException in case of any runtime exception + */ +public Object getInstance(Resource resource, String className) { + +LOG.debug(Attempting to obtain bean instance of resource '{}' and class '{}', resource.getPath(), className); + +// assume fully qualified class name +if (className.contains(.)) { +Resource pojoResource = checkIfPojoIsInRepo(className); +if (pojoResource != null) { +
svn commit: r1642281 [1/14] - in /sling/trunk/contrib/scripting/sightly: ./ engine/ engine/src/main/antlr4/org/apache/sling/parser/expr/generated/ engine/src/main/antlr4/org/apache/sling/scripting/ en
Author: fmeschbe Date: Fri Nov 28 10:18:01 2014 New Revision: 1642281 URL: http://svn.apache.org/r1642281 Log: SLING-4206 Refactor Sightly and Sightly JS - Cleanup API - Structure API - Move implementations into impl folders Applying patch by Radu Cotescu (thank you very much) Added: sling/trunk/contrib/scripting/sightly/SLING-4206.patch sling/trunk/contrib/scripting/sightly/engine/src/main/antlr4/org/apache/sling/scripting/ sling/trunk/contrib/scripting/sightly/engine/src/main/antlr4/org/apache/sling/scripting/sightly/ sling/trunk/contrib/scripting/sightly/engine/src/main/antlr4/org/apache/sling/scripting/sightly/impl/ sling/trunk/contrib/scripting/sightly/engine/src/main/antlr4/org/apache/sling/scripting/sightly/impl/parser/ sling/trunk/contrib/scripting/sightly/engine/src/main/antlr4/org/apache/sling/scripting/sightly/impl/parser/expr/ sling/trunk/contrib/scripting/sightly/engine/src/main/antlr4/org/apache/sling/scripting/sightly/impl/parser/expr/generated/ sling/trunk/contrib/scripting/sightly/engine/src/main/antlr4/org/apache/sling/scripting/sightly/impl/parser/expr/generated/SightlyLexer.g4 sling/trunk/contrib/scripting/sightly/engine/src/main/antlr4/org/apache/sling/scripting/sightly/impl/parser/expr/generated/SightlyParser.g4 sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/Record.java (with props) sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/ResourceResolution.java (with props) sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/SightlyException.java (with props) sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/extension/ sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/extension/ExtensionInstance.java (with props) sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/extension/RuntimeExtension.java (with props) sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/extension/RuntimeExtensionException.java (with props) sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/extension/package-info.java (with props) sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/ sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiled/ sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiled/CompilationOutput.java (with props) sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiled/ExpressionTranslator.java (with props) sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiled/GenHelper.java (with props) sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiled/JavaClassBackend.java (with props) sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiled/JavaSource.java (with props) sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiled/SourceGenConstants.java (with props) sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiled/Type.java (with props) sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiled/TypeInference.java (with props) sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiled/TypeInfo.java (with props) sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiled/UnitBuilder.java (with props) sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiled/VariableAnalyzer.java (with props) sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiled/VariableDescriptor.java (with props) sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiled/VariableScope.java (with props) sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiled/operator/ sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiled/operator/BinaryOpGen.java (with props) sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiled/operator/ComparisonOpGen.java (with props
svn commit: r1642281 [3/14] - in /sling/trunk/contrib/scripting/sightly: ./ engine/ engine/src/main/antlr4/org/apache/sling/parser/expr/generated/ engine/src/main/antlr4/org/apache/sling/scripting/ en
Modified: sling/trunk/contrib/scripting/sightly/engine/pom.xml URL: http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/sightly/engine/pom.xml?rev=1642281r1=1642280r2=1642281view=diff == --- sling/trunk/contrib/scripting/sightly/engine/pom.xml (original) +++ sling/trunk/contrib/scripting/sightly/engine/pom.xml Fri Nov 28 10:18:01 2014 @@ -78,9 +78,6 @@ configuration instructions Embed-Dependencyantlr4-runtime,org.abego.treelayout.core/Embed-Dependency -Export-Package -org.apache.sling.scripting.sightly.api -/Export-Package ScriptEngine-Name${project.name}/ScriptEngine-Name ScriptEngine-Version${project.version}/ScriptEngine-Version /instructions Added: sling/trunk/contrib/scripting/sightly/engine/src/main/antlr4/org/apache/sling/scripting/sightly/impl/parser/expr/generated/SightlyLexer.g4 URL: http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/sightly/engine/src/main/antlr4/org/apache/sling/scripting/sightly/impl/parser/expr/generated/SightlyLexer.g4?rev=1642281view=auto == --- sling/trunk/contrib/scripting/sightly/engine/src/main/antlr4/org/apache/sling/scripting/sightly/impl/parser/expr/generated/SightlyLexer.g4 (added) +++ sling/trunk/contrib/scripting/sightly/engine/src/main/antlr4/org/apache/sling/scripting/sightly/impl/parser/expr/generated/SightlyLexer.g4 Fri Nov 28 10:18:01 2014 @@ -0,0 +1,120 @@ +/*** + * 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. + **/ +lexer grammar SightlyLexer; + +ESC_EXPR: '\${'.*? '}'; + +EXPR_START: '${' - pushMode(ExpressionMode); + +TEXT_PART: .; //$hello ${expr} + + +mode ExpressionMode; + +EXPR_END: '}' - popMode; + + +BOOL_CONSTANT: 'true' | 'false'; + +DOT: '.'; + +LBRACKET: '('; + +RBRACKET: ')'; + +AND_OP: ''; + +OR_OP: '||'; + +NOT_OP: '!'; + +COMMA: ','; + +ARRAY_START: '['; + +ARRAY_END: ']'; + +ASSIGN: '='; + +OPTION_SEP: '@'; + +TERNARY_Q_OP: '?'; + +TERNARY_BRANCHES_OP: ':'; + +LT: ''; + +LEQ: '='; + +GEQ: '='; + +GT: ''; + +EQ: '=='; + +NEQ: '!='; + +// tokens + +ID : ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'0'..'9'|'_'|':')* +; + +INT : '0'..'9'+ +; + +FLOAT +: ('0'..'9')+ '.' ('0'..'9')+ EXPONENT? +//| '.' ('0'..'9')+ EXPONENT? -- conflicts with a.2 notation +| ('0'..'9')+ EXPONENT +; + +COMMENT: '!--/*' .*? '*/--' - skip; + +WS : ( ' ' +| '\t' +| '\r' +| '\n' +) - skip +; + + +STRING +: '' ( ESC_SEQ | ~('\\'|'') )* '' +| '\'' ( ESC_SEQ | ~('\\'|'\'') )* '\'' +; + +//CHAR: '\'' ( ESC_SEQ | ~('\''|'\\') ) '\'' +//; + +fragment +EXPONENT : ('e'|'E') ('+'|'-')? ('0'..'9')+ ; + +fragment +HEX_DIGIT : ('0'..'9'|'a'..'f'|'A'..'F') ; + +fragment +ESC_SEQ +: '\\' ('b'|'t'|'n'|'f'|'r'|'\'|'\''|'\\') +| UNICODE_ESC +; + +fragment +UNICODE_ESC +: '\\' 'u' HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT +; Added: sling/trunk/contrib/scripting/sightly/engine/src/main/antlr4/org/apache/sling/scripting/sightly/impl/parser/expr/generated/SightlyParser.g4 URL: http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/sightly/engine/src/main/antlr4/org/apache/sling/scripting/sightly/impl/parser/expr/generated/SightlyParser.g4?rev=1642281view=auto == --- sling/trunk/contrib/scripting/sightly/engine/src/main/antlr4/org/apache/sling/scripting/sightly/impl/parser/expr/generated/SightlyParser.g4 (added) +++ sling/trunk/contrib/scripting/sightly/engine/src/main/antlr4/org/apache/sling/scripting/sightly/impl/parser/expr/generated/SightlyParser.g4 Fri Nov 28 10:18:01 2014 @@ -0,0 +1,139 @@ +/*** + * Licensed to the Apache Software
svn commit: r1642281 [6/14] - in /sling/trunk/contrib/scripting/sightly: ./ engine/ engine/src/main/antlr4/org/apache/sling/parser/expr/generated/ engine/src/main/antlr4/org/apache/sling/scripting/ en
Added: sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/expression/node/TernaryOperator.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/expression/node/TernaryOperator.java?rev=1642281view=auto == --- sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/expression/node/TernaryOperator.java (added) +++ sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/expression/node/TernaryOperator.java Fri Nov 28 10:18:01 2014 @@ -0,0 +1,65 @@ +/*** + * 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.scripting.sightly.impl.compiler.expression.node; + +import org.apache.sling.scripting.sightly.impl.compiler.expression.ExpressionNode; +import org.apache.sling.scripting.sightly.impl.compiler.expression.NodeVisitor; + +/** + * Defines the Sightly ternary operator: {@code condition ? then : else}. + */ +public class TernaryOperator implements ExpressionNode { + +private ExpressionNode condition; +private ExpressionNode thenBranch; +private ExpressionNode elseBranch; + +public TernaryOperator(ExpressionNode condition, ExpressionNode thenBranch, ExpressionNode elseBranch) { +this.condition = condition; +this.thenBranch = thenBranch; +this.elseBranch = elseBranch; +} + +public ExpressionNode getCondition() { +return condition; +} + +public ExpressionNode getThenBranch() { +return thenBranch; +} + +public ExpressionNode getElseBranch() { +return elseBranch; +} + +@Override +public T T accept(NodeVisitorT visitor) { +return visitor.evaluate(this); +} + +@Override +public String toString() { +return TernaryOperator{ + +condition= + condition + +, thenBranch= + thenBranch + +, elseBranch= + elseBranch + +'}'; +} +} Propchange: sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/expression/node/TernaryOperator.java -- svn:mime-type = text/plain Added: sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/expression/node/UnaryOperation.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/expression/node/UnaryOperation.java?rev=1642281view=auto == --- sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/expression/node/UnaryOperation.java (added) +++ sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/expression/node/UnaryOperation.java Fri Nov 28 10:18:01 2014 @@ -0,0 +1,58 @@ +/*** + * 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
svn commit: r1642281 [8/14] - in /sling/trunk/contrib/scripting/sightly: ./ engine/ engine/src/main/antlr4/org/apache/sling/parser/expr/generated/ engine/src/main/antlr4/org/apache/sling/scripting/ en
Propchange: sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/util/expression/HomogenousNodeVisitor.java -- svn:mime-type = text/plain Added: sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/util/expression/NodeTransformer.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/util/expression/NodeTransformer.java?rev=1642281view=auto == --- sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/util/expression/NodeTransformer.java (added) +++ sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/util/expression/NodeTransformer.java Fri Nov 28 10:18:01 2014 @@ -0,0 +1,125 @@ +/*** + * 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.scripting.sightly.impl.compiler.util.expression; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.apache.sling.scripting.sightly.impl.compiler.expression.ExpressionNode; +import org.apache.sling.scripting.sightly.impl.compiler.expression.NodeVisitor; +import org.apache.sling.scripting.sightly.impl.compiler.expression.node.ArrayLiteral; +import org.apache.sling.scripting.sightly.impl.compiler.expression.node.BinaryOperation; +import org.apache.sling.scripting.sightly.impl.compiler.expression.node.BooleanConstant; +import org.apache.sling.scripting.sightly.impl.compiler.expression.node.Identifier; +import org.apache.sling.scripting.sightly.impl.compiler.expression.node.MapLiteral; +import org.apache.sling.scripting.sightly.impl.compiler.expression.node.NullLiteral; +import org.apache.sling.scripting.sightly.impl.compiler.expression.node.NumericConstant; +import org.apache.sling.scripting.sightly.impl.compiler.expression.node.PropertyAccess; +import org.apache.sling.scripting.sightly.impl.compiler.expression.node.RuntimeCall; +import org.apache.sling.scripting.sightly.impl.compiler.expression.node.StringConstant; +import org.apache.sling.scripting.sightly.impl.compiler.expression.node.TernaryOperator; +import org.apache.sling.scripting.sightly.impl.compiler.expression.node.UnaryOperation; + +public class NodeTransformer implements NodeVisitorExpressionNode { + +public final ExpressionNode transform(ExpressionNode node) { +return node.accept(this); +} + +@Override +public ExpressionNode evaluate(PropertyAccess propertyAccess) { +return new PropertyAccess(transform(propertyAccess.getTarget()), transform(propertyAccess.getProperty())); +} + +@Override +public ExpressionNode evaluate(Identifier identifier) { +return identifier; +} + +@Override +public ExpressionNode evaluate(StringConstant text) { +return text; +} + +@Override +public ExpressionNode evaluate(BinaryOperation binaryOperation) { +return new BinaryOperation(binaryOperation.getOperator(), +transform(binaryOperation.getLeftOperand()), +transform(binaryOperation.getRightOperand())); +} + +@Override +public ExpressionNode evaluate(BooleanConstant booleanConstant) { +return booleanConstant; +} + +@Override +public ExpressionNode evaluate(NumericConstant numericConstant) { +return numericConstant; +} + +@Override +public ExpressionNode evaluate(UnaryOperation unaryOperation) { +return new UnaryOperation(unaryOperation.getOperator(), transform(unaryOperation.getTarget())); +} + +@Override +public ExpressionNode evaluate(TernaryOperator ternaryOperator) { +return new TernaryOperator( +transform(ternaryOperator.getCondition()), +
svn commit: r1642281 [9/14] - in /sling/trunk/contrib/scripting/sightly: ./ engine/ engine/src/main/antlr4/org/apache/sling/parser/expr/generated/ engine/src/main/antlr4/org/apache/sling/scripting/ en
Added: sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/UnitLoader.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/UnitLoader.java?rev=1642281view=auto == --- sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/UnitLoader.java (added) +++ sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/UnitLoader.java Fri Nov 28 10:18:01 2014 @@ -0,0 +1,448 @@ +/*** + * 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.scripting.sightly.impl.engine; + +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.net.URL; +import java.util.Calendar; +import java.util.HashMap; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.locks.Lock; +import java.util.concurrent.locks.ReentrantLock; + +import javax.script.Bindings; + +import org.apache.commons.io.IOUtils; +import org.apache.commons.lang.StringEscapeUtils; +import org.apache.commons.lang.StringUtils; +import org.apache.felix.scr.annotations.Activate; +import org.apache.felix.scr.annotations.Component; +import org.apache.felix.scr.annotations.Properties; +import org.apache.felix.scr.annotations.Property; +import org.apache.felix.scr.annotations.Reference; +import org.apache.felix.scr.annotations.Service; +import org.apache.sling.api.SlingConstants; +import org.apache.sling.api.SlingHttpServletResponse; +import org.apache.sling.api.resource.LoginException; +import org.apache.sling.api.resource.PersistenceException; +import org.apache.sling.api.resource.Resource; +import org.apache.sling.api.resource.ResourceResolver; +import org.apache.sling.api.resource.ResourceResolverFactory; +import org.apache.sling.api.resource.ResourceUtil; +import org.apache.sling.api.resource.ValueMap; +import org.apache.sling.api.scripting.SlingBindings; +import org.apache.sling.scripting.sightly.SightlyException; +import org.apache.sling.scripting.sightly.impl.compiled.CompilationOutput; +import org.apache.sling.scripting.sightly.impl.compiled.JavaClassBackend; +import org.apache.sling.scripting.sightly.impl.compiler.SightlyJavaCompilerService; +import org.apache.sling.scripting.sightly.impl.compiler.SightlyParsingException; +import org.apache.sling.scripting.sightly.impl.compiler.SightlyCompilerService; +import org.apache.sling.scripting.sightly.impl.compiler.util.GlobalShadowCheckBackend; +import org.apache.sling.scripting.sightly.impl.engine.compiled.JavaClassTemplate; +import org.apache.sling.scripting.sightly.impl.engine.compiled.SourceIdentifier; +import org.apache.sling.scripting.sightly.impl.engine.runtime.RenderContextImpl; +import org.apache.sling.scripting.sightly.impl.engine.runtime.RenderUnit; +import org.apache.sling.scripting.sightly.impl.engine.runtime.SightlyRenderException; +import org.apache.sling.settings.SlingSettingsService; +import org.osgi.service.component.ComponentContext; +import org.osgi.service.event.Event; +import org.osgi.service.event.EventConstants; +import org.osgi.service.event.EventHandler; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Create rendering units from resources. + */ +@Component +@Service({UnitLoader.class, EventHandler.class}) +@Properties({ +@Property( +name = EventConstants.EVENT_TOPIC, +value = {SlingConstants.TOPIC_RESOURCE_ADDED, SlingConstants.TOPIC_RESOURCE_CHANGED, SlingConstants.TOPIC_RESOURCE_REMOVED} +), +@Property( +name = EventConstants.EVENT_FILTER, +value = (|( + SlingConstants.PROPERTY_PATH + =/apps/**/*. + SightlyScriptEngineFactory.EXTENSION + )( + +SlingConstants.PROPERTY_PATH + =/libs/**/*. +
svn commit: r1642281 [11/14] - in /sling/trunk/contrib/scripting/sightly: ./ engine/ engine/src/main/antlr4/org/apache/sling/parser/expr/generated/ engine/src/main/antlr4/org/apache/sling/scripting/ e
Added: sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/html/dom/HtmlParser.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/html/dom/HtmlParser.java?rev=1642281view=auto == --- sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/html/dom/HtmlParser.java (added) +++ sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/html/dom/HtmlParser.java Fri Nov 28 10:18:01 2014 @@ -0,0 +1,468 @@ +/*** + * 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.scripting.sightly.impl.html.dom; + +import java.io.CharArrayWriter; +import java.io.IOException; +import java.io.Reader; + +/** + * HTML parser. Invokes a codeDocumentHandler/code whenever an event occurs. + */ +public final class HtmlParser { + +/** Internal character buffer */ +private final CharArrayWriter buffer = new CharArrayWriter(256); + +/** Tag tokenizer */ +private final TagTokenizer tokenizer = new TagTokenizer(); + +/** Tag name buffer */ +private final CharArrayWriter tagNameBuffer = new CharArrayWriter(30); + +/** Tag name */ +private String tagName; + +/** Registered document handler */ +private final DocumentHandler documentHandler; + +private enum PARSE_STATE { +OUTSIDE, +TAG, +SCRIPT, +COMMENT, +STRING, +EXPRESSION +} + +/** Tag type constant */ +private final static int TT_NONE = 0; + +/** Tag type constant */ +private final static int TT_MAYBE = 1; + +/** Tag type constant */ +private final static int TT_TAG = 2; + +/** Expression state constant */ +private final static int EXPR_NONE = 0; + +/** Expression state constant */ +private final static int EXPR_MAYBE = 1; + +/** Parse state */ +private PARSE_STATE parseState = PARSE_STATE.OUTSIDE; + +/** Parse substate */ +private int parseSubState; + +/** Previous parse state */ +private PARSE_STATE prevParseState; + +/** Current tag type */ +private int tagType; + +/** Expression type */ +private int exprType; + +/** Quote character */ +private char quoteChar; + +public static void parse(final Reader reader, final DocumentHandler documentHandler) +throws IOException { +final HtmlParser parser = new HtmlParser(documentHandler); +parser.parse(reader); +} + +/** + * Default constructor. + */ +private HtmlParser(final DocumentHandler documentHandler) { +this.documentHandler = documentHandler; +} + +private void parse(final Reader reader) +throws IOException { +try { +this.documentHandler.onStart(); +final char[] readBuffer = new char[2048]; +int readLen = 0; +while ( (readLen = reader.read(readBuffer)) 0 ) { +this.update(readBuffer, readLen); +} +this.flushBuffer(); +this.documentHandler.onEnd(); +} finally { +try { +reader.close(); +} catch ( final IOException ignore) { +// ignore +} +} +} + +/** + * Feed characters to the parser. + * + * @param buf character buffer + * @param len length of affected buffer + */ +private void update(final char[] buf, int len) throws IOException { +int start = 0; +final int end = len; + +for (int curr = start; curr end; curr++) { +final char c = buf[curr]; + +switch (parseState) { +case OUTSIDE: +if (c == '') { +if (curr start) { +documentHandler.onCharacters(buf, start, curr - start); +} +start = curr; +
svn commit: r1642281 [14/14] - in /sling/trunk/contrib/scripting/sightly: ./ engine/ engine/src/main/antlr4/org/apache/sling/parser/expr/generated/ engine/src/main/antlr4/org/apache/sling/scripting/ e
Added: sling/trunk/contrib/scripting/sightly/js-use-provider/src/main/java/org/apache/sling/scripting/sightly/js/impl/loop/EventLoop.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/sightly/js-use-provider/src/main/java/org/apache/sling/scripting/sightly/js/impl/loop/EventLoop.java?rev=1642281view=auto == --- sling/trunk/contrib/scripting/sightly/js-use-provider/src/main/java/org/apache/sling/scripting/sightly/js/impl/loop/EventLoop.java (added) +++ sling/trunk/contrib/scripting/sightly/js-use-provider/src/main/java/org/apache/sling/scripting/sightly/js/impl/loop/EventLoop.java Fri Nov 28 10:18:01 2014 @@ -0,0 +1,78 @@ +/*** + * 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.scripting.sightly.js.impl.loop; + +import java.util.LinkedList; +import java.util.Queue; + +import org.apache.sling.scripting.sightly.use.SightlyUseException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + + +/** + * Simulates an event loop for the Rhino JS engine. + */ +public class EventLoop { + +private static final Logger log = LoggerFactory.getLogger(EventLoop.class); + +private QueueTask taskQueue = new LinkedListTask(); +private boolean isRunning; + +/** + * Add a task to the queue. If the queue is empty, start running tasks. If it + * isn't empty, continue running the available tasks + * @param task the task to be added + */ +public void schedule(Task task) { +taskQueue.offer(task); +run(); +} + +private void run() { +if (isRunning) { +return; +} +isRunning = true; +try { +// Holds the first exception encountered. If there is such a first exception, it will be +// rethrown +Exception thrownException = null; +while (!taskQueue.isEmpty()) { +Task task = taskQueue.poll(); +try { +task.run(); +} catch (Exception e) { +if (thrownException == null) { +thrownException = e; //first exception +} else { +log.error(Additional error occurred while running JS script: , e); +} +} +} +if (thrownException != null) { +throw new SightlyUseException(thrownException); +} +} finally { +isRunning = false; +} +} + +} Propchange: sling/trunk/contrib/scripting/sightly/js-use-provider/src/main/java/org/apache/sling/scripting/sightly/js/impl/loop/EventLoop.java -- svn:mime-type = text/plain Added: sling/trunk/contrib/scripting/sightly/js-use-provider/src/main/java/org/apache/sling/scripting/sightly/js/impl/loop/EventLoopInterop.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/sightly/js-use-provider/src/main/java/org/apache/sling/scripting/sightly/js/impl/loop/EventLoopInterop.java?rev=1642281view=auto == --- sling/trunk/contrib/scripting/sightly/js-use-provider/src/main/java/org/apache/sling/scripting/sightly/js/impl/loop/EventLoopInterop.java (added) +++ sling/trunk/contrib/scripting/sightly/js-use-provider/src/main/java/org/apache/sling/scripting/sightly/js/impl/loop/EventLoopInterop.java Fri Nov 28 10:18:01 2014 @@ -0,0 +1,53 @@ +/*** + * 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
svn commit: r1642281 [10/14] - in /sling/trunk/contrib/scripting/sightly: ./ engine/ engine/src/main/antlr4/org/apache/sling/parser/expr/generated/ engine/src/main/antlr4/org/apache/sling/scripting/ e
Added: sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/RenderUnitProvider.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/RenderUnitProvider.java?rev=1642281view=auto == --- sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/RenderUnitProvider.java (added) +++ sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/RenderUnitProvider.java Fri Nov 28 10:18:01 2014 @@ -0,0 +1,105 @@ +/*** + * 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.scripting.sightly.impl.engine.extension.use; + +import javax.script.Bindings; + +import org.apache.felix.scr.annotations.Component; +import org.apache.felix.scr.annotations.Properties; +import org.apache.felix.scr.annotations.Property; +import org.apache.felix.scr.annotations.Reference; +import org.apache.felix.scr.annotations.Service; +import org.apache.sling.api.SlingHttpServletRequest; +import org.apache.sling.api.resource.LoginException; +import org.apache.sling.api.resource.Resource; +import org.apache.sling.api.resource.ResourceResolver; +import org.apache.sling.api.resource.ResourceResolverFactory; +import org.apache.sling.api.scripting.SlingBindings; +import org.apache.sling.api.scripting.SlingScriptHelper; +import org.apache.sling.scripting.sightly.ResourceResolution; +import org.apache.sling.scripting.sightly.impl.engine.SightlyScriptEngineFactory; +import org.apache.sling.scripting.sightly.impl.engine.UnitLoader; +import org.apache.sling.scripting.sightly.impl.engine.runtime.RenderContextImpl; +import org.apache.sling.scripting.sightly.impl.engine.runtime.RenderUnit; +import org.apache.sling.scripting.sightly.render.RenderContext; +import org.apache.sling.scripting.sightly.use.ProviderOutcome; +import org.apache.sling.scripting.sightly.use.SightlyUseException; +import org.apache.sling.scripting.sightly.use.UseProvider; +import org.osgi.framework.Constants; + +/** + * Interprets identifiers as paths to other Sightly templates + */ +@Component( +metatype = true, +label = Apache Sling Scripting Sightly Render Unit Use Provider, +description = The Render Unit Use Provider is responsible for instantiating Sightly templates through the Use-API. +) +@Service(UseProvider.class) +@Properties({ +@Property( +name = Constants.SERVICE_RANKING, +label = Service Ranking, +description = The Service Ranking value acts as the priority with which this Use Provider is queried to return an + +Use-object. A higher value represents a higher priority., +intValue = 100, +propertyPrivate = false +) +}) +public class RenderUnitProvider implements UseProvider { + +@Reference +private UnitLoader unitLoader = null; + +@Reference +private ResourceResolverFactory rrf = null; + +@Override +public ProviderOutcome provide(String identifier, RenderContext renderContext, Bindings arguments) { +if (identifier.endsWith(. + SightlyScriptEngineFactory.EXTENSION)) { +Bindings globalBindings = renderContext.getBindings(); +Resource renderUnitResource = locateResource(globalBindings, identifier); +RenderUnit renderUnit = unitLoader.createUnit(renderUnitResource, globalBindings, (RenderContextImpl) renderContext); +return ProviderOutcome.notNullOrFailure(renderUnit); +} +return ProviderOutcome.failure(); +} + +private Resource locateResource(Bindings bindings, String script) { +ResourceResolver adminResolver = null; +try { +adminResolver = rrf.getAdministrativeResourceResolver(null); +
svn commit: r1642281 [2/14] - in /sling/trunk/contrib/scripting/sightly: ./ engine/ engine/src/main/antlr4/org/apache/sling/parser/expr/generated/ engine/src/main/antlr4/org/apache/sling/scripting/ en
Added: sling/trunk/contrib/scripting/sightly/SLING-4206.patch URL: http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/sightly/SLING-4206.patch?rev=1642281view=auto == --- sling/trunk/contrib/scripting/sightly/SLING-4206.patch (added) +++ sling/trunk/contrib/scripting/sightly/SLING-4206.patch Fri Nov 28 10:18:01 2014 @@ -0,0 +1,43730 @@ +From d554d612423a2a95c679b270abbc961571e7e51a Mon Sep 17 00:00:00 2001 +From: Radu Cotescu r...@apache.org +Date: Thu, 27 Nov 2014 18:02:21 +0200 +Subject: [PATCH] SLING-4206 - [Sightly Engine] Refactor the Sightly Engine API + +* refactored exported API to expose only the bare minimum +* refactored implementation to remove unneeded abstractions +--- + contrib/scripting/sightly/engine/pom.xml | 3 - + .../sling/parser/expr/generated/SightlyLexer.g4| 120 - + .../sling/parser/expr/generated/SightlyParser.g4 | 139 -- + .../impl/parser/expr/generated/SightlyLexer.g4 | 120 + + .../impl/parser/expr/generated/SightlyParser.g4| 139 ++ + .../org/apache/sling/scripting/sightly/Record.java | 47 ++ + .../scripting/sightly/ResourceResolution.java | 176 +++ + .../sling/scripting/sightly/SightlyException.java | 42 ++ + .../scripting/sightly/api/BaseRenderUnit.java | 144 -- + .../scripting/sightly/api/ExtensionInstance.java | 36 -- + .../sling/scripting/sightly/api/ObjectModel.java | 111 - + .../scripting/sightly/api/ProviderOutcome.java | 95 + .../apache/sling/scripting/sightly/api/Record.java | 47 -- + .../sling/scripting/sightly/api/RenderContext.java | 111 - + .../sling/scripting/sightly/api/RenderUnit.java| 39 -- + .../scripting/sightly/api/ResourceResolution.java | 179 --- + .../scripting/sightly/api/RuntimeExtension.java| 41 -- + .../sightly/api/RuntimeExtensionComponent.java | 65 --- + .../sightly/api/RuntimeExtensionException.java | 41 -- + .../sightly/api/SightlyEngineException.java| 40 -- + .../sightly/api/SightlyParsingException.java | 57 --- + .../sightly/api/SightlyRenderException.java| 41 -- + .../scripting/sightly/api/SightlyRuntime.java | 40 -- + .../scripting/sightly/api/SightlyUseException.java | 40 -- + .../sling/scripting/sightly/api/StackedWriter.java | 83 + .../sling/scripting/sightly/api/UnitLocator.java | 37 -- + .../apache/sling/scripting/sightly/api/Use.java| 30 -- + .../sling/scripting/sightly/api/UseProvider.java | 51 -- + .../sightly/api/UseProviderComponent.java | 73 --- + .../sling/scripting/sightly/api/package-info.java | 22 - + .../sling/scripting/sightly/common/Dynamic.java| 203 + .../scripting/sightly/common/ObjectModelImpl.java | 406 + .../sightly/common/SightlyRuntimeImpl.java | 71 --- + .../scripting/sightly/compiled/CodeGenVisitor.java | 277 --- + .../sightly/compiled/CompilationOutput.java| 44 -- + .../sightly/compiled/ExpressionTranslator.java | 192 + .../scripting/sightly/compiled/GenHelper.java | 117 - + .../sightly/compiled/JavaClassBackend.java | 51 -- + .../scripting/sightly/compiled/JavaSource.java | 264 --- + .../sightly/compiled/SourceGenConstants.java | 61 --- + .../sling/scripting/sightly/compiled/Type.java | 48 -- + .../scripting/sightly/compiled/TypeInference.java | 159 --- + .../sling/scripting/sightly/compiled/TypeInfo.java | 50 -- + .../scripting/sightly/compiled/UnitBuilder.java| 65 --- + .../sightly/compiled/VariableAnalyzer.java | 223 - + .../sightly/compiled/VariableDescriptor.java | 107 - + .../scripting/sightly/compiled/VariableScope.java | 27 -- + .../sightly/compiled/operator/BinaryOpGen.java | 36 -- + .../sightly/compiled/operator/ComparisonOpGen.java | 87 + .../compiled/operator/ConcatenateOpGen.java| 48 -- + .../compiled/operator/EquivalenceOpGen.java| 91 + .../sightly/compiled/operator/IsWhiteSpaceGen.java | 55 --- + .../sightly/compiled/operator/LengthOpGen.java | 51 -- + .../sightly/compiled/operator/LogicalOpGen.java| 83 + .../sightly/compiled/operator/LongOpGen.java | 38 -- + .../sightly/compiled/operator/NotOpGen.java| 47 -- + .../sightly/compiled/operator/NumericOpGen.java| 58 --- + .../sightly/compiled/operator/OpHelper.java| 40 -- + .../sightly/compiled/operator/Operators.java | 88 + .../sightly/compiled/operator/StrictEqGenOp.java | 57 --- + .../sightly/compiled/operator/TypedNode.java | 45 -- + .../sightly/compiled/operator/UnaryOpGen.java | 35 -- + .../scripting/sightly/compiler/BaseCompiler.java | 61 --- + .../sightly/compiler/CompilerBackend.java | 35 -- + .../sightly/compiler/CompilerException.java| 38 -- + .../sightly/compiler/CompilerFrontend.java | 35 -- +
svn commit: r1642281 [7/14] - in /sling/trunk/contrib/scripting/sightly: ./ engine/ engine/src/main/antlr4/org/apache/sling/parser/expr/generated/ engine/src/main/antlr4/org/apache/sling/scripting/ en
Added: sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/optimization/UnusedVariableRemoval.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/optimization/UnusedVariableRemoval.java?rev=1642281view=auto == --- sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/optimization/UnusedVariableRemoval.java (added) +++ sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/optimization/UnusedVariableRemoval.java Fri Nov 28 10:18:01 2014 @@ -0,0 +1,161 @@ +/*** + * 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.scripting.sightly.impl.compiler.optimization; + +import java.util.ArrayList; +import java.util.List; +import java.util.Stack; + +import org.apache.sling.scripting.sightly.impl.compiler.ris.Command; +import org.apache.sling.scripting.sightly.impl.compiler.ris.CommandStream; +import org.apache.sling.scripting.sightly.impl.compiler.ris.command.VariableBinding; +import org.apache.sling.scripting.sightly.impl.compiler.util.stream.EmitterVisitor; +import org.apache.sling.scripting.sightly.impl.compiler.util.stream.PushStream; +import org.apache.sling.scripting.sightly.impl.compiler.util.stream.Streams; +import org.apache.sling.scripting.sightly.impl.compiler.visitor.TrackingVisitor; + +/** + * This optimization removes variables which are bound but + * never used in the command stream + */ +public final class UnusedVariableRemoval extends TrackingVisitorUnusedVariableRemoval.VariableActivity implements EmitterVisitor { + +public static final StreamTransformer TRANSFORMER = new StreamTransformer() { +@Override +public CommandStream transform(CommandStream inStream) { +return Streams.map(inStream, new UnusedVariableRemoval()); +} +}; + +private final PushStream outputStream = new PushStream(); +private final StackListCommand storedCommandsStack = new StackListCommand(); + +private UnusedVariableRemoval() { +} + +@Override +public PushStream getOutputStream() { +return outputStream; +} + +@Override +public void visit(VariableBinding.Start variableBindingStart) { +//push a new buffer where we will store the following commands +//these commands will be emitted only if this variable will be used in +//it's scope +storedCommandsStack.push(new ArrayListCommand()); +//start tracking the variable +tracker.pushVariable(variableBindingStart.getVariableName(), new VariableActivity(variableBindingStart)); +} + +@Override +public void visit(VariableBinding.End variableBindingEnd) { +// Get the activity of the exiting variable +VariableActivity variableActivity = tracker.peek().getValue(); +tracker.popVariable(); +boolean emitBindingEnd = true; +if (variableActivity != null) { +//this was a tracked variable. Popping all the commands +//which were delayed for this variable +ListCommand commands = storedCommandsStack.pop(); +//if the variable binding is emitted than this binding +//end must be emitted as well +emitBindingEnd = variableActivity.isUsed(); +if (variableActivity.isUsed()) { +VariableBinding.Start variableBindingStart = variableActivity.getCommand(); +//variable was used. we can let it pass through +emit(variableBindingStart); +//register the usage of all the variables that appear in the bound expression +registerUsage(variableBindingStart); +} +//emit all the delayed commands +for (Command command : commands) { +emit(command); +}
svn commit: r1642281 [4/14] - in /sling/trunk/contrib/scripting/sightly: ./ engine/ engine/src/main/antlr4/org/apache/sling/parser/expr/generated/ engine/src/main/antlr4/org/apache/sling/scripting/ en
Added: sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiled/VariableAnalyzer.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiled/VariableAnalyzer.java?rev=1642281view=auto == --- sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiled/VariableAnalyzer.java (added) +++ sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiled/VariableAnalyzer.java Fri Nov 28 10:18:01 2014 @@ -0,0 +1,222 @@ +/*** + * 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.scripting.sightly.impl.compiled; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; + +import org.apache.sling.scripting.sightly.impl.compiler.util.VariableTracker; + +/** + * Data structure used in the analysis of variables + * during the compilation process + */ +public class VariableAnalyzer { + +private static final HashSetString javaKeywords = new HashSetString(); +private final VariableTrackerVariableDescriptor tracker = new VariableTrackerVariableDescriptor(); +private final ListVariableDescriptor variables = new ArrayListVariableDescriptor(); +private final HashMapString, VariableDescriptor dynamicVariables = new HashMapString, VariableDescriptor(); +private final HashMapString, VariableDescriptor staticVariables = new HashMapString, VariableDescriptor(); +private static final String DYNAMIC_PREFIX = _dynamic_; +private static final String GLOBAL_PREFIX = _global_; + +/** + * Mark the declaration of a variable in the Java code + * @param originalName - the original name of the variable + * @return - a variable descriptor uniquely assigned to this variable + */ +public VariableDescriptor declareVariable(String originalName, Type type) { +originalName = originalName.toLowerCase(); +String assignedName = findSafeName(originalName); +VariableDescriptor descriptor = new VariableDescriptor(originalName, assignedName, type, VariableScope.SCOPED); +tracker.pushVariable(originalName, descriptor); +variables.add(descriptor); +return descriptor; +} + +/** + * Declare a global variable. Redundant declarations are ignored + * @param originalName - the original name of the variable + * @return a variable descriptor + */ +public VariableDescriptor declareGlobal(String originalName) { +originalName = originalName.toLowerCase(); +VariableDescriptor descriptor = staticVariables.get(originalName); +if (descriptor == null) { +String assignedName = findGlobalName(originalName); +descriptor = new VariableDescriptor(originalName, assignedName, Type.UNKNOWN, VariableScope.GLOBAL); +variables.add(descriptor); +staticVariables.put(originalName, descriptor); +} +return descriptor; +} + +/** + * Mark this variable as a template + * @param originalName - the original name of the variable + * @return a variable descriptor + */ +public VariableDescriptor declareTemplate(String originalName) { +originalName = originalName.toLowerCase(); +VariableDescriptor descriptor = dynamicDescriptor(originalName); +descriptor.markAsTemplate(); +return descriptor; +} + +/** + * Mark the end of a variable scope + */ +public VariableDescriptor endVariable() { +VariableDescriptor descriptor = tracker.peek().getValue(); +tracker.popVariable(); +return descriptor; +} + +/** + * Get a the descriptor for the given variable + * @param name the original lowerName of the variable + * @return the
svn commit: r1642281 [12/14] - in /sling/trunk/contrib/scripting/sightly: ./ engine/ engine/src/main/antlr4/org/apache/sling/parser/expr/generated/ engine/src/main/antlr4/org/apache/sling/scripting/ e
Added: sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/plugin/AttributePlugin.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/plugin/AttributePlugin.java?rev=1642281view=auto == --- sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/plugin/AttributePlugin.java (added) +++ sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/plugin/AttributePlugin.java Fri Nov 28 10:18:01 2014 @@ -0,0 +1,356 @@ +/*** + * 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.scripting.sightly.impl.plugin; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.Set; + +import org.apache.commons.lang.StringUtils; +import org.apache.felix.scr.annotations.Component; +import org.apache.felix.scr.annotations.Properties; +import org.apache.felix.scr.annotations.Property; +import org.apache.felix.scr.annotations.Service; +import org.apache.sling.scripting.sightly.impl.compiler.Syntax; +import org.apache.sling.scripting.sightly.impl.compiler.expression.Expression; +import org.apache.sling.scripting.sightly.impl.compiler.expression.ExpressionNode; +import org.apache.sling.scripting.sightly.impl.compiler.expression.node.BinaryOperation; +import org.apache.sling.scripting.sightly.impl.compiler.expression.node.BinaryOperator; +import org.apache.sling.scripting.sightly.impl.compiler.expression.node.BooleanConstant; +import org.apache.sling.scripting.sightly.impl.compiler.expression.node.Identifier; +import org.apache.sling.scripting.sightly.impl.compiler.expression.node.MapLiteral; +import org.apache.sling.scripting.sightly.impl.compiler.expression.node.PropertyAccess; +import org.apache.sling.scripting.sightly.impl.compiler.expression.node.RuntimeCall; +import org.apache.sling.scripting.sightly.impl.compiler.expression.node.StringConstant; +import org.apache.sling.scripting.sightly.impl.compiler.ris.command.Conditional; +import org.apache.sling.scripting.sightly.impl.compiler.ris.command.Loop; +import org.apache.sling.scripting.sightly.impl.compiler.ris.command.OutText; +import org.apache.sling.scripting.sightly.impl.compiler.ris.command.OutVariable; +import org.apache.sling.scripting.sightly.impl.compiler.ris.command.Patterns; +import org.apache.sling.scripting.sightly.impl.compiler.ris.command.VariableBinding; +import org.apache.sling.scripting.sightly.impl.compiler.common.DefaultPluginInvoke; +import org.apache.sling.scripting.sightly.impl.compiler.frontend.CompilerContext; +import org.apache.sling.scripting.sightly.impl.compiler.util.stream.PushStream; +import org.apache.sling.scripting.sightly.impl.html.MarkupUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Implementation for the attribute plugin + */ +@Component +@Service +@Properties({ +@Property(name = service.description, value = Sightly Resource Block Plugin), +@Property(name = Plugin.SCR_PROP_NAME_BLOCK_NAME, value = attribute), +@Property(name = Plugin.SCR_PROP_NAME_PRIORITY, intValue = 150) +}) +public class AttributePlugin extends PluginComponent { + +private static final Logger log = LoggerFactory.getLogger(AttributePlugin.class); + +@Override +public PluginInvoke invoke(Expression expression, PluginCallInfo callInfo, CompilerContext compilerContext) { +String attributeName = decodeAttributeName(callInfo); +if (attributeName != null MarkupUtils.isSensitiveAttribute(attributeName)) { +log.warn(Refusing to generate attribute {} for security reasons, attributeName); +return new DefaultPluginInvoke(); //no-op invocation +} +return (attributeName != null) +? new SingleAttributeInvoke(attributeName, expression, compilerContext) +: new
svn commit: r1642281 [13/14] - in /sling/trunk/contrib/scripting/sightly: ./ engine/ engine/src/main/antlr4/org/apache/sling/parser/expr/generated/ engine/src/main/antlr4/org/apache/sling/scripting/ e
Added: sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/pojo/Use.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/pojo/Use.java?rev=1642281view=auto == --- sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/pojo/Use.java (added) +++ sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/pojo/Use.java Fri Nov 28 10:18:01 2014 @@ -0,0 +1,50 @@ +/*** + * 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.scripting.sightly.pojo; + +import javax.script.Bindings; + +import aQute.bnd.annotation.ConsumerType; + +/** + * The codeUse/code interface can be implemented by Java objects + * which are instantiated as part of processing {@code data-sly-use} + * attributes. + * + * @see a href=http://docs.adobe.com/docs/en/aem/6-0/develop/sightly.html#use;Sightly Block Statements - Use/a + */ +@ConsumerType +public interface Use { + +/** + * Called to initialize the Java object with the current Java Scripting + * API bindings. + * p + * This method is called only if the object has been instantiated by + * Sightly as part of processing the {@code data-sly-use} attribute. + * p + * The Java Scripting API bindings provide all the global variables + * known to a script being executed. Consider these bindings of a map + * from variable name to the variable's value. + * + * @param bindings The Java Scripting API bindings. + */ +public void init(Bindings bindings); + +} Propchange: sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/pojo/Use.java -- svn:mime-type = text/plain Added: sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/pojo/package-info.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/pojo/package-info.java?rev=1642281view=auto == --- sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/pojo/package-info.java (added) +++ sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/pojo/package-info.java Fri Nov 28 10:18:01 2014 @@ -0,0 +1,22 @@ +/*** + * 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. + **/ +@Version(1.0.0) +package org.apache.sling.scripting.sightly.pojo; + +import aQute.bnd.annotation.Version; Propchange: sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/pojo/package-info.java -- svn:mime-type = text/plain Added:
svn commit: r1642283 - in /sling/trunk/contrib/scripting/sightly: engine/src/main/antlr4/org/apache/sling/parser/ engine/src/main/java/org/apache/sling/scripting/sightly/api/ engine/src/main/java/org/
Author: fmeschbe Date: Fri Nov 28 10:34:47 2014 New Revision: 1642283 URL: http://svn.apache.org/r1642283 Log: SLING-4206 Refactor Sightly and Sightly JS Remove empty folders after committing the refactoring Removed: sling/trunk/contrib/scripting/sightly/engine/src/main/antlr4/org/apache/sling/parser/ sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/api/ sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/common/ sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/compiled/ sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/compiler/ sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/engine/ sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/filter/ sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/html/ sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/plugin/ sling/trunk/contrib/scripting/sightly/js-use-provider/src/main/java/org/apache/sling/scripting/sightly/js/async/ sling/trunk/contrib/scripting/sightly/js-use-provider/src/main/java/org/apache/sling/scripting/sightly/js/cjs/ sling/trunk/contrib/scripting/sightly/js-use-provider/src/main/java/org/apache/sling/scripting/sightly/js/jsapi/ sling/trunk/contrib/scripting/sightly/js-use-provider/src/main/java/org/apache/sling/scripting/sightly/js/loop/ sling/trunk/contrib/scripting/sightly/js-use-provider/src/main/java/org/apache/sling/scripting/sightly/js/rhino/ sling/trunk/contrib/scripting/sightly/js-use-provider/src/main/java/org/apache/sling/scripting/sightly/js/use/
svn commit: r1642284 - /sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/Record.java
Author: fmeschbe Date: Fri Nov 28 10:44:20 2014 New Revision: 1642284 URL: http://svn.apache.org/r1642284 Log: SLING-4206 Fixing one minor glitch: Record is a @ConsumerType, of course Modified: sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/Record.java Modified: sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/Record.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/Record.java?rev=1642284r1=1642283r2=1642284view=diff == --- sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/Record.java (original) +++ sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/Record.java Fri Nov 28 10:44:20 2014 @@ -21,13 +21,13 @@ package org.apache.sling.scripting.sight import java.util.Set; -import aQute.bnd.annotation.ProviderType; +import aQute.bnd.annotation.ConsumerType; /** * A key-value immutable object understood by the Sightly runtime * @param T the type of values for this record */ -@ProviderType +@ConsumerType public interface RecordT { /**
svn commit: r1642292 - in /sling/trunk/contrib/scripting/sightly: engine/pom.xml js-use-provider/pom.xml
Author: fmeschbe Date: Fri Nov 28 13:21:26 2014 New Revision: 1642292 URL: http://svn.apache.org/r1642292 Log: SLING-4182 Downgrade Sling API dependencies to the minimum required API (2.4 instead of 2.8) Modified: sling/trunk/contrib/scripting/sightly/engine/pom.xml sling/trunk/contrib/scripting/sightly/js-use-provider/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=1642292r1=1642291r2=1642292view=diff == --- sling/trunk/contrib/scripting/sightly/engine/pom.xml (original) +++ sling/trunk/contrib/scripting/sightly/engine/pom.xml Fri Nov 28 13:21:26 2014 @@ -161,7 +161,7 @@ dependency groupIdorg.apache.sling/groupId artifactIdorg.apache.sling.api/artifactId -version2.8.0/version +version2.4.0/version scopeprovided/scope /dependency dependency Modified: sling/trunk/contrib/scripting/sightly/js-use-provider/pom.xml URL: http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/sightly/js-use-provider/pom.xml?rev=1642292r1=1642291r2=1642292view=diff == --- sling/trunk/contrib/scripting/sightly/js-use-provider/pom.xml (original) +++ sling/trunk/contrib/scripting/sightly/js-use-provider/pom.xml Fri Nov 28 13:21:26 2014 @@ -95,7 +95,7 @@ dependency groupIdorg.apache.sling/groupId artifactIdorg.apache.sling.api/artifactId -version2.8.0/version +version2.4.0/version scopeprovided/scope /dependency dependency
svn commit: r1642293 - /sling/trunk/contrib/scripting/sightly/js-use-provider/pom.xml
Author: fmeschbe Date: Fri Nov 28 13:27:03 2014 New Revision: 1642293 URL: http://svn.apache.org/r1642293 Log: SLING-4209 Expose required JavaScript files through the BundleResourceProvider Modified: sling/trunk/contrib/scripting/sightly/js-use-provider/pom.xml Modified: sling/trunk/contrib/scripting/sightly/js-use-provider/pom.xml URL: http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/sightly/js-use-provider/pom.xml?rev=1642293r1=1642292r2=1642293view=diff == --- sling/trunk/contrib/scripting/sightly/js-use-provider/pom.xml (original) +++ sling/trunk/contrib/scripting/sightly/js-use-provider/pom.xml Fri Nov 28 13:27:03 2014 @@ -68,7 +68,7 @@ extensionstrue/extensions configuration instructions - Sling-Initial-ContentSLING-INF;overwrite=true/Sling-Initial-Content + Sling-Bundle-Resources/libs/sling/sightly/js;path:=/SLING-INF/libs/sling/sightly/js/Sling-Bundle-Resources /instructions /configuration /plugin
svn commit: r1642125 - /sling/site/trunk/content/documentation/bundles/content-loading-jcr-contentloader.mdtext
Author: fmeschbe Date: Thu Nov 27 12:36:14 2014 New Revision: 1642125 URL: http://svn.apache.org/r1642125 Log: Fix JSON sample to reflect reality after switching to supporting the JSON export format with SLING-266 Modified: sling/site/trunk/content/documentation/bundles/content-loading-jcr-contentloader.mdtext Modified: sling/site/trunk/content/documentation/bundles/content-loading-jcr-contentloader.mdtext URL: http://svn.apache.org/viewvc/sling/site/trunk/content/documentation/bundles/content-loading-jcr-contentloader.mdtext?rev=1642125r1=1642124r2=1642125view=diff == --- sling/site/trunk/content/documentation/bundles/content-loading-jcr-contentloader.mdtext (original) +++ sling/site/trunk/content/documentation/bundles/content-loading-jcr-contentloader.mdtext Thu Nov 27 12:36:14 2014 @@ -158,53 +158,54 @@ The my-transform.xsl file is then respon Nodes, Properties and in fact complete subtrees may be described in JSON files using the following skeleton structure (see [http://www.json.org](http://www.json.org) or information on the syntax of JSON) : { -// optional node name on top level, default is file name without .json ext. -name: nodename, +// child node name +nodename : { // optional primary node type, default nt:unstructured -primaryNodeType: sling:ScriptedComponent, +jcr:primaryType: sling:ScriptedComponent, // optional mixin node types as array -mixinNodeTypes: [ ], +jcr:mixinTypes: [ ], -// the properties property is an object indexed by property name whose -// value is either the string property value, array for multi-values or -// an object whose value[s] property denotes the property value(s) and -// whose type property denotes the property type -properties: { -sling:contentClass: com.day.sling.jcr.test.Test, -sampleMulti: [ v1, v2 ], -sampleStruct: { -value: 1, -type: Long +// additional properties as name value pairs. +// Multi-value properties are defined as JSON array. +// Property type is derived from the value + +// String value (default) +sling:contentClass: com.day.sling.jcr.test.Test, + +// Multi-value String +sampleMulti: [ v1, v2 ], + +// Long value, single and multi +sampleStruct: 1, +sampleStructMulti: [ 1, 2, 3 ], + +// Date follows pattern -mm-ddTHH:MM:SS.sss±HH:MM +sampleDate: 2014-11-27T13:26:00.000+01:00, + +// JCR Node Reference with name prefix (removed to derive node name) +jcr:reference:sampleRef: 386b0f48-49c3-4c58-8735-ceee6bfc1933, + +// JCR Path with name prefix (removed to derive node name) +jcr:path:samplePath: /content/data, + +// JCR Name with name prefix (removed to derive node name) +jcr:name:sampleName: data, + +// URI with name prefix (removed to derive node name) +jcr:uri:sampleUri: http://sling.apache.org/;, + +// Child nodes are simple JSON objects +sling:scripts: { +jcr:primaryType: sling:ScriptList, +sling:Script: { +jcr:primaryType: sling:Script, +sling:name: /test/content/jsp/start.jsp, +sling:type: jsp, +sling:glob: * } -sampleStructMulti: { -value: [ 1, 2, 3 ], -type: Long -} -}, - -// the nodes property is an array of objects denoting child nodes. Nodes -// may be further nested. -nodes: [ -{ -// the name property is required on (nested) child nodes -name: sling:scripts, - -primaryNodeType: sling:ScriptList, - -nodes: [ -{ -primaryNodeType: sling:Script, -properties: { -sling:name: /test/content/jsp/start.jsp, -sling:type: jsp, -sling:glob: * -} -} -] -} -] +} }
svn commit: r1642126 - /sling/site/trunk/content/documentation/bundles/content-loading-jcr-contentloader.mdtext
Author: fmeschbe Date: Thu Nov 27 12:37:40 2014 New Revision: 1642126 URL: http://svn.apache.org/r1642126 Log: CMS commit to sling by fmeschbe Modified: sling/site/trunk/content/documentation/bundles/content-loading-jcr-contentloader.mdtext Modified: sling/site/trunk/content/documentation/bundles/content-loading-jcr-contentloader.mdtext URL: http://svn.apache.org/viewvc/sling/site/trunk/content/documentation/bundles/content-loading-jcr-contentloader.mdtext?rev=1642126r1=1642125r2=1642126view=diff == --- sling/site/trunk/content/documentation/bundles/content-loading-jcr-contentloader.mdtext (original) +++ sling/site/trunk/content/documentation/bundles/content-loading-jcr-contentloader.mdtext Thu Nov 27 12:37:40 2014 @@ -161,51 +161,51 @@ Nodes, Properties and in fact complete s // child node name nodename : { -// optional primary node type, default nt:unstructured -jcr:primaryType: sling:ScriptedComponent, +// optional primary node type, default nt:unstructured +jcr:primaryType: sling:ScriptedComponent, -// optional mixin node types as array -jcr:mixinTypes: [ ], +// optional mixin node types as array +jcr:mixinTypes: [ ], -// additional properties as name value pairs. -// Multi-value properties are defined as JSON array. -// Property type is derived from the value - -// String value (default) -sling:contentClass: com.day.sling.jcr.test.Test, - -// Multi-value String -sampleMulti: [ v1, v2 ], - -// Long value, single and multi -sampleStruct: 1, -sampleStructMulti: [ 1, 2, 3 ], - -// Date follows pattern -mm-ddTHH:MM:SS.sss±HH:MM -sampleDate: 2014-11-27T13:26:00.000+01:00, - -// JCR Node Reference with name prefix (removed to derive node name) -jcr:reference:sampleRef: 386b0f48-49c3-4c58-8735-ceee6bfc1933, - -// JCR Path with name prefix (removed to derive node name) -jcr:path:samplePath: /content/data, - -// JCR Name with name prefix (removed to derive node name) -jcr:name:sampleName: data, - -// URI with name prefix (removed to derive node name) -jcr:uri:sampleUri: http://sling.apache.org/;, - -// Child nodes are simple JSON objects -sling:scripts: { -jcr:primaryType: sling:ScriptList, -sling:Script: { -jcr:primaryType: sling:Script, -sling:name: /test/content/jsp/start.jsp, -sling:type: jsp, -sling:glob: * +// additional properties as name value pairs. +// Multi-value properties are defined as JSON array. +// Property type is derived from the value + +// String value (default) +sling:contentClass: com.day.sling.jcr.test.Test, + +// Multi-value String +sampleMulti: [ v1, v2 ], + +// Long value, single and multi +sampleStruct: 1, +sampleStructMulti: [ 1, 2, 3 ], + +// Date follows pattern -mm-ddTHH:MM:SS.sss±HH:MM +sampleDate: 2014-11-27T13:26:00.000+01:00, + +// JCR Node Reference with name prefix (removed to derive node name) +jcr:reference:sampleRef: 386b0f48-49c3-4c58-8735-ceee6bfc1933, + +// JCR Path with name prefix (removed to derive node name) +jcr:path:samplePath: /content/data, + +// JCR Name with name prefix (removed to derive node name) +jcr:name:sampleName: data, + +// URI with name prefix (removed to derive node name) +jcr:uri:sampleUri: http://sling.apache.org/;, + +// Child nodes are simple JSON objects +sling:scripts: { +jcr:primaryType: sling:ScriptList, +sling:Script: { +jcr:primaryType: sling:Script, +sling:name: /test/content/jsp/start.jsp, +sling:type: jsp, +sling:glob: * +} } -} }
svn commit: r1642144 - /sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/filter/FilterHandle.java
Author: fmeschbe Date: Thu Nov 27 13:27:28 2014 New Revision: 1642144 URL: http://svn.apache.org/r1642144 Log: SLING-4204 Improve Filter handling and add usage tracking (Fix license header, thanks rombert for noting) Modified: sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/filter/FilterHandle.java Modified: sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/filter/FilterHandle.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/filter/FilterHandle.java?rev=1642144r1=1642143r2=1642144view=diff == --- sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/filter/FilterHandle.java (original) +++ sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/filter/FilterHandle.java Thu Nov 27 13:27:28 2014 @@ -1,20 +1,21 @@ -/* -* -* ADOBE CONFIDENTIAL -* ___ -* -* Copyright 2014 Adobe Systems Incorporated -* All Rights Reserved. -* -* NOTICE: All information contained herein is, and remains -* the property of Adobe Systems Incorporated and its suppliers, -* if any. The intellectual and technical concepts contained -* herein are proprietary to Adobe Systems Incorporated and its -* suppliers and are protected by trade secret or copyright law. -* Dissemination of this information or reproduction of this material -* is strictly forbidden unless prior written permission is obtained -* from Adobe Systems Incorporated. -**/ +/* + * 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.engine.impl.filter; import java.util.concurrent.atomic.AtomicLong;
svn commit: r1641555 - /sling/trunk/launchpad/base/src/main/java/org/apache/sling/launchpad/base/impl/DefaultStartupHandler.java
Author: fmeschbe Date: Tue Nov 25 09:33:31 2014 New Revision: 1641555 URL: http://svn.apache.org/r1641555 Log: SLING-4197 - Catch and log Throwable thrown from StartupListener methods Modified: sling/trunk/launchpad/base/src/main/java/org/apache/sling/launchpad/base/impl/DefaultStartupHandler.java Modified: sling/trunk/launchpad/base/src/main/java/org/apache/sling/launchpad/base/impl/DefaultStartupHandler.java URL: http://svn.apache.org/viewvc/sling/trunk/launchpad/base/src/main/java/org/apache/sling/launchpad/base/impl/DefaultStartupHandler.java?rev=1641555r1=1641554r2=1641555view=diff == --- sling/trunk/launchpad/base/src/main/java/org/apache/sling/launchpad/base/impl/DefaultStartupHandler.java (original) +++ sling/trunk/launchpad/base/src/main/java/org/apache/sling/launchpad/base/impl/DefaultStartupHandler.java Tue Nov 25 09:33:31 2014 @@ -18,7 +18,10 @@ */ package org.apache.sling.launchpad.base.impl; +import java.util.Collections; import java.util.HashSet; +import java.util.Iterator; +import java.util.NoSuchElementException; import java.util.Set; import java.util.concurrent.BlockingQueue; import java.util.concurrent.LinkedBlockingQueue; @@ -52,6 +55,7 @@ import org.osgi.util.tracker.ServiceTrac * @see StartupListener * @since 2.4.0 */ +@SuppressWarnings(deprecation) public class DefaultStartupHandler implements StartupHandler, BundleListener, FrameworkListener, Runnable { @@ -77,7 +81,7 @@ public class DefaultStartupHandler private final StartupMode startupMode; /** Service tracker for startup listeners. */ -private final ServiceTracker listenerTracker; +private final ServiceTrackerStartupListener, StartupListener listenerTracker; /** Expected bundle counts. */ private final int expectedBundlesCount; @@ -103,21 +107,25 @@ public class DefaultStartupHandler this.startupMode = manager.getMode(); this.targetStartLevel = manager.getTargetStartLevel(); -this.listenerTracker = new ServiceTracker(context, StartupListener.class.getName(), -new ServiceTrackerCustomizer() { +this.listenerTracker = new ServiceTrackerStartupListener, StartupListener(context, StartupListener.class, +new ServiceTrackerCustomizerStartupListener, StartupListener() { -public void removedService(final ServiceReference reference, final Object service) { +public void removedService(final ServiceReferenceStartupListener reference, final StartupListener service) { context.ungetService(reference); } -public void modifiedService(final ServiceReference reference, final Object service) { +public void modifiedService(final ServiceReferenceStartupListener reference, final StartupListener service) { // nothing to do } -public Object addingService(final ServiceReference reference) { -final StartupListener listener = (StartupListener) context.getService(reference); -if ( listener != null ) { -listener.inform(startupMode, finished.get()); +public StartupListener addingService(final ServiceReferenceStartupListener reference) { +final StartupListener listener = context.getService(reference); +if (listener != null) { +try { +listener.inform(startupMode, finished.get()); +} catch (Throwable t) { +logger.log(Logger.LOG_ERROR, Error calling StartupListener + listener, t); +} } return listener; } @@ -271,14 +279,14 @@ public class DefaultStartupHandler logger.log(Logger.LOG_INFO, Startup finished.); this.finished.set(true); -final Object[] listeners = this.listenerTracker.getServices(); -if ( listeners != null ) { -for(final Object l : listeners) { -if ( l instanceof StartupListener ) { -((StartupListener) l).startupFinished(this.startupMode); -} +for (StartupListener listener : this.getStartupListeners()) { +try { +listener.startupFinished(this.startupMode); +} catch (Throwable t) { +logger.log(Logger.LOG_ERROR, Error calling StartupListener + listener, t); } } + // stop the queue this.enqueue(false); @@ -297,12 +305,11 @@ public class DefaultStartupHandler * @param ratio ratio */ private void startupProgress(final float ratio) { -final Object
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: http
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: http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/api/ExtensionInstance.java?rev
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: 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: http
svn commit: r1640285 - in /sling/trunk/contrib/scripting/sightly/engine: pom.xml src/main/java/org/apache/sling/scripting/sightly/api/ResourceResolution.java
Author: fmeschbe Date: Tue Nov 18 08:52:37 2014 New Revision: 1640285 URL: http://svn.apache.org/r1640285 Log: SLING-4182 - Cleanup Sightly Engine dependencies downgraded dependencies cleaned up some unused imports This closes #42 (Applied patch by Radu Cotescu. Thanks alot) Modified: sling/trunk/contrib/scripting/sightly/engine/pom.xml sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/api/ResourceResolution.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=1640285r1=1640284r2=1640285view=diff == --- sling/trunk/contrib/scripting/sightly/engine/pom.xml (original) +++ sling/trunk/contrib/scripting/sightly/engine/pom.xml Tue Nov 18 08:52:37 2014 @@ -170,7 +170,7 @@ dependency groupIdorg.apache.sling/groupId artifactIdorg.apache.sling.commons.osgi/artifactId -version2.2.0/version +version2.1.0/version scopeprovided/scope /dependency dependency @@ -187,32 +187,8 @@ /dependency dependency groupIdorg.apache.sling/groupId -artifactIdorg.apache.sling.scripting.javascript/artifactId -version2.0.12/version -exclusions -exclusion -groupIdorg.apache.sling/groupId -artifactIdorg.apache.sling.jcr.resource/artifactId -/exclusion -/exclusions -scopeprovided/scope -/dependency -dependency -groupIdorg.apache.sling/groupId -artifactIdorg.apache.sling.jcr.api/artifactId -version2.1.0/version -scopeprovided/scope -/dependency -dependency -groupIdorg.apache.sling/groupId -artifactIdorg.apache.sling.jcr.resource/artifactId -version2.2.8/version -scopeprovided/scope -/dependency -dependency -groupIdorg.apache.sling/groupId artifactIdorg.apache.sling.settings/artifactId -version1.3.0/version +version1.0.0/version scopeprovided/scope /dependency dependency @@ -230,7 +206,7 @@ dependency groupIdorg.apache.sling/groupId artifactIdorg.apache.sling.commons.compiler/artifactId -version2.1.0/version +version2.0.0/version scopeprovided/scope /dependency dependency @@ -257,7 +233,6 @@ dependency groupIdjavax.servlet/groupId artifactIdservlet-api/artifactId -version2.5/version scopeprovided/scope /dependency @@ -278,7 +253,7 @@ dependency groupIdcommons-io/groupId artifactIdcommons-io/artifactId -version2.4/version +version2.0/version scopeprovided/scope /dependency /dependencies Modified: sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/api/ResourceResolution.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/api/ResourceResolution.java?rev=1640285r1=1640284r2=1640285view=diff == --- sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/api/ResourceResolution.java (original) +++ sling/trunk/contrib/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/api/ResourceResolution.java Tue Nov 18 08:52:37 2014 @@ -20,12 +20,10 @@ package org.apache.sling.scripting.sightly.api; import org.apache.commons.lang.StringUtils; -import org.apache.sling.api.SlingConstants; import org.apache.sling.api.SlingHttpServletRequest; import org.apache.sling.api.resource.Resource; import org.apache.sling.api.resource.ResourceResolver; import org.apache.sling.api.resource.ResourceUtil; -import org.apache.sling.jcr.resource.JcrResourceConstants; /** * Utility class which used by the Sightly engine extensions
svn commit: r1640072 - in /sling/trunk/contrib/extensions/distribution: api/ sample/
Author: fmeschbe Date: Mon Nov 17 07:08:29 2014 New Revision: 1640072 URL: http://svn.apache.org/r1640072 Log: Ignore Eclipse .settings folder Modified: sling/trunk/contrib/extensions/distribution/api/ (props changed) sling/trunk/contrib/extensions/distribution/sample/ (props changed) Propchange: sling/trunk/contrib/extensions/distribution/api/ -- --- svn:ignore (original) +++ svn:ignore Mon Nov 17 07:08:29 2014 @@ -1,3 +1,5 @@ target *.iml + +.settings Propchange: sling/trunk/contrib/extensions/distribution/sample/ -- --- svn:ignore (original) +++ svn:ignore Mon Nov 17 07:08:29 2014 @@ -1,3 +1,5 @@ target *.iml + +.settings
svn commit: r1633762 - in /sling/whiteboard/fmeschbe/fsr: ./ src/main/java/org/apache/sling/fsprovider/internal/ src/main/resources/OSGI-INF/
Author: fmeschbe Date: Thu Oct 23 07:50:37 2014 New Revision: 1633762 URL: http://svn.apache.org/r1633762 Log: Fancy Filesystem ResourceProvider Prototype Added: sling/whiteboard/fmeschbe/fsr/ - copied from r1562756, sling/trunk/bundles/extensions/fsresource/ Removed: sling/whiteboard/fmeschbe/fsr/src/main/java/org/apache/sling/fsprovider/internal/FileMonitor.java sling/whiteboard/fmeschbe/fsr/src/main/resources/OSGI-INF/ Modified: sling/whiteboard/fmeschbe/fsr/pom.xml sling/whiteboard/fmeschbe/fsr/src/main/java/org/apache/sling/fsprovider/internal/FsResource.java sling/whiteboard/fmeschbe/fsr/src/main/java/org/apache/sling/fsprovider/internal/FsResourceProvider.java Modified: sling/whiteboard/fmeschbe/fsr/pom.xml URL: http://svn.apache.org/viewvc/sling/whiteboard/fmeschbe/fsr/pom.xml?rev=1633762r1=1562756r2=1633762view=diff == --- sling/whiteboard/fmeschbe/fsr/pom.xml (original) +++ sling/whiteboard/fmeschbe/fsr/pom.xml Thu Oct 23 07:50:37 2014 @@ -23,24 +23,26 @@ groupIdorg.apache.sling/groupId artifactIdsling/artifactId version18/version -relativePath../../../parent/pom.xml/relativePath +relativePath/relativePath /parent -artifactIdorg.apache.sling.fsresource/artifactId +artifactIdorg.apache.sling.fsr/artifactId packagingbundle/packaging -version1.1.3-SNAPSHOT/version +version0.0.1-SNAPSHOT/version -nameApache Sling Filesystem Resource Provider/name +nameApache Sling Filesystem Resource Provider++/name description Provides a ResourceProvider implementation supporting filesystem -based resources. +based resources with support for metadata /description +!-- scm - connectionscm:svn:http://svn.apache.org/repos/asf/sling/trunk/bundles/extensions/fsresource/connection - developerConnectionscm:svn:https://svn.apache.org/repos/asf/sling/trunk/bundles/extensions/fsresource/developerConnection - urlhttp://svn.apache.org/viewvc/sling/trunk/bundles/extensions/fsresource/url +connectionscm:svn:http://svn.apache.org/repos/asf/sling//connection + developerConnectionscm:svn:https://svn.apache.org/repos/asf/sling/trunk/ --- TO FIX --- /fsr/developerConnection +urlhttp://svn.apache.org/viewvc/sling/trunk/ --- TO FIX --- /fsr/url /scm +-- build plugins @@ -70,9 +72,13 @@ extensionstrue/extensions configuration instructions -Private-Package -org.apache.sling.fsprovider.internal -/Private-Package +Import-Package +!org.apache.tools.*, +* +/Import-Package +Embed-Dependency +je +/Embed-Dependency /instructions /configuration /plugin @@ -83,10 +89,20 @@ groupIdjavax.servlet/groupId artifactIdservlet-api/artifactId /dependency +dependency +groupIdcom.sleepycat/groupId +artifactIdje/artifactId +version5.0.73/version +/dependency dependency groupIdorg.apache.sling/groupId artifactIdorg.apache.sling.api/artifactId -version2.3.0/version +version2.8.0/version +/dependency +dependency +groupIdorg.apache.sling/groupId +artifactIdorg.apache.sling.serviceusermapper/artifactId +version1.0.0/version /dependency dependency groupIdorg.apache.sling/groupId @@ -94,6 +110,16 @@ version2.0.4/version /dependency dependency +groupIdorg.apache.sling/groupId +artifactIdorg.apache.sling.commons.osgi/artifactId +version2.2.0/version +/dependency +dependency +groupIdcommons-io/groupId +artifactIdcommons-io/artifactId +version1.4/version +/dependency +dependency groupIdorg.osgi/groupId artifactIdorg.osgi.core/artifactId /dependency Modified: sling/whiteboard/fmeschbe/fsr/src/main/java/org/apache/sling/fsprovider/internal/FsResource.java URL: http://svn.apache.org/viewvc/sling/whiteboard/fmeschbe/fsr/src/main/java/org/apache/sling/fsprovider/internal/FsResource.java?rev=1633762r1=1562756r2=1633762view=diff == --- sling/whiteboard/fmeschbe/fsr/src/main/java/org/apache/sling/fsprovider/internal/FsResource.java (original) +++ sling/whiteboard/fmeschbe/fsr/src/main/java/org/apache/sling/fsprovider/internal/FsResource.java Thu Oct 23 07:50:37 2014 @@ -22,20
svn commit: r1633099 - /sling/trunk/reactor/
Author: fmeschbe Date: Mon Oct 20 11:04:03 2014 New Revision: 1633099 URL: http://svn.apache.org/r1633099 Log: Share project reactor into https://svn.apache.org/repos/asf/sling/trunk; Added: sling/trunk/reactor/
svn commit: r1630423 - /sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/request/RequestData.java
Author: fmeschbe Date: Thu Oct 9 12:48:04 2014 New Revision: 1630423 URL: http://svn.apache.org/r1630423 Log: SLING-4016 Apply slightly modified patch by Alex Capt (Thank you very much) Modified: sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/request/RequestData.java Modified: sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/request/RequestData.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/request/RequestData.java?rev=1630423r1=1630422r2=1630423view=diff == --- sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/request/RequestData.java (original) +++ sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/request/RequestData.java Thu Oct 9 12:48:04 2014 @@ -47,15 +47,17 @@ import org.apache.sling.api.resource.Res import org.apache.sling.api.servlets.ServletResolver; import org.apache.sling.api.wrappers.SlingHttpServletRequestWrapper; import org.apache.sling.api.wrappers.SlingHttpServletResponseWrapper; -import org.apache.sling.engine.impl.StaticResponseHeader; import org.apache.sling.engine.impl.SlingHttpServletRequestImpl; import org.apache.sling.engine.impl.SlingHttpServletRequestImpl3; import org.apache.sling.engine.impl.SlingHttpServletResponseImpl; import org.apache.sling.engine.impl.SlingMainServlet; import org.apache.sling.engine.impl.SlingRequestProcessorImpl; +import org.apache.sling.engine.impl.StaticResponseHeader; import org.apache.sling.engine.impl.adapter.SlingServletRequestAdapter; import org.apache.sling.engine.impl.adapter.SlingServletResponseAdapter; import org.apache.sling.engine.impl.parameters.ParameterSupport; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * The codeRequestData/code class provides access to objects which are set @@ -72,6 +74,9 @@ import org.apache.sling.engine.impl.para */ public class RequestData { +/** default log */ +private final Logger log = LoggerFactory.getLogger(RequestData.class); + /** * The default value for the number of recursive inclusions for a single * instance of this class (value is 50). @@ -107,10 +112,15 @@ public class RequestData { */ private static int maxCallCounter = DEFAULT_MAX_CALL_COUNTER; +/** + * The name of the request attribute to override the max call number (-1 for infinite or integer value). + */ +private static String REQUEST_MAX_CALL_OVERRIDE = SlingMainServlet.PROP_MAX_CALL_COUNTER; + private static SlingMainServlet SLING_MAIN_SERVLET; private static SlingHttpServletRequestFactory REQUEST_FACTORY; - + private static ArrayListStaticResponseHeader ADDITIONAL_RESPONSE_HEADERS; /** The SlingMainServlet used for request dispatching and other stuff */ @@ -184,11 +194,11 @@ public class RequestData { RequestData.SLING_MAIN_SERVLET = slingMainServlet; RequestData.REQUEST_FACTORY = null; } - + public static void setAdditionalResponseHeaders(ArrayListStaticResponseHeader mappings){ RequestData.ADDITIONAL_RESPONSE_HEADERS = mappings; -} - +} + public static ArrayListStaticResponseHeader getAdditionalResponseHeaders() { return ADDITIONAL_RESPONSE_HEADERS; } @@ -503,7 +513,7 @@ public class RequestData { String name = RequestUtil.getServletName(servlet); // verify the number of service calls in this request -if (requestData.servletCallCounter = maxCallCounter) { +if (requestData.hasServletMaxCallCount(request)) { throw new TooManyCallsException(name); } @@ -574,6 +584,32 @@ public class RequestData { return servletCallCounter; } +/** + * Returns {@code true} if the number of {@code RequestDispatcher.include} + * calls has been reached within the given request. That maximum number may + * either be defined by the {@link #REQUEST_MAX_CALL_OVERRIDE} request + * attribute or the {@link SlingMainServlet#PROP_MAX_CALL_COUNTER} + * configuration of the {@link SlingMainServlet}. + * + * @param request The request to check + * @return {@code true} if the maximum number of calls has been reached (or + * surpassed) + */ +private boolean hasServletMaxCallCount(final ServletRequest request) { +// verify the number of service calls in this request +log.debug(Servlet call counter : {}, getServletCallCount()); + +// max number of calls can be overriden with a request attribute (-1 for +// infinite or integer value) +int maxCallCounter = RequestData.getMaxCallCounter(); +Object reqMaxOverride = request.getAttribute(REQUEST_MAX_CALL_OVERRIDE); +if (reqMaxOverride instanceof Number) { +maxCallCounter = ((Number
svn commit: r1629607 - /sling/trunk/bundles/servlets/get/src/main/java/org/apache/sling/servlets/get/impl/helpers/HtmlRendererServlet.java
Author: fmeschbe Date: Mon Oct 6 10:30:43 2014 New Revision: 1629607 URL: http://svn.apache.org/r1629607 Log: SLING-4006 Use setStatus instead of sendError to indicate no content in the response Modified: sling/trunk/bundles/servlets/get/src/main/java/org/apache/sling/servlets/get/impl/helpers/HtmlRendererServlet.java Modified: sling/trunk/bundles/servlets/get/src/main/java/org/apache/sling/servlets/get/impl/helpers/HtmlRendererServlet.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/servlets/get/src/main/java/org/apache/sling/servlets/get/impl/helpers/HtmlRendererServlet.java?rev=1629607r1=1629606r2=1629607view=diff == --- sling/trunk/bundles/servlets/get/src/main/java/org/apache/sling/servlets/get/impl/helpers/HtmlRendererServlet.java (original) +++ sling/trunk/bundles/servlets/get/src/main/java/org/apache/sling/servlets/get/impl/helpers/HtmlRendererServlet.java Mon Oct 6 10:30:43 2014 @@ -78,7 +78,7 @@ public class HtmlRendererServlet extends printEpilog(pw, isIncluded); } else { if ( !isIncluded ) { -resp.sendError(HttpServletResponse.SC_NO_CONTENT); // NO Content +resp.setStatus(HttpServletResponse.SC_NO_CONTENT); // NO Content } } }
svn commit: r1629608 - /sling/trunk/bundles/servlets/post/src/main/java/org/apache/sling/servlets/post/impl/helper/SlingPropertyValueHandler.java
Author: fmeschbe Date: Mon Oct 6 10:34:08 2014 New Revision: 1629608 URL: http://svn.apache.org/r1629608 Log: SLING-4007 Prevent NPE if Session is not available. Also don't call any code which makes use of the ValueFactory. Modified: sling/trunk/bundles/servlets/post/src/main/java/org/apache/sling/servlets/post/impl/helper/SlingPropertyValueHandler.java Modified: sling/trunk/bundles/servlets/post/src/main/java/org/apache/sling/servlets/post/impl/helper/SlingPropertyValueHandler.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/servlets/post/src/main/java/org/apache/sling/servlets/post/impl/helper/SlingPropertyValueHandler.java?rev=1629608r1=1629607r2=1629608view=diff == --- sling/trunk/bundles/servlets/post/src/main/java/org/apache/sling/servlets/post/impl/helper/SlingPropertyValueHandler.java (original) +++ sling/trunk/bundles/servlets/post/src/main/java/org/apache/sling/servlets/post/impl/helper/SlingPropertyValueHandler.java Mon Oct 6 10:34:08 2014 @@ -32,7 +32,6 @@ import javax.jcr.Session; import javax.jcr.Value; import javax.jcr.ValueFactory; import javax.jcr.nodetype.NodeType; -import javax.jcr.nodetype.NodeTypeIterator; import javax.jcr.nodetype.PropertyDefinition; import org.apache.sling.api.resource.ModifiableValueMap; @@ -281,9 +280,6 @@ public class SlingPropertyValueHandler { } } -// TODO - we should check for session -final ValueFactory valFac = parent.resource.getResourceResolver().adaptTo(Session.class).getValueFactory(); - final boolean multiValue = isMultiValue(parent, prop, values); final int type = getType(parent, prop); @@ -292,13 +288,17 @@ public class SlingPropertyValueHandler { removeIfSingleValueProperty(parent, prop); } -if (type == PropertyType.DATE) { -if (storeAsDate(parent, prop.getName(), values, multiValue, valFac)) { -return; -} -} else if (isReferencePropertyType(type)) { -if (storeAsReference(parent, prop.getName(), values, type, multiValue, valFac)) { -return; +Session s = parent.resource.getResourceResolver().adaptTo(Session.class); +if (s != null) { +final ValueFactory valFac = s.getValueFactory(); +if (type == PropertyType.DATE) { +if (storeAsDate(parent, prop.getName(), values, multiValue, valFac)) { +return; +} +} else if (isReferencePropertyType(type)) { +if (storeAsReference(parent, prop.getName(), values, type, multiValue, valFac)) { +return; +} } }
svn commit: r1624416 - /sling/site/trunk/content/documentation/the-sling-engine/resources.mdtext
Author: fmeschbe Date: Thu Sep 11 22:47:42 2014 New Revision: 1624416 URL: http://svn.apache.org/r1624416 Log: Resource property information Modified: sling/site/trunk/content/documentation/the-sling-engine/resources.mdtext Modified: sling/site/trunk/content/documentation/the-sling-engine/resources.mdtext URL: http://svn.apache.org/viewvc/sling/site/trunk/content/documentation/the-sling-engine/resources.mdtext?rev=1624416r1=1624415r2=1624416view=diff == --- sling/site/trunk/content/documentation/the-sling-engine/resources.mdtext (original) +++ sling/site/trunk/content/documentation/the-sling-engine/resources.mdtext Thu Sep 11 22:47:42 2014 @@ -6,6 +6,41 @@ Title: Resources The Resource is one of the central parts of Sling. Extending from JCR's *Everything is Content*, Sling assumes *Everthing is a Resource*. Thus Sling is maintaining a virtual tree of resources, which is a merger of the actual contents in the JCR Repository and resources provided by so called resource providers. By doing this Sling fits very well in the paradigma of the REST architecture. +### Resource Properties + +Resources have a number of essentiall properties: + +Property | Description +--+-- +Path | Resources are part of a Resource Tree. As such each Resource has a path which is formed by concatenating the names of all Resources along the root to the Resource separated by a slash. Ok, really, this is much like a URL path or a file system path where the slash (`/`) is the separator character. +Name | The name of the Resource is the last element (or segment) in the path +Resource Type | Each resource has a resource type which is used by the Servlet and Script resolver to find the appropriate Servlet or Script to handle the request for the Resource. +Resource Super Type | The (optional explicit) super type of the Resource. See the section _Resource Types_ below for more details. +Adapters | Resources are always `Adaptable` and therefore can be adapted to a different view. See the section _Resource Adapters_ below for more details. +Metadata | Resources in general support [link text][1] providing access to values such as the length of a binary resource (which can be streamed) or the Resource's content type. + +For a complete description of the `Resource` interface, please refer to the [link text][2] JavaDoc. + +### Resource Types + +The exact method of setting the resource type for a Resource depends on the actual Resource Provider. For the four main Resource Provider +implementations provided by Sling, the assignments are as follows: + +Provider | Resource Type | Resource Super Type +--+--+-- +JCR | The value of the `sling:resourceType` property or the primary node type if the property is not set (a namespace separator colon is replaced by a slash, e.g. the `nt:file` primary node type is mapped to the `nt/file` resource type | The value of the `sling:resourceSuperType` of the Resource node or resource super type of the resource pointed to by the resource type (when accessed with `ResourceResolver.getResource(String)` +File System | File based resources are of type `nt/file`; folder based resources are of type `nt/folder` corresponding to the respective JCR primary node type | none | +Bundle | File based resources are of type `nt/file`; folder based resources are of type `nt/folder` corresponding to the respective JCR primary node type | none | +Servlet | The absolute path of the resource appended with the suffix `.servlet` | `sling/bundle/resource` + +Resource Types form a type hierarchy much like Java classes form a type hierarchy. Each resource type has a resource super type, either explicitly defined as for example for JCR or Servlet Resources or implicitly. The implicit Resource Super Type is at the same time the root Resource Type much like the `java.lang.Object` class is called `sling/servlet/default` (for historical reasons). The `sling/servlet/default` Resource Type is the only type without a super type. + +### Adapters + +The object types to which Resources may be adapted depend mostly depends on the Resource Provider providing the resource. For example all JCR node based resources always adapt to `javax.jcr.Node` objects. + +If the actual Resource object class implementation extends from the `SlingAdaptable` class, then in addition all `AdapterFactory` services adapting `Resource` objects are considered when trying to adapt the Resource. In general Resource Providers are recommended to have their Resource implementation extend from [link text][3] which guarantees the Resource implementation to extend from `SlingAdaptable` and thus supporting Adapter Factories. + ## How to get a Resource To get at Resources, you need a `ResourceResolver`. This interface defines four kinds of methods to access resources: @@ -94,14 +129,14 @@ For details see [File System Resources]( ### Custom Resource
svn commit: r1624417 - /sling/site/trunk/content/documentation/the-sling-engine/resources.mdtext
Author: fmeschbe Date: Thu Sep 11 22:50:12 2014 New Revision: 1624417 URL: http://svn.apache.org/r1624417 Log: CMS commit to sling by fmeschbe Modified: sling/site/trunk/content/documentation/the-sling-engine/resources.mdtext Modified: sling/site/trunk/content/documentation/the-sling-engine/resources.mdtext URL: http://svn.apache.org/viewvc/sling/site/trunk/content/documentation/the-sling-engine/resources.mdtext?rev=1624417r1=1624416r2=1624417view=diff == --- sling/site/trunk/content/documentation/the-sling-engine/resources.mdtext (original) +++ sling/site/trunk/content/documentation/the-sling-engine/resources.mdtext Thu Sep 11 22:50:12 2014 @@ -10,14 +10,14 @@ The Resource is one of the central parts Resources have a number of essentiall properties: -Property | Description ---+-- -Path | Resources are part of a Resource Tree. As such each Resource has a path which is formed by concatenating the names of all Resources along the root to the Resource separated by a slash. Ok, really, this is much like a URL path or a file system path where the slash (`/`) is the separator character. -Name | The name of the Resource is the last element (or segment) in the path -Resource Type | Each resource has a resource type which is used by the Servlet and Script resolver to find the appropriate Servlet or Script to handle the request for the Resource. -Resource Super Type | The (optional explicit) super type of the Resource. See the section _Resource Types_ below for more details. -Adapters | Resources are always `Adaptable` and therefore can be adapted to a different view. See the section _Resource Adapters_ below for more details. -Metadata | Resources in general support [link text][1] providing access to values such as the length of a binary resource (which can be streamed) or the Resource's content type. +| Property | Description | +|--|--| +| Path | Resources are part of a Resource Tree. As such each Resource has a path which is formed by concatenating the names of all Resources along the root to the Resource separated by a slash. Ok, really, this is much like a URL path or a file system path where the slash (`/`) is the separator character. | +| Name | The name of the Resource is the last element (or segment) in the path. | +| Resource Type | Each resource has a resource type which is used by the Servlet and Script resolver to find the appropriate Servlet or Script to handle the request for the Resource. | +| Resource Super Type | The (optional explicit) super type of the Resource. See the section _Resource Types_ below for more details. | +| Adapters | Resources are always `Adaptable` and therefore can be adapted to a different view. See the section _Resource Adapters_ below for more details. | +| Metadata | Resources in general support [link text][1] providing access to values such as the length of a binary resource (which can be streamed) or the Resource's content type. | For a complete description of the `Resource` interface, please refer to the [link text][2] JavaDoc. @@ -26,12 +26,12 @@ For a complete description of the `Resou The exact method of setting the resource type for a Resource depends on the actual Resource Provider. For the four main Resource Provider implementations provided by Sling, the assignments are as follows: -Provider | Resource Type | Resource Super Type ---+--+-- -JCR | The value of the `sling:resourceType` property or the primary node type if the property is not set (a namespace separator colon is replaced by a slash, e.g. the `nt:file` primary node type is mapped to the `nt/file` resource type | The value of the `sling:resourceSuperType` of the Resource node or resource super type of the resource pointed to by the resource type (when accessed with `ResourceResolver.getResource(String)` -File System | File based resources are of type `nt/file`; folder based resources are of type `nt/folder` corresponding to the respective JCR primary node type | none | -Bundle | File based resources are of type `nt/file`; folder based resources are of type `nt/folder` corresponding to the respective JCR primary node type | none | -Servlet | The absolute path of the resource appended with the suffix `.servlet` | `sling/bundle/resource` +| Provider | Resource Type | Resource Super Type | +|--|--|--| +| JCR | The value of the `sling:resourceType` property or the primary node type if the property is not set (a namespace separator colon is replaced by a slash, e.g. the `nt:file` primary node type is mapped to the `nt/file` resource type | The value of the `sling:resourceSuperType` of the Resource node or resource super type of the resource pointed to by the resource type (when accessed with `ResourceResolver.getResource(String)` | +| File System | File based resources are of type `nt/file`; folder based resources are of type `nt/folder` corresponding to the respective JCR
svn commit: r921911 - /websites/production/sling/content/
Author: fmeschbe Date: Thu Sep 11 22:51:18 2014 New Revision: 921911 Log: Add Resource information Added: websites/production/sling/content/ - copied from r921910, websites/staging/sling/trunk/content/
svn commit: r921912 - /websites/production/sling/content/
Author: fmeschbe Date: Thu Sep 11 22:54:17 2014 New Revision: 921912 Log: Publishing svnmucc operation to sling site by fmeschbe Added: websites/production/sling/content/ - copied from r921911, websites/staging/sling/trunk/content/
svn commit: r1605559 - in /sling/trunk/contrib/extensions/ftpserver/src/main/java/org/apache/sling/ftpserver/impl: SlingConfiguration.java SlingFileSystemFactory.java SlingFileSystemView.java SlingFtp
Author: fmeschbe Date: Wed Jun 25 19:07:44 2014 New Revision: 1605559 URL: http://svn.apache.org/r1605559 Log: SLING-3688 Apply slightly modified patch by Amrit Verma (Thank you very much!) - Adds configuration property to define the default home folder - Adds support to overwrite the home folder on a per-user basis Modified: sling/trunk/contrib/extensions/ftpserver/src/main/java/org/apache/sling/ftpserver/impl/SlingConfiguration.java sling/trunk/contrib/extensions/ftpserver/src/main/java/org/apache/sling/ftpserver/impl/SlingFileSystemFactory.java sling/trunk/contrib/extensions/ftpserver/src/main/java/org/apache/sling/ftpserver/impl/SlingFileSystemView.java sling/trunk/contrib/extensions/ftpserver/src/main/java/org/apache/sling/ftpserver/impl/SlingFtpServer.java sling/trunk/contrib/extensions/ftpserver/src/main/java/org/apache/sling/ftpserver/impl/SlingUser.java sling/trunk/contrib/extensions/ftpserver/src/main/java/org/apache/sling/ftpserver/impl/SlingUserManager.java Modified: sling/trunk/contrib/extensions/ftpserver/src/main/java/org/apache/sling/ftpserver/impl/SlingConfiguration.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/ftpserver/src/main/java/org/apache/sling/ftpserver/impl/SlingConfiguration.java?rev=1605559r1=1605558r2=1605559view=diff == --- sling/trunk/contrib/extensions/ftpserver/src/main/java/org/apache/sling/ftpserver/impl/SlingConfiguration.java (original) +++ sling/trunk/contrib/extensions/ftpserver/src/main/java/org/apache/sling/ftpserver/impl/SlingConfiguration.java Wed Jun 25 19:07:44 2014 @@ -80,6 +80,10 @@ public class SlingConfiguration implemen static final int PROP_MAX_DOWNLOAD_DEFAULT = 0; +static final String PROP_FTP_HOME = home; + +static final String PROP_FTP_HOME_DEFAULT = /; + public SlingConfiguration(final MapString, Object config) { this.config = config; } @@ -142,6 +146,10 @@ public class SlingConfiguration implemen return get(PROP_MAX_UPLOAD, PROP_MAX_UPLOAD_DEFAULT); } +String getFtpHome() { +return get(PROP_FTP_HOME, PROP_FTP_HOME_DEFAULT); +} + boolean get(final String name, final boolean defaultValue) { return PropertiesUtil.toBoolean(this.config.get(name), defaultValue); } @@ -149,4 +157,8 @@ public class SlingConfiguration implemen int get(final String name, final int defaultValue) { return PropertiesUtil.toInteger(this.config.get(name), defaultValue); } + +String get(final String name, final String defaultValue) { +return PropertiesUtil.toString(this.config.get(name), defaultValue); +} } Modified: sling/trunk/contrib/extensions/ftpserver/src/main/java/org/apache/sling/ftpserver/impl/SlingFileSystemFactory.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/ftpserver/src/main/java/org/apache/sling/ftpserver/impl/SlingFileSystemFactory.java?rev=1605559r1=1605558r2=1605559view=diff == --- sling/trunk/contrib/extensions/ftpserver/src/main/java/org/apache/sling/ftpserver/impl/SlingFileSystemFactory.java (original) +++ sling/trunk/contrib/extensions/ftpserver/src/main/java/org/apache/sling/ftpserver/impl/SlingFileSystemFactory.java Wed Jun 25 19:07:44 2014 @@ -27,7 +27,7 @@ public class SlingFileSystemFactory impl public FileSystemView createFileSystemView(User user) throws FtpException { if (user instanceof SlingUser) { -return new SlingFileSystemView(((SlingUser) user).getResolver()); +return new SlingFileSystemView(((SlingUser) user)); } throw new FtpException(User + user.getName() + of type + user.getClass() + not supported); Modified: sling/trunk/contrib/extensions/ftpserver/src/main/java/org/apache/sling/ftpserver/impl/SlingFileSystemView.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/ftpserver/src/main/java/org/apache/sling/ftpserver/impl/SlingFileSystemView.java?rev=1605559r1=1605558r2=1605559view=diff == --- sling/trunk/contrib/extensions/ftpserver/src/main/java/org/apache/sling/ftpserver/impl/SlingFileSystemView.java (original) +++ sling/trunk/contrib/extensions/ftpserver/src/main/java/org/apache/sling/ftpserver/impl/SlingFileSystemView.java Wed Jun 25 19:07:44 2014 @@ -26,12 +26,12 @@ import org.apache.sling.api.resource.Res public class SlingFileSystemView implements FileSystemView { -private final ResourceResolver resolver; +private final SlingUser slingUser; private FtpFile cwd; -public SlingFileSystemView(final ResourceResolver resolver) { -this.resolver = resolver; +public SlingFileSystemView(final SlingUser user) { +this.slingUser = user; this.cwd = getHomeDirectory
svn commit: r1586411 - /sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/SlingMainServlet.java
Author: fmeschbe Date: Thu Apr 10 18:48:56 2014 New Revision: 1586411 URL: http://svn.apache.org/r1586411 Log: SLING-3498 Simply log IOException in the service method at DEBUG level since we might not have a SocketException at all for this case. Modified: sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/SlingMainServlet.java Modified: sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/SlingMainServlet.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/SlingMainServlet.java?rev=1586411r1=1586410r2=1586411view=diff == --- sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/SlingMainServlet.java (original) +++ sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/SlingMainServlet.java Thu Apr 10 18:48:56 2014 @@ -19,7 +19,6 @@ package org.apache.sling.engine.impl; import java.io.IOException; -import java.net.SocketException; import java.util.ArrayList; import java.util.Dictionary; import java.util.Enumeration; @@ -208,30 +207,11 @@ public class SlingMainServlet extends Ge } catch (IOException ioe) { -// unwrap any causes (Jetty wraps SocketException in -// EofException) -Throwable cause = ioe; -while (cause.getCause() != null) { -cause = cause.getCause(); -} - -if (cause instanceof SocketException) { - -// if the cause is a SocketException, the client most -// probably -// aborted the request, we do not fill the log with errors -// in this case -log.debug( -service: Socketexception (Client abort or network problem, -ioe); - -} else { - -// otherwise we want to know why the servlet failed -log.error( -service: Uncaught IO Problem while handling the request, -ioe); -} +// SLING-3498: Jetty with NIO does not have a wrapped +// SocketException any longer but a plain IOException +// from the NIO Socket channel. Hence we don't care for +// unwrapping and just log at DEBUG level +log.debug(service: Probably client aborted request or any other network problem, ioe); } catch (Throwable t) {
svn commit: r899756 - /websites/production/sling/content/
Author: fmeschbe Date: Sun Mar 2 19:56:11 2014 New Revision: 899756 Log: Sling API 2.6.0 und Engine 2.3.0 releases Added: websites/production/sling/content/ - copied from r899755, websites/staging/sling/trunk/content/
svn commit: r1573352 - /sling/trunk/launchpad/builder/src/main/bundles/list.xml
Author: fmeschbe Date: Sun Mar 2 19:57:34 2014 New Revision: 1573352 URL: http://svn.apache.org/r1573352 Log: 'Revert' to Sling API 2.6.0 and Engine 2.3.0 releases Modified: sling/trunk/launchpad/builder/src/main/bundles/list.xml Modified: sling/trunk/launchpad/builder/src/main/bundles/list.xml URL: http://svn.apache.org/viewvc/sling/trunk/launchpad/builder/src/main/bundles/list.xml?rev=1573352r1=1573351r2=1573352view=diff == --- sling/trunk/launchpad/builder/src/main/bundles/list.xml (original) +++ sling/trunk/launchpad/builder/src/main/bundles/list.xml Sun Mar 2 19:57:34 2014 @@ -165,7 +165,7 @@ bundle groupIdorg.apache.sling/groupId artifactIdorg.apache.sling.api/artifactId -version2.6.1-SNAPSHOT/version +version2.6.0/version /bundle bundle groupIdorg.apache.sling/groupId @@ -185,7 +185,7 @@ bundle groupIdorg.apache.sling/groupId artifactIdorg.apache.sling.engine/artifactId -version2.3.1-SNAPSHOT/version +version2.3.0/version /bundle bundle groupIdorg.apache.sling/groupId
svn commit: r4533 - /release/sling/
Author: fmeschbe Date: Fri Feb 28 16:13:47 2014 New Revision: 4533 Log: Sling API 2.6.0 and Engine 2.3.0 releases Added: release/sling/org.apache.sling.api-2.6.0-javadoc.jar (with props) release/sling/org.apache.sling.api-2.6.0-javadoc.jar.asc (with props) release/sling/org.apache.sling.api-2.6.0-javadoc.jar.md5 release/sling/org.apache.sling.api-2.6.0-javadoc.jar.sha1 release/sling/org.apache.sling.api-2.6.0-source-release.zip (with props) release/sling/org.apache.sling.api-2.6.0-source-release.zip.asc (with props) release/sling/org.apache.sling.api-2.6.0-source-release.zip.md5 release/sling/org.apache.sling.api-2.6.0-source-release.zip.sha1 release/sling/org.apache.sling.api-2.6.0-sources.jar (with props) release/sling/org.apache.sling.api-2.6.0-sources.jar.asc (with props) release/sling/org.apache.sling.api-2.6.0-sources.jar.md5 release/sling/org.apache.sling.api-2.6.0-sources.jar.sha1 release/sling/org.apache.sling.api-2.6.0.jar (with props) release/sling/org.apache.sling.api-2.6.0.jar.asc (with props) release/sling/org.apache.sling.api-2.6.0.jar.md5 release/sling/org.apache.sling.api-2.6.0.jar.sha1 release/sling/org.apache.sling.api-2.6.0.pom release/sling/org.apache.sling.api-2.6.0.pom.asc (with props) release/sling/org.apache.sling.api-2.6.0.pom.md5 release/sling/org.apache.sling.api-2.6.0.pom.sha1 release/sling/org.apache.sling.engine-2.3.0-javadoc.jar (with props) release/sling/org.apache.sling.engine-2.3.0-javadoc.jar.asc (with props) release/sling/org.apache.sling.engine-2.3.0-javadoc.jar.md5 release/sling/org.apache.sling.engine-2.3.0-javadoc.jar.sha1 release/sling/org.apache.sling.engine-2.3.0-source-release.zip (with props) release/sling/org.apache.sling.engine-2.3.0-source-release.zip.asc (with props) release/sling/org.apache.sling.engine-2.3.0-source-release.zip.md5 release/sling/org.apache.sling.engine-2.3.0-source-release.zip.sha1 release/sling/org.apache.sling.engine-2.3.0-sources.jar (with props) release/sling/org.apache.sling.engine-2.3.0-sources.jar.asc (with props) release/sling/org.apache.sling.engine-2.3.0-sources.jar.md5 release/sling/org.apache.sling.engine-2.3.0-sources.jar.sha1 release/sling/org.apache.sling.engine-2.3.0.jar (with props) release/sling/org.apache.sling.engine-2.3.0.jar.asc (with props) release/sling/org.apache.sling.engine-2.3.0.jar.md5 release/sling/org.apache.sling.engine-2.3.0.jar.sha1 release/sling/org.apache.sling.engine-2.3.0.pom release/sling/org.apache.sling.engine-2.3.0.pom.asc (with props) release/sling/org.apache.sling.engine-2.3.0.pom.md5 release/sling/org.apache.sling.engine-2.3.0.pom.sha1 Removed: release/sling/org.apache.sling.api-2.5.0-javadoc.jar release/sling/org.apache.sling.api-2.5.0-javadoc.jar.asc release/sling/org.apache.sling.api-2.5.0-javadoc.jar.md5 release/sling/org.apache.sling.api-2.5.0-javadoc.jar.sha1 release/sling/org.apache.sling.api-2.5.0-source-release.zip release/sling/org.apache.sling.api-2.5.0-source-release.zip.asc release/sling/org.apache.sling.api-2.5.0-source-release.zip.md5 release/sling/org.apache.sling.api-2.5.0-source-release.zip.sha1 release/sling/org.apache.sling.api-2.5.0-sources.jar release/sling/org.apache.sling.api-2.5.0-sources.jar.asc release/sling/org.apache.sling.api-2.5.0-sources.jar.md5 release/sling/org.apache.sling.api-2.5.0-sources.jar.sha1 release/sling/org.apache.sling.api-2.5.0.jar release/sling/org.apache.sling.api-2.5.0.jar.asc release/sling/org.apache.sling.api-2.5.0.jar.md5 release/sling/org.apache.sling.api-2.5.0.jar.sha1 release/sling/org.apache.sling.api-2.5.0.pom release/sling/org.apache.sling.api-2.5.0.pom.asc release/sling/org.apache.sling.api-2.5.0.pom.md5 release/sling/org.apache.sling.api-2.5.0.pom.sha1 release/sling/org.apache.sling.engine-2.2.10-javadoc.jar release/sling/org.apache.sling.engine-2.2.10-javadoc.jar.asc release/sling/org.apache.sling.engine-2.2.10-javadoc.jar.md5 release/sling/org.apache.sling.engine-2.2.10-javadoc.jar.sha1 release/sling/org.apache.sling.engine-2.2.10-source-release.zip release/sling/org.apache.sling.engine-2.2.10-source-release.zip.asc release/sling/org.apache.sling.engine-2.2.10-source-release.zip.md5 release/sling/org.apache.sling.engine-2.2.10-source-release.zip.sha1 release/sling/org.apache.sling.engine-2.2.10-sources.jar release/sling/org.apache.sling.engine-2.2.10-sources.jar.asc release/sling/org.apache.sling.engine-2.2.10-sources.jar.md5 release/sling/org.apache.sling.engine-2.2.10-sources.jar.sha1 release/sling/org.apache.sling.engine-2.2.10.jar release/sling/org.apache.sling.engine-2.2.10.jar.asc release/sling/org.apache.sling.engine-2.2.10.jar.md5 release/sling/org.apache.sling.engine-2.2.10.jar.sha1
svn commit: r1572983 - /sling/site/trunk/content/downloads.list
Author: fmeschbe Date: Fri Feb 28 16:16:35 2014 New Revision: 1572983 URL: http://svn.apache.org/r1572983 Log: Sling API 2.6.0 and Engine 2.3.0 releases Modified: sling/site/trunk/content/downloads.list Modified: sling/site/trunk/content/downloads.list URL: http://svn.apache.org/viewvc/sling/site/trunk/content/downloads.list?rev=1572983r1=1572982r2=1572983view=diff == --- sling/site/trunk/content/downloads.list (original) +++ sling/site/trunk/content/downloads.list Fri Feb 28 16:16:35 2014 @@ -19,7 +19,7 @@ sling|6 # Format: title|artifactId|version[|classifier[|extension]] Adapter|org.apache.sling.adapter|2.1.0 Adapter Annotations|adapter-annotations|1.0.0 -API|org.apache.sling.api|2.5.0 +API|org.apache.sling.api|2.6.0 Auth Core|org.apache.sling.auth.core|1.1.6 Auth Form|org.apache.sling.auth.form|1.0.4 Auth OpenID|org.apache.sling.auth.openid|1.0.2 @@ -41,7 +41,7 @@ Discovery API|org.apache.sling.discovery Discovery Impl|org.apache.sling.discovery.impl|1.0.2 Discovery Standalone|org.apache.sling.discovery.standalone|1.0.0 Discovery Support|org.apache.sling.discovery.support|1.0.0 -Engine|org.apache.sling.engine|2.2.10 +Engine|org.apache.sling.engine|2.3.0 Event|org.apache.sling.event|3.3.4 Explorer|org.apache.sling.extensions.explorer|1.0.2 GWT Integration|org.apache.sling.gwt.servlet|3.0.0
svn commit: r1571624 - /sling/trunk/bundles/api/pom.xml
Author: fmeschbe Date: Tue Feb 25 09:18:34 2014 New Revision: 1571624 URL: http://svn.apache.org/r1571624 Log: [maven-release-plugin] prepare for next development iteration Modified: sling/trunk/bundles/api/pom.xml Modified: sling/trunk/bundles/api/pom.xml URL: http://svn.apache.org/viewvc/sling/trunk/bundles/api/pom.xml?rev=1571624r1=1571623r2=1571624view=diff == --- sling/trunk/bundles/api/pom.xml (original) +++ sling/trunk/bundles/api/pom.xml Tue Feb 25 09:18:34 2014 @@ -28,7 +28,7 @@ /parent artifactIdorg.apache.sling.api/artifactId -version2.6.0/version +version2.6.1-SNAPSHOT/version packagingbundle/packaging nameApache Sling API/name @@ -44,9 +44,9 @@ /description scm - connectionscm:svn:http://svn.apache.org/repos/asf/sling/tags/org.apache.sling.api-2.6.0/connection - developerConnectionscm:svn:https://svn.apache.org/repos/asf/sling/tags/org.apache.sling.api-2.6.0/developerConnection - urlhttp://svn.apache.org/viewvc/sling/tags/org.apache.sling.api-2.6.0/url + connectionscm:svn:http://svn.apache.org/repos/asf/sling/trunk/bundles/api/connection + developerConnectionscm:svn:https://svn.apache.org/repos/asf/sling/trunk/bundles/api/developerConnection +urlhttp://svn.apache.org/viewvc/sling/trunk/bundles/api/url /scm properties
svn commit: r1571622 - /sling/trunk/bundles/api/pom.xml
Author: fmeschbe Date: Tue Feb 25 09:18:18 2014 New Revision: 1571622 URL: http://svn.apache.org/r1571622 Log: [maven-release-plugin] prepare release org.apache.sling.api-2.6.0 Modified: sling/trunk/bundles/api/pom.xml Modified: sling/trunk/bundles/api/pom.xml URL: http://svn.apache.org/viewvc/sling/trunk/bundles/api/pom.xml?rev=1571622r1=1571621r2=1571622view=diff == --- sling/trunk/bundles/api/pom.xml (original) +++ sling/trunk/bundles/api/pom.xml Tue Feb 25 09:18:18 2014 @@ -28,7 +28,7 @@ /parent artifactIdorg.apache.sling.api/artifactId -version2.5.1-SNAPSHOT/version +version2.6.0/version packagingbundle/packaging nameApache Sling API/name @@ -44,9 +44,9 @@ /description scm - connectionscm:svn:http://svn.apache.org/repos/asf/sling/trunk/bundles/api/connection - developerConnectionscm:svn:https://svn.apache.org/repos/asf/sling/trunk/bundles/api/developerConnection -urlhttp://svn.apache.org/viewvc/sling/trunk/bundles/api/url + connectionscm:svn:http://svn.apache.org/repos/asf/sling/tags/org.apache.sling.api-2.6.0/connection + developerConnectionscm:svn:https://svn.apache.org/repos/asf/sling/tags/org.apache.sling.api-2.6.0/developerConnection + urlhttp://svn.apache.org/viewvc/sling/tags/org.apache.sling.api-2.6.0/url /scm properties
svn commit: r1571623 - /sling/tags/org.apache.sling.api-2.6.0/
Author: fmeschbe Date: Tue Feb 25 09:18:30 2014 New Revision: 1571623 URL: http://svn.apache.org/r1571623 Log: [maven-release-plugin] copy for tag org.apache.sling.api-2.6.0 Added: sling/tags/org.apache.sling.api-2.6.0/ (props changed) - copied from r1571622, sling/trunk/bundles/api/ Propchange: sling/tags/org.apache.sling.api-2.6.0/ -- --- svn:ignore (added) +++ svn:ignore Tue Feb 25 09:18:30 2014 @@ -0,0 +1,14 @@ +target +sling +bin +logs +jackrabbit-repository +derby.log +*.iml +*.ipr +*.iws +.settings +.project +.classpath +.externalToolBuilders +maven-eclipse.xml Propchange: sling/tags/org.apache.sling.api-2.6.0/ -- --- svn:mergeinfo (added) +++ svn:mergeinfo Tue Feb 25 09:18:30 2014 @@ -0,0 +1,3 @@ +/sling/trunk/bundles/api:1567611-1569227 +/sling/whiteboard/fmeschbe/deprecate_login_administrative/api:1458693-1499665 +/sling/whiteboard/fmeschbe/parameters/api:1569230-1570099
svn commit: r1571625 - /sling/trunk/bundles/engine/pom.xml
Author: fmeschbe Date: Tue Feb 25 09:20:19 2014 New Revision: 1571625 URL: http://svn.apache.org/r1571625 Log: Prepare for Engine release based on Sling API release Modified: sling/trunk/bundles/engine/pom.xml Modified: sling/trunk/bundles/engine/pom.xml URL: http://svn.apache.org/viewvc/sling/trunk/bundles/engine/pom.xml?rev=1571625r1=1571624r2=1571625view=diff == --- sling/trunk/bundles/engine/pom.xml (original) +++ sling/trunk/bundles/engine/pom.xml Tue Feb 25 09:20:19 2014 @@ -154,7 +154,7 @@ dependency groupIdorg.apache.sling/groupId artifactIdorg.apache.sling.api/artifactId -version2.5.1-SNAPSHOT/version +version2.6.0/version scopeprovided/scope /dependency dependency
svn commit: r1571628 - /sling/trunk/bundles/engine/pom.xml
Author: fmeschbe Date: Tue Feb 25 09:21:44 2014 New Revision: 1571628 URL: http://svn.apache.org/r1571628 Log: [maven-release-plugin] prepare release org.apache.sling.engine-2.3.0 Modified: sling/trunk/bundles/engine/pom.xml Modified: sling/trunk/bundles/engine/pom.xml URL: http://svn.apache.org/viewvc/sling/trunk/bundles/engine/pom.xml?rev=1571628r1=1571627r2=1571628view=diff == --- sling/trunk/bundles/engine/pom.xml (original) +++ sling/trunk/bundles/engine/pom.xml Tue Feb 25 09:21:44 2014 @@ -29,7 +29,7 @@ artifactIdorg.apache.sling.engine/artifactId packagingbundle/packaging -version2.2.11-SNAPSHOT/version +version2.3.0/version nameApache Sling Engine Implementation/name description @@ -37,9 +37,9 @@ /description scm - connectionscm:svn:http://svn.apache.org/repos/asf/sling/trunk/bundles/engine/connection - developerConnectionscm:svn:https://svn.apache.org/repos/asf/sling/trunk/bundles/engine/developerConnection - urlhttp://svn.apache.org/viewvc/sling/trunk/bundles/sling/engine/url + connectionscm:svn:http://svn.apache.org/repos/asf/sling/tags/org.apache.sling.engine-2.3.0/connection + developerConnectionscm:svn:https://svn.apache.org/repos/asf/sling/tags/org.apache.sling.engine-2.3.0/developerConnection + urlscm:svn:https://svn.apache.org/repos/asf/sling/tags/org.apache.sling.engine-2.3.0/url /scm properties @@ -58,28 +58,15 @@ phasecompile/phase configuration target -property name=maven_compile_classpath -refid=maven.compile.classpath / +property name=maven_compile_classpath refid=maven.compile.classpath / -delete - file=${project.build.outputDirectory}/org/apache/sling/engine/impl/SlingHttpServletRequestImpl3.class / -delete - file=${project.build.outputDirectory}/org/apache/sling/engine/impl/helper/ExternalServletContextWrapper3.class / -delete - file=${project.build.outputDirectory}/org/apache/sling/engine/impl/helper/SlingServletContext3.class / -delete - file=${project.build.outputDirectory}/org/apache/sling/engine/impl/parameters/ParameterSupportHttpServletRequestWrapper3.class / +delete file=${project.build.outputDirectory}/org/apache/sling/engine/impl/SlingHttpServletRequestImpl3.class / +delete file=${project.build.outputDirectory}/org/apache/sling/engine/impl/helper/ExternalServletContextWrapper3.class / +delete file=${project.build.outputDirectory}/org/apache/sling/engine/impl/helper/SlingServletContext3.class / +delete file=${project.build.outputDirectory}/org/apache/sling/engine/impl/parameters/ParameterSupportHttpServletRequestWrapper3.class / -javac -srcdir=${basedir}/src/main/java-servlet3 -destdir=${project.build.outputDirectory} -encoding=${project.build.sourceEncoding} -target=1.${sling.java.version} -source=1.${sling.java.version} -includeantruntime=false - -classpath - path=${javax.servlet:javax.servlet-api:jar}:${maven_compile_classpath} / +javac srcdir=${basedir}/src/main/java-servlet3 destdir=${project.build.outputDirectory} encoding=${project.build.sourceEncoding} target=1.${sling.java.version} source=1.${sling.java.version} includeantruntime=false +classpath path=${javax.servlet:javax.servlet-api:jar}:${maven_compile_classpath} / /javac /target
svn commit: r1571629 - /sling/tags/org.apache.sling.engine-2.3.0/
Author: fmeschbe Date: Tue Feb 25 09:22:03 2014 New Revision: 1571629 URL: http://svn.apache.org/r1571629 Log: [maven-release-plugin] copy for tag org.apache.sling.engine-2.3.0 Added: sling/tags/org.apache.sling.engine-2.3.0/ (props changed) - copied from r1571628, sling/trunk/bundles/engine/ Propchange: sling/tags/org.apache.sling.engine-2.3.0/ -- --- svn:ignore (added) +++ svn:ignore Tue Feb 25 09:22:03 2014 @@ -0,0 +1,14 @@ +target +sling +bin +logs +jackrabbit-repository +derby.log +*.iml +*.ipr +*.iws +.settings +.project +.classpath +.externalToolBuilders +maven-eclipse.xml Propchange: sling/tags/org.apache.sling.engine-2.3.0/ -- svn:mergeinfo = /sling/whiteboard/fmeschbe/parameters/engine:1559659-1570102
svn commit: r1571630 - /sling/trunk/bundles/engine/pom.xml
Author: fmeschbe Date: Tue Feb 25 09:22:07 2014 New Revision: 1571630 URL: http://svn.apache.org/r1571630 Log: [maven-release-plugin] prepare for next development iteration Modified: sling/trunk/bundles/engine/pom.xml Modified: sling/trunk/bundles/engine/pom.xml URL: http://svn.apache.org/viewvc/sling/trunk/bundles/engine/pom.xml?rev=1571630r1=1571629r2=1571630view=diff == --- sling/trunk/bundles/engine/pom.xml (original) +++ sling/trunk/bundles/engine/pom.xml Tue Feb 25 09:22:07 2014 @@ -29,7 +29,7 @@ artifactIdorg.apache.sling.engine/artifactId packagingbundle/packaging -version2.3.0/version +version2.3.1-SNAPSHOT/version nameApache Sling Engine Implementation/name description @@ -37,9 +37,9 @@ /description scm - connectionscm:svn:http://svn.apache.org/repos/asf/sling/tags/org.apache.sling.engine-2.3.0/connection - developerConnectionscm:svn:https://svn.apache.org/repos/asf/sling/tags/org.apache.sling.engine-2.3.0/developerConnection - urlscm:svn:https://svn.apache.org/repos/asf/sling/tags/org.apache.sling.engine-2.3.0/url + connectionscm:svn:http://svn.apache.org/repos/asf/sling/trunk/bundles/engine/connection + developerConnectionscm:svn:https://svn.apache.org/repos/asf/sling/trunk/bundles/engine/developerConnection + urlhttp://svn.apache.org/viewvc/sling/trunk/bundles/sling/engine/url /scm properties
svn commit: r1571632 - /sling/trunk/launchpad/builder/src/main/bundles/list.xml
Author: fmeschbe Date: Tue Feb 25 09:25:12 2014 New Revision: 1571632 URL: http://svn.apache.org/r1571632 Log: Update to Sling API and Engine snapshots during release vote period Modified: sling/trunk/launchpad/builder/src/main/bundles/list.xml Modified: sling/trunk/launchpad/builder/src/main/bundles/list.xml URL: http://svn.apache.org/viewvc/sling/trunk/launchpad/builder/src/main/bundles/list.xml?rev=1571632r1=1571631r2=1571632view=diff == --- sling/trunk/launchpad/builder/src/main/bundles/list.xml (original) +++ sling/trunk/launchpad/builder/src/main/bundles/list.xml Tue Feb 25 09:25:12 2014 @@ -165,7 +165,7 @@ bundle groupIdorg.apache.sling/groupId artifactIdorg.apache.sling.api/artifactId -version2.5.1-SNAPSHOT/version +version2.6.1-SNAPSHOT/version /bundle bundle groupIdorg.apache.sling/groupId @@ -185,7 +185,7 @@ bundle groupIdorg.apache.sling/groupId artifactIdorg.apache.sling.engine/artifactId -version2.2.11-SNAPSHOT/version +version2.3.1-SNAPSHOT/version /bundle bundle groupIdorg.apache.sling/groupId
svn commit: r1571220 - /sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/parameters/ParameterSupport.java
Author: fmeschbe Date: Mon Feb 24 10:34:12 2014 New Revision: 1571220 URL: http://svn.apache.org/r1571220 Log: SLING-3409 Support parameters on the content type header - Add logging to parameter parsing exceptions - fold getContainerParamters method into getParameterMapInternal Modified: sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/parameters/ParameterSupport.java Modified: sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/parameters/ParameterSupport.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/parameters/ParameterSupport.java?rev=1571220r1=1571219r2=1571220view=diff == --- sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/parameters/ParameterSupport.java (original) +++ sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/parameters/ParameterSupport.java Mon Feb 24 10:34:12 2014 @@ -26,6 +26,7 @@ import java.util.Collection; import java.util.Enumeration; import java.util.Iterator; import java.util.List; +import java.util.Locale; import java.util.Map; import javax.servlet.http.HttpServletRequest; @@ -39,6 +40,7 @@ import org.apache.commons.fileupload.ser import org.apache.commons.fileupload.servlet.ServletRequestContext; import org.apache.sling.api.request.RequestParameter; import org.apache.sling.api.request.RequestParameterMap; +import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class ParameterSupport { @@ -73,6 +75,9 @@ public class ParameterSupport { /** Content type signaling parameters in request body */ private static final String WWW_FORM_URL_ENC = application/x-www-form-urlencoded; +/** default log */ +private final Logger log = LoggerFactory.getLogger(getClass()); + /** * The maximum size allowed for ttmultipart/form-data/tt * requests @@ -228,15 +233,55 @@ public class ParameterSupport { private ParameterMap getRequestParameterMapInternal() { if (this.postParameterMap == null) { +// SLING-508 Try to force servlet container to decode parameters +// as ISO-8859-1 such that we can recode later +String encoding = getServletRequest().getCharacterEncoding(); +if (encoding == null) { +encoding = Util.ENCODING_DIRECT; +try { +getServletRequest().setCharacterEncoding(encoding); +} catch (UnsupportedEncodingException uee) { +throw new SlingUnsupportedEncodingException(uee); +} +} + // SLING-152 Get parameters from the servlet Container ParameterMap parameters = new ParameterMap(); -getContainerParameters(parameters); -// only read input in case of multipart-POST not handled -// by the servlet container +// Query String +final String query = getServletRequest().getQueryString(); +if (query != null) { +try { +InputStream input = Util.toInputStream(query); +Util.parseQueryString(input, encoding, parameters, false); +} catch (IllegalArgumentException e) { +this.log.error(getRequestParameterMapInternal: Error parsing request, e); +} catch (UnsupportedEncodingException e) { +throw new SlingUnsupportedEncodingException(e); +} catch (IOException e) { +this.log.error(getRequestParameterMapInternal: Error parsing request, e); +} +} + +// POST requests if (POST.equals(this.getServletRequest().getMethod())) { -if (ServletFileUpload.isMultipartContent(new ServletRequestContext( -this.getServletRequest( { +// WWW URL Form Encoded POST +if (isWWWFormEncodedContent(this.getServletRequest())) { +try { +InputStream input = this.getServletRequest().getInputStream(); +Util.parseQueryString(input, encoding, parameters, false); +} catch (IllegalArgumentException e) { +this.log.error(getRequestParameterMapInternal: Error parsing request, e); +} catch (UnsupportedEncodingException e) { +throw new SlingUnsupportedEncodingException(e); +} catch (IOException e) { +this.log.error(getRequestParameterMapInternal: Error parsing request, e); +} +this.requestDataUsed = true; +} + +// Multipart POST +if (ServletFileUpload.isMultipartContent(new ServletRequestContext(this.getServletRequest
svn commit: r1571313 - in /sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/parameters: RequestParameterSupportConfigurer.java Util.java
Author: fmeschbe Date: Mon Feb 24 15:12:44 2014 New Revision: 1571313 URL: http://svn.apache.org/r1571313 Log: SLING-3412 Create RequestParameterSupport configuration component Added: sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/parameters/RequestParameterSupportConfigurer.java (with props) Modified: sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/parameters/Util.java Added: sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/parameters/RequestParameterSupportConfigurer.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/parameters/RequestParameterSupportConfigurer.java?rev=1571313view=auto == --- sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/parameters/RequestParameterSupportConfigurer.java (added) +++ sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/parameters/RequestParameterSupportConfigurer.java Mon Feb 24 15:12:44 2014 @@ -0,0 +1,151 @@ +/* + * 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.engine.impl.parameters; + +import java.io.File; +import java.util.Dictionary; + +import org.apache.felix.scr.annotations.Activate; +import org.apache.felix.scr.annotations.Component; +import org.apache.felix.scr.annotations.Deactivate; +import org.apache.felix.scr.annotations.Property; +import org.apache.felix.scr.annotations.Reference; +import org.apache.felix.scr.annotations.ReferencePolicy; +import org.apache.felix.scr.annotations.ReferenceStrategy; +import org.apache.sling.commons.osgi.PropertiesUtil; +import org.apache.sling.settings.SlingSettingsService; +import org.osgi.service.component.ComponentContext; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +@Component( +metatype = true, +name = RequestParameterSupportConfigurer.PID, +label = Apache Sling Request Parameter Handling, +description = Configures Sling's request parameter handling.) +@Reference( +name = SlingSetting, +referenceInterface = SlingSettingsService.class, +policy = ReferencePolicy.DYNAMIC, +strategy = ReferenceStrategy.LOOKUP) +public class RequestParameterSupportConfigurer { + +static final String PID = org.apache.sling.engine.parameters; + +/** default log */ +private final Logger log = LoggerFactory.getLogger(PID); + +@Property( +value = Util.ENCODING_DIRECT, +label = Default Parameter Encoding, +description = The default request parameter encoding used to decode request ++ parameters into strings. If this property is not set the default encoding ++ is 'ISO-8859-1' as mandated by the Servlet API spec. This default encoding ++ is used if the '_charset_' request parameter is not set to another ++ (supported) character encoding. Applications being sure to always use the ++ same encoding (e.g. UTF-8) can set this default here and may omit the ++ '_charset_' request parameter) +private static final String PROP_FIX_ENCODING = sling.default.parameter.encoding; + +@Property( +intValue = ParameterMap.DEFAULT_MAX_PARAMS, +label = Maximum POST Parameters, +description = The maximum number of parameters supported. To prevent a DOS-style attack with an ++ overrunning number of parameters the number of parameters supported can be limited. This ++ includes all of the query string as well as application/x-www-form-urlencoded and ++ multipart/form-data parameters. The default value is + ParameterMap.DEFAULT_MAX_PARAMS + .) +private static final String PROP_MAX_PARAMS = sling.default.max.parameters; + +@Property( +label = Temporary File Location, +description = The size threshold after which the file will be written to disk. The default is ++ null, which means the directory given by the 'java.io.tmpdir' system property.) +private
svn commit: r1571315 - /sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/parameters/ParameterSupport.java
Author: fmeschbe Date: Mon Feb 24 15:19:01 2014 New Revision: 1571315 URL: http://svn.apache.org/r1571315 Log: SLING-3403 Remove Jetty parameter encoding workaround Modified: sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/parameters/ParameterSupport.java Modified: sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/parameters/ParameterSupport.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/parameters/ParameterSupport.java?rev=1571315r1=1571314r2=1571315view=diff == --- sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/parameters/ParameterSupport.java (original) +++ sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/parameters/ParameterSupport.java Mon Feb 24 15:19:01 2014 @@ -58,20 +58,6 @@ public class ParameterSupport { // used during the request private static final String ATTR_NAME = ParameterSupport.class.getName(); -/** - * The name of the request attribute to set to get the Jetty 6 (and older) - * servlet container to decode the request query using ISO-8859-1 encoding - * (value is org.mortbay.jetty.Request.queryEncoding). - */ -private static final String ATTR_JETTY_QUERY_ENCODING_1 = org.mortbay.jetty.Request.queryEncoding; - -/** - * The name of the request attribute to set to get the Jetty 7 (and newer) - * servlet container to decode the request query using ISO-8859-1 encoding - * (value is org.eclipse.jetty.server.Request.queryEncoding). - */ -private static final String ATTR_JETTY_QUERY_ENCODING_2 = org.eclipse.jetty.server.Request.queryEncoding; - /** Content type signaling parameters in request body */ private static final String WWW_FORM_URL_ENC = application/x-www-form-urlencoded; @@ -164,13 +150,7 @@ public class ParameterSupport { private ParameterSupport(HttpServletRequest servletRequest) { this.servletRequest = servletRequest; - -// SLING-559: Hack to get Jetty into decoding the request -// query with ISO-8859-1 as stipulated by the servlet -// spec. Other containers ignore this parameter -servletRequest.setAttribute(ATTR_JETTY_QUERY_ENCODING_1, Util.ENCODING_DIRECT); -servletRequest.setAttribute(ATTR_JETTY_QUERY_ENCODING_2, Util.ENCODING_DIRECT); -} +} private HttpServletRequest getServletRequest() { return servletRequest;
svn commit: r1570550 - /sling/trunk/bundles/engine/pom.xml
Author: fmeschbe Date: Fri Feb 21 12:19:05 2014 New Revision: 1570550 URL: http://svn.apache.org/r1570550 Log: SLING-3403 Make sure compilation works also with Apple JDK 6 Modified: sling/trunk/bundles/engine/pom.xml Modified: sling/trunk/bundles/engine/pom.xml URL: http://svn.apache.org/viewvc/sling/trunk/bundles/engine/pom.xml?rev=1570550r1=1570549r2=1570550view=diff == --- sling/trunk/bundles/engine/pom.xml (original) +++ sling/trunk/bundles/engine/pom.xml Fri Feb 21 12:19:05 2014 @@ -90,12 +90,19 @@ /execution /executions dependencies +!-- +SLING-3403: Need tools.jar for compilation. See +non-mac-tools-jar and mac-tools-jar profiles for +definition of the toolsjar property. +See http://stackoverflow.com/questions/3080437/jdk-tools-jar-as-maven-dependency#answer-3080695 +for background of the trick. +-- dependency groupIdcom.sun/groupId artifactIdtools/artifactId version1.5.0/version scopesystem/scope -systemPath${java.home}/../lib/tools.jar/systemPath +systemPath${toolsjar}/systemPath /dependency /dependencies /plugin @@ -293,5 +300,29 @@ /plugins /build /profile +profile +idnon-mac-tools-jar/id +activation +activeByDefaulttrue/activeByDefault +file +exists${java.home}/../lib/tools.jar/exists +/file +/activation +properties +toolsjar${java.home}/../lib/tools.jar/toolsjar +/properties +/profile +profile +idmac-tools-jar/id +activation +activeByDefaultfalse/activeByDefault +file +exists${java.home}/../Classes/classes.jar/exists +/file +/activation +properties +toolsjar${java.home}/../Classes/classes.jar/toolsjar +/properties +/profile /profiles /project
svn commit: r1570102 - in /sling/whiteboard/fmeschbe/parameters/engine: ./ src/main/java/org/apache/sling/engine/impl/SlingHttpServletResponseImpl.java src/main/java/org/apache/sling/engine/impl/param
Author: fmeschbe Date: Thu Feb 20 08:20:36 2014 New Revision: 1570102 URL: http://svn.apache.org/r1570102 Log: Update to changes to trunk after branching (prepare reintegration) Modified: sling/whiteboard/fmeschbe/parameters/engine/ (props changed) sling/whiteboard/fmeschbe/parameters/engine/src/main/java/org/apache/sling/engine/impl/SlingHttpServletResponseImpl.java sling/whiteboard/fmeschbe/parameters/engine/src/main/java/org/apache/sling/engine/impl/parameters/ParameterSupport.java Propchange: sling/whiteboard/fmeschbe/parameters/engine/ -- svn:mergeinfo = /sling/trunk/bundles/engine:1559659-1570101 Modified: sling/whiteboard/fmeschbe/parameters/engine/src/main/java/org/apache/sling/engine/impl/SlingHttpServletResponseImpl.java URL: http://svn.apache.org/viewvc/sling/whiteboard/fmeschbe/parameters/engine/src/main/java/org/apache/sling/engine/impl/SlingHttpServletResponseImpl.java?rev=1570102r1=1570101r2=1570102view=diff == --- sling/whiteboard/fmeschbe/parameters/engine/src/main/java/org/apache/sling/engine/impl/SlingHttpServletResponseImpl.java (original) +++ sling/whiteboard/fmeschbe/parameters/engine/src/main/java/org/apache/sling/engine/impl/SlingHttpServletResponseImpl.java Thu Feb 20 08:20:36 2014 @@ -362,6 +362,6 @@ public class SlingHttpServletResponseImp } private String map(String url) { -return getRequestData().getResourceResolver().map(url); +return getRequestData().getResourceResolver().map(getRequestData().getServletRequest(), url); } } Modified: sling/whiteboard/fmeschbe/parameters/engine/src/main/java/org/apache/sling/engine/impl/parameters/ParameterSupport.java URL: http://svn.apache.org/viewvc/sling/whiteboard/fmeschbe/parameters/engine/src/main/java/org/apache/sling/engine/impl/parameters/ParameterSupport.java?rev=1570102r1=1570101r2=1570102view=diff == --- sling/whiteboard/fmeschbe/parameters/engine/src/main/java/org/apache/sling/engine/impl/parameters/ParameterSupport.java (original) +++ sling/whiteboard/fmeschbe/parameters/engine/src/main/java/org/apache/sling/engine/impl/parameters/ParameterSupport.java Thu Feb 20 08:20:36 2014 @@ -57,11 +57,18 @@ public class ParameterSupport { private static final String ATTR_NAME = ParameterSupport.class.getName(); /** - * The name of the request attribute to set to get the Jetty servlet - * container to decode the request query using ISO-8859-1 encoding (value is - * org.mortbay.jetty.Request.queryEncoding). + * The name of the request attribute to set to get the Jetty 6 (and older) + * servlet container to decode the request query using ISO-8859-1 encoding + * (value is org.mortbay.jetty.Request.queryEncoding). */ -private static final String ATTR_JETTY_QUERY_ENCODING = org.mortbay.jetty.Request.queryEncoding; +private static final String ATTR_JETTY_QUERY_ENCODING_1 = org.mortbay.jetty.Request.queryEncoding; + +/** + * The name of the request attribute to set to get the Jetty 7 (and newer) + * servlet container to decode the request query using ISO-8859-1 encoding + * (value is org.eclipse.jetty.server.Request.queryEncoding). + */ +private static final String ATTR_JETTY_QUERY_ENCODING_2 = org.eclipse.jetty.server.Request.queryEncoding; /** Content type signaling parameters in request body */ private static final String WWW_FORM_URL_ENC = application/x-www-form-urlencoded; @@ -156,8 +163,8 @@ public class ParameterSupport { // SLING-559: Hack to get Jetty into decoding the request // query with ISO-8859-1 as stipulated by the servlet // spec. Other containers ignore this parameter -servletRequest.setAttribute(ATTR_JETTY_QUERY_ENCODING, -Util.ENCODING_DIRECT); +servletRequest.setAttribute(ATTR_JETTY_QUERY_ENCODING_1, Util.ENCODING_DIRECT); +servletRequest.setAttribute(ATTR_JETTY_QUERY_ENCODING_2, Util.ENCODING_DIRECT); } private HttpServletRequest getServletRequest() {
svn commit: r1570135 - in /sling/trunk/bundles/api: ./ src/main/java/org/apache/sling/api/ src/main/java/org/apache/sling/api/request/ src/main/java/org/apache/sling/api/wrappers/
Author: fmeschbe Date: Thu Feb 20 10:47:23 2014 New Revision: 1570135 URL: http://svn.apache.org/r1570135 Log: SLING-3403 Provide new parameter API * RequestParameter.getName(): the name of the request parameter * SlingHttpServletRequest.getRequestParameterList(): List of request parameters in HTTP request order * Adapt SlingHttpServletRequestWrapper and increase API version Modified: sling/trunk/bundles/api/ (props changed) sling/trunk/bundles/api/src/main/java/org/apache/sling/api/SlingHttpServletRequest.java sling/trunk/bundles/api/src/main/java/org/apache/sling/api/package-info.java sling/trunk/bundles/api/src/main/java/org/apache/sling/api/request/RequestParameter.java sling/trunk/bundles/api/src/main/java/org/apache/sling/api/request/package-info.java sling/trunk/bundles/api/src/main/java/org/apache/sling/api/wrappers/SlingHttpServletRequestWrapper.java sling/trunk/bundles/api/src/main/java/org/apache/sling/api/wrappers/package-info.java Propchange: sling/trunk/bundles/api/ -- Merged /sling/whiteboard/fmeschbe/parameters/api:r1569230-1570099 Merged /sling/trunk/bundles/api:r1567611-1569227 Modified: sling/trunk/bundles/api/src/main/java/org/apache/sling/api/SlingHttpServletRequest.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/api/src/main/java/org/apache/sling/api/SlingHttpServletRequest.java?rev=1570135r1=1570134r2=1570135view=diff == --- sling/trunk/bundles/api/src/main/java/org/apache/sling/api/SlingHttpServletRequest.java (original) +++ sling/trunk/bundles/api/src/main/java/org/apache/sling/api/SlingHttpServletRequest.java Thu Feb 20 10:47:23 2014 @@ -19,6 +19,7 @@ package org.apache.sling.api; import java.util.Enumeration; +import java.util.List; import java.util.Locale; import java.util.ResourceBundle; @@ -34,7 +35,6 @@ import org.apache.sling.api.request.Requ import org.apache.sling.api.request.RequestProgressTracker; import org.apache.sling.api.resource.Resource; import org.apache.sling.api.resource.ResourceResolver; - import aQute.bnd.annotation.ProviderType; /** @@ -145,6 +145,18 @@ public interface SlingHttpServletRequest RequestParameterMap getRequestParameterMap(); /** + * Returns the request parameters as instances of the + * {@link RequestParameter} interface in the order or the request where the + * query string parameters are first and the POST request parameters are + * second. + * + * @return The list of {@link RequestParameter} in request declaration + * order. + * @since 2.3 (bundle version 2.6) + */ +ListRequestParameter getRequestParameterList(); + +/** * Returns a codeRequestDispatcher/code object that acts as a wrapper * for the resource located at the given path. A * codeRequestDispatcher/code object can be used to include the Modified: sling/trunk/bundles/api/src/main/java/org/apache/sling/api/package-info.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/api/src/main/java/org/apache/sling/api/package-info.java?rev=1570135r1=1570134r2=1570135view=diff == --- sling/trunk/bundles/api/src/main/java/org/apache/sling/api/package-info.java (original) +++ sling/trunk/bundles/api/src/main/java/org/apache/sling/api/package-info.java Thu Feb 20 10:47:23 2014 @@ -17,7 +17,7 @@ * under the License. */ -@Version(2.2) +@Version(2.3) package org.apache.sling.api; import aQute.bnd.annotation.Version; Modified: sling/trunk/bundles/api/src/main/java/org/apache/sling/api/request/RequestParameter.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/api/src/main/java/org/apache/sling/api/request/RequestParameter.java?rev=1570135r1=1570134r2=1570135view=diff == --- sling/trunk/bundles/api/src/main/java/org/apache/sling/api/request/RequestParameter.java (original) +++ sling/trunk/bundles/api/src/main/java/org/apache/sling/api/request/RequestParameter.java Thu Feb 20 10:47:23 2014 @@ -39,6 +39,12 @@ import aQute.bnd.annotation.ProviderType public interface RequestParameter { /** + * @return the name of this {@code RequestParameter} + * @since 2.4 (bundle version 2.6) + */ +String getName(); + +/** * Determines whether or not this instance represents a simple form field or * an uploaded file. * Modified: sling/trunk/bundles/api/src/main/java/org/apache/sling/api/request/package-info.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/api/src/main/java/org/apache/sling/api/request/package-info.java?rev=1570135r1=1570134r2=1570135view=diff == --- sling/trunk/bundles/api
svn commit: r1570137 - /sling/trunk/bundles/engine/parameter-ext.patch
Author: fmeschbe Date: Thu Feb 20 10:50:21 2014 New Revision: 1570137 URL: http://svn.apache.org/r1570137 Log: SLING-3403 Remove unwanted patch file Removed: sling/trunk/bundles/engine/parameter-ext.patch
svn commit: r1570139 - /sling/trunk/bundles/engine/src/test/java/org/apache/sling/engine/impl/parameters/UtilTest.java
Author: fmeschbe Date: Thu Feb 20 10:52:38 2014 New Revision: 1570139 URL: http://svn.apache.org/r1570139 Log: SLING-3403 Improved Unit test for parameter lists to make sure duplicate parameter names are not collated in non-request order Modified: sling/trunk/bundles/engine/src/test/java/org/apache/sling/engine/impl/parameters/UtilTest.java Modified: sling/trunk/bundles/engine/src/test/java/org/apache/sling/engine/impl/parameters/UtilTest.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/engine/src/test/java/org/apache/sling/engine/impl/parameters/UtilTest.java?rev=1570139r1=1570138r2=1570139view=diff == --- sling/trunk/bundles/engine/src/test/java/org/apache/sling/engine/impl/parameters/UtilTest.java (original) +++ sling/trunk/bundles/engine/src/test/java/org/apache/sling/engine/impl/parameters/UtilTest.java Thu Feb 20 10:52:38 2014 @@ -100,19 +100,25 @@ public class UtilTest extends TestCase { public void test_decode_query() throws IllegalArgumentException, UnsupportedEncodingException, IOException { final ParameterMap map = new ParameterMap(); -final String query = a=1b=2c=3; +final String query = a=1b=2c=3a=1b=2c=3; Util.parseQueryString(new ByteArrayInputStream(query.getBytes(Util.ENCODING_DIRECT)), Util.ENCODING_DIRECT, map, false); assertEquals(3, map.size()); ListRequestParameter pars = map.getRequestParameterList(); -assertEquals(3, pars.size()); +assertEquals(6, pars.size()); assertEquals(a, pars.get(0).getName()); assertEquals(1, pars.get(0).getString()); assertEquals(b, pars.get(1).getName()); assertEquals(2, pars.get(1).getString()); assertEquals(c, pars.get(2).getName()); assertEquals(3, pars.get(2).getString()); +assertEquals(a, pars.get(3).getName()); +assertEquals(1, pars.get(3).getString()); +assertEquals(b, pars.get(4).getName()); +assertEquals(2, pars.get(4).getString()); +assertEquals(c, pars.get(5).getName()); +assertEquals(3, pars.get(5).getString()); } public void test_getParameter_with_space() throws Exception {
svn commit: r1570143 - /sling/trunk/launchpad/builder/src/main/bundles/list.xml
Author: fmeschbe Date: Thu Feb 20 10:54:23 2014 New Revision: 1570143 URL: http://svn.apache.org/r1570143 Log: SLING-3403 Use new API and Engine in the Launchpad Modified: sling/trunk/launchpad/builder/src/main/bundles/list.xml Modified: sling/trunk/launchpad/builder/src/main/bundles/list.xml URL: http://svn.apache.org/viewvc/sling/trunk/launchpad/builder/src/main/bundles/list.xml?rev=1570143r1=1570142r2=1570143view=diff == --- sling/trunk/launchpad/builder/src/main/bundles/list.xml (original) +++ sling/trunk/launchpad/builder/src/main/bundles/list.xml Thu Feb 20 10:54:23 2014 @@ -165,7 +165,7 @@ bundle groupIdorg.apache.sling/groupId artifactIdorg.apache.sling.api/artifactId -version2.5.0/version +version2.5.1-SNAPSHOT/version /bundle bundle groupIdorg.apache.sling/groupId @@ -185,7 +185,7 @@ bundle groupIdorg.apache.sling/groupId artifactIdorg.apache.sling.engine/artifactId -version2.2.10/version +version2.2.11-SNAPSHOT/version /bundle bundle groupIdorg.apache.sling/groupId
svn commit: r1570145 - /sling/trunk/launchpad/builder/src/main/bundles/list.xml
Author: fmeschbe Date: Thu Feb 20 10:55:42 2014 New Revision: 1570145 URL: http://svn.apache.org/r1570145 Log: SLING-3403 And the most recent FileUpload bundle is also needed Modified: sling/trunk/launchpad/builder/src/main/bundles/list.xml Modified: sling/trunk/launchpad/builder/src/main/bundles/list.xml URL: http://svn.apache.org/viewvc/sling/trunk/launchpad/builder/src/main/bundles/list.xml?rev=1570145r1=1570144r2=1570145view=diff == --- sling/trunk/launchpad/builder/src/main/bundles/list.xml (original) +++ sling/trunk/launchpad/builder/src/main/bundles/list.xml Thu Feb 20 10:55:42 2014 @@ -89,7 +89,7 @@ bundle groupIdcommons-fileupload/groupId artifactIdcommons-fileupload/artifactId -version1.2.2/version +version1.3.1/version /bundle bundle groupIdcommons-collections/groupId
svn commit: r1570154 - in /sling/trunk/tooling/maven/maven-launchpad-plugin/src/main/java/org/apache/sling/maven/projectsupport: ./ bundlelist/
Author: fmeschbe Date: Thu Feb 20 11:47:18 2014 New Revision: 1570154 URL: http://svn.apache.org/r1570154 Log: SLING-3401 Support multiple bundles for the jarWebSupport The solution is to extend the ArtifactDefinition to internally support a collection of ArtifactDefinitions named bundles. Modified: sling/trunk/tooling/maven/maven-launchpad-plugin/src/main/java/org/apache/sling/maven/projectsupport/AbstractLaunchpadStartingMojo.java sling/trunk/tooling/maven/maven-launchpad-plugin/src/main/java/org/apache/sling/maven/projectsupport/AbstractUsingBundleListMojo.java sling/trunk/tooling/maven/maven-launchpad-plugin/src/main/java/org/apache/sling/maven/projectsupport/ArtifactDefinition.java sling/trunk/tooling/maven/maven-launchpad-plugin/src/main/java/org/apache/sling/maven/projectsupport/LaunchpadPluginLifecycleParticipant.java sling/trunk/tooling/maven/maven-launchpad-plugin/src/main/java/org/apache/sling/maven/projectsupport/PreparePackageMojo.java sling/trunk/tooling/maven/maven-launchpad-plugin/src/main/java/org/apache/sling/maven/projectsupport/bundlelist/BaseBundleList.java Modified: sling/trunk/tooling/maven/maven-launchpad-plugin/src/main/java/org/apache/sling/maven/projectsupport/AbstractLaunchpadStartingMojo.java URL: http://svn.apache.org/viewvc/sling/trunk/tooling/maven/maven-launchpad-plugin/src/main/java/org/apache/sling/maven/projectsupport/AbstractLaunchpadStartingMojo.java?rev=1570154r1=1570153r2=1570154view=diff == --- sling/trunk/tooling/maven/maven-launchpad-plugin/src/main/java/org/apache/sling/maven/projectsupport/AbstractLaunchpadStartingMojo.java (original) +++ sling/trunk/tooling/maven/maven-launchpad-plugin/src/main/java/org/apache/sling/maven/projectsupport/AbstractLaunchpadStartingMojo.java Thu Feb 20 11:47:18 2014 @@ -234,6 +234,6 @@ public abstract class AbstractLaunchpadS */ @Override protected void initBundleList(BundleList bundleList) { -bundleList.add(jarWebSupport.toBundle()); +bundleList.add(jarWebSupport.toBundleList()); } } Modified: sling/trunk/tooling/maven/maven-launchpad-plugin/src/main/java/org/apache/sling/maven/projectsupport/AbstractUsingBundleListMojo.java URL: http://svn.apache.org/viewvc/sling/trunk/tooling/maven/maven-launchpad-plugin/src/main/java/org/apache/sling/maven/projectsupport/AbstractUsingBundleListMojo.java?rev=1570154r1=1570153r2=1570154view=diff == --- sling/trunk/tooling/maven/maven-launchpad-plugin/src/main/java/org/apache/sling/maven/projectsupport/AbstractUsingBundleListMojo.java (original) +++ sling/trunk/tooling/maven/maven-launchpad-plugin/src/main/java/org/apache/sling/maven/projectsupport/AbstractUsingBundleListMojo.java Thu Feb 20 11:47:18 2014 @@ -255,7 +255,7 @@ public abstract class AbstractUsingBundl // add additional bundles if (additionalBundles != null) { for (ArtifactDefinition def : additionalBundles) { -initializedBundleList.add(def.toBundle()); +initializedBundleList.add(def.toBundleList()); } } @@ -273,7 +273,7 @@ public abstract class AbstractUsingBundl // handle exclusions if (bundleExclusions != null) { for (ArtifactDefinition def : bundleExclusions) { -initializedBundleList.remove(def.toBundle(), false); +initializedBundleList.remove(def.toBundleList(), false); } } Modified: sling/trunk/tooling/maven/maven-launchpad-plugin/src/main/java/org/apache/sling/maven/projectsupport/ArtifactDefinition.java URL: http://svn.apache.org/viewvc/sling/trunk/tooling/maven/maven-launchpad-plugin/src/main/java/org/apache/sling/maven/projectsupport/ArtifactDefinition.java?rev=1570154r1=1570153r2=1570154view=diff == --- sling/trunk/tooling/maven/maven-launchpad-plugin/src/main/java/org/apache/sling/maven/projectsupport/ArtifactDefinition.java (original) +++ sling/trunk/tooling/maven/maven-launchpad-plugin/src/main/java/org/apache/sling/maven/projectsupport/ArtifactDefinition.java Thu Feb 20 11:47:18 2014 @@ -18,6 +18,9 @@ package org.apache.sling.maven.projectsu import static org.apache.sling.maven.projectsupport.BundleListUtils.nodeValue; +import java.util.ArrayList; +import java.util.List; + import org.apache.maven.model.Dependency; import org.apache.sling.maven.projectsupport.bundlelist.v1_0_0.Bundle; import org.codehaus.plexus.util.StringUtils; @@ -49,6 +52,8 @@ public class ArtifactDefinition { /** The artifact run modes */ private String runModes; +private ArtifactDefinition[] bundles; + public ArtifactDefinition() { } @@ -176,54 +181,80 @@ public class ArtifactDefinition { */ public void initDefaults
svn commit: r1569230 - in /sling/whiteboard/fmeschbe/parameters: ./ api/ api/src/main/java/org/apache/sling/api/ api/src/main/java/org/apache/sling/api/request/ api/src/main/java/org/apache/sling/api/
Author: fmeschbe Date: Tue Feb 18 08:42:45 2014 New Revision: 1569230 URL: http://svn.apache.org/r1569230 Log: Implement alternative proposal as discussed on the list: * Add Sling API: - RequestParameter.getName() - SlingHttpServletRequest.getRequestParameterList() * Merge parameter support back into the engine bundle * Remove parameters bundle * Add reactor POM Added: sling/whiteboard/fmeschbe/parameters/api/ - copied from r1569227, sling/trunk/bundles/api/ sling/whiteboard/fmeschbe/parameters/engine/src/main/java-servlet3/org/apache/sling/engine/impl/parameters/ sling/whiteboard/fmeschbe/parameters/engine/src/main/java-servlet3/org/apache/sling/engine/impl/parameters/ParameterSupportHttpServletRequestWrapper3.java (with props) sling/whiteboard/fmeschbe/parameters/engine/src/main/java/org/apache/sling/engine/impl/parameters/ - copied from r1568914, sling/whiteboard/fmeschbe/parameters/parameters/src/main/java/org/apache/sling/parameters/impl/ sling/whiteboard/fmeschbe/parameters/engine/src/main/java/org/apache/sling/engine/impl/parameters/ParameterSupport.java - copied, changed from r1568916, sling/whiteboard/fmeschbe/parameters/parameters/src/main/java/org/apache/sling/parameters/impl/ParameterSupportImpl.java sling/whiteboard/fmeschbe/parameters/engine/src/main/java/org/apache/sling/engine/impl/parameters/ParameterSupportHttpServletRequestWrapper2x.java - copied, changed from r1568916, sling/whiteboard/fmeschbe/parameters/parameters/src/main/java/org/apache/sling/parameters/impl/ParameterSupportHttpServletRequestWrapper2x.java sling/whiteboard/fmeschbe/parameters/engine/src/main/java/org/apache/sling/engine/impl/parameters/SlingUnsupportedEncodingException.java - copied, changed from r1569228, sling/whiteboard/fmeschbe/parameters/parameters/src/main/java/org/apache/sling/parameters/SlingUnsupportedEncodingException.java sling/whiteboard/fmeschbe/parameters/engine/src/main/java/org/apache/sling/engine/impl/parameters/Util.java - copied, changed from r1568916, sling/whiteboard/fmeschbe/parameters/parameters/src/main/java/org/apache/sling/parameters/impl/Util.java sling/whiteboard/fmeschbe/parameters/engine/src/test/java/org/apache/sling/engine/impl/parameters/ - copied from r1568914, sling/whiteboard/fmeschbe/parameters/parameters/src/test/java/org/apache/sling/parameters/impl/ sling/whiteboard/fmeschbe/parameters/engine/src/test/java/org/apache/sling/engine/impl/parameters/UtilTest.java - copied, changed from r1568916, sling/whiteboard/fmeschbe/parameters/parameters/src/test/java/org/apache/sling/parameters/impl/UtilTest.java sling/whiteboard/fmeschbe/parameters/pom.xml (with props) Removed: sling/whiteboard/fmeschbe/parameters/engine/src/main/java/org/apache/sling/engine/impl/parameters/ParameterSupportImpl.java sling/whiteboard/fmeschbe/parameters/parameters/ Modified: sling/whiteboard/fmeschbe/parameters/ (props changed) sling/whiteboard/fmeschbe/parameters/api/src/main/java/org/apache/sling/api/SlingHttpServletRequest.java sling/whiteboard/fmeschbe/parameters/api/src/main/java/org/apache/sling/api/package-info.java sling/whiteboard/fmeschbe/parameters/api/src/main/java/org/apache/sling/api/request/RequestParameter.java sling/whiteboard/fmeschbe/parameters/api/src/main/java/org/apache/sling/api/request/package-info.java sling/whiteboard/fmeschbe/parameters/api/src/main/java/org/apache/sling/api/wrappers/SlingHttpServletRequestWrapper.java sling/whiteboard/fmeschbe/parameters/api/src/main/java/org/apache/sling/api/wrappers/package-info.java sling/whiteboard/fmeschbe/parameters/engine/pom.xml sling/whiteboard/fmeschbe/parameters/engine/src/main/java/org/apache/sling/engine/impl/SlingHttpContext.java sling/whiteboard/fmeschbe/parameters/engine/src/main/java/org/apache/sling/engine/impl/SlingHttpServletRequestImpl.java sling/whiteboard/fmeschbe/parameters/engine/src/main/java/org/apache/sling/engine/impl/parameters/AbstractRequestParameter.java sling/whiteboard/fmeschbe/parameters/engine/src/main/java/org/apache/sling/engine/impl/parameters/ContainerRequestParameter.java sling/whiteboard/fmeschbe/parameters/engine/src/main/java/org/apache/sling/engine/impl/parameters/MultipartRequestParameter.java sling/whiteboard/fmeschbe/parameters/engine/src/main/java/org/apache/sling/engine/impl/parameters/ParameterMap.java sling/whiteboard/fmeschbe/parameters/engine/src/main/java/org/apache/sling/engine/impl/parameters/ParameterSupportHttpServletRequestWrapper3.java sling/whiteboard/fmeschbe/parameters/engine/src/main/java/org/apache/sling/engine/impl/parameters/SlingPart.java sling/whiteboard/fmeschbe/parameters/engine/src/main/java/org/apache/sling/engine/impl/request/RequestData.java sling/whiteboard/fmeschbe/parameters/engine/src/test/java/org/apache/sling/engine/impl/parameters