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

2017-01-04 Thread fmeschbe
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/

2016-12-12 Thread fmeschbe
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

2016-11-02 Thread fmeschbe
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

2015-04-24 Thread fmeschbe
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

2015-04-24 Thread fmeschbe
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/

2015-03-27 Thread fmeschbe
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

2015-03-06 Thread fmeschbe
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

2015-03-06 Thread fmeschbe
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

2015-02-09 Thread fmeschbe
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/

2015-02-09 Thread fmeschbe
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

2015-02-06 Thread fmeschbe
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

2015-02-06 Thread fmeschbe
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

2015-02-06 Thread fmeschbe
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

2015-02-06 Thread fmeschbe
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

2015-01-26 Thread fmeschbe
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

2015-01-26 Thread fmeschbe
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/

2015-01-23 Thread fmeschbe
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

2015-01-23 Thread fmeschbe
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

2015-01-23 Thread fmeschbe
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

2015-01-19 Thread fmeschbe
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

2015-01-19 Thread fmeschbe
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

2015-01-16 Thread fmeschbe
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

2015-01-16 Thread fmeschbe
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

2015-01-16 Thread fmeschbe
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

2015-01-16 Thread fmeschbe
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

2015-01-15 Thread fmeschbe
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

2015-01-15 Thread fmeschbe
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

2015-01-11 Thread fmeschbe
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

2014-12-15 Thread fmeschbe
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/

2014-12-11 Thread fmeschbe
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

2014-12-10 Thread fmeschbe
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

2014-12-08 Thread fmeschbe
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

2014-12-05 Thread fmeschbe
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

2014-12-05 Thread fmeschbe
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

2014-12-05 Thread fmeschbe
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

2014-11-28 Thread fmeschbe
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

2014-11-28 Thread fmeschbe
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

2014-11-28 Thread fmeschbe
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

2014-11-28 Thread fmeschbe
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

2014-11-28 Thread fmeschbe
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

2014-11-28 Thread fmeschbe
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

2014-11-28 Thread fmeschbe
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

2014-11-28 Thread fmeschbe
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

2014-11-28 Thread fmeschbe
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

2014-11-28 Thread fmeschbe

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

2014-11-28 Thread fmeschbe
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

2014-11-28 Thread fmeschbe
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

2014-11-28 Thread fmeschbe
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

2014-11-28 Thread fmeschbe
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/

2014-11-28 Thread fmeschbe
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

2014-11-28 Thread fmeschbe
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

2014-11-28 Thread fmeschbe
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

2014-11-28 Thread fmeschbe
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

2014-11-27 Thread fmeschbe
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

2014-11-27 Thread fmeschbe
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

2014-11-27 Thread fmeschbe
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

2014-11-25 Thread fmeschbe
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

2014-11-19 Thread fmeschbe
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

2014-11-19 Thread fmeschbe
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/

2014-11-19 Thread fmeschbe
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/

2014-11-19 Thread fmeschbe
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/

2014-11-19 Thread fmeschbe
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

2014-11-19 Thread fmeschbe
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

2014-11-18 Thread fmeschbe
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/

2014-11-16 Thread fmeschbe
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/

2014-10-23 Thread fmeschbe
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/

2014-10-20 Thread fmeschbe
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

2014-10-09 Thread fmeschbe
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

2014-10-06 Thread fmeschbe
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

2014-10-06 Thread fmeschbe
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

2014-09-11 Thread fmeschbe
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

2014-09-11 Thread fmeschbe
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/

2014-09-11 Thread fmeschbe
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/

2014-09-11 Thread fmeschbe
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

2014-06-25 Thread fmeschbe
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

2014-04-10 Thread fmeschbe
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/

2014-03-02 Thread fmeschbe
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

2014-03-02 Thread fmeschbe
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/

2014-02-28 Thread fmeschbe
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

2014-02-28 Thread fmeschbe
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

2014-02-25 Thread fmeschbe
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

2014-02-25 Thread fmeschbe
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/

2014-02-25 Thread fmeschbe
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

2014-02-25 Thread fmeschbe
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

2014-02-25 Thread fmeschbe
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/

2014-02-25 Thread fmeschbe
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

2014-02-25 Thread fmeschbe
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

2014-02-25 Thread fmeschbe
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

2014-02-24 Thread fmeschbe
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

2014-02-24 Thread fmeschbe
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

2014-02-24 Thread fmeschbe
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

2014-02-21 Thread fmeschbe
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

2014-02-20 Thread fmeschbe
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/

2014-02-20 Thread fmeschbe
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

2014-02-20 Thread fmeschbe
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

2014-02-20 Thread fmeschbe
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

2014-02-20 Thread fmeschbe
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

2014-02-20 Thread fmeschbe
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/

2014-02-20 Thread fmeschbe
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/

2014-02-18 Thread fmeschbe
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

  1   2   3   4   5   6   7   8   9   10   >