Return-Path: Delivered-To: apmail-sling-commits-archive@www.apache.org Received: (qmail 66867 invoked from network); 8 Apr 2010 07:32:26 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 8 Apr 2010 07:32:26 -0000 Received: (qmail 83555 invoked by uid 500); 8 Apr 2010 07:32:26 -0000 Delivered-To: apmail-sling-commits-archive@sling.apache.org Received: (qmail 83492 invoked by uid 500); 8 Apr 2010 07:32:26 -0000 Mailing-List: contact commits-help@sling.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@sling.apache.org Delivered-To: mailing list commits@sling.apache.org Received: (qmail 83485 invoked by uid 99); 8 Apr 2010 07:32:25 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 08 Apr 2010 07:32:25 +0000 X-ASF-Spam-Status: No, hits=-1217.2 required=10.0 tests=ALL_TRUSTED,AWL X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 08 Apr 2010 07:32:24 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 2799723889ED; Thu, 8 Apr 2010 07:32:04 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r931813 - in /sling/trunk/bundles: api/src/main/java/org/apache/sling/api/scripting/ engine/src/main/java/org/apache/sling/engine/impl/ scripting/core/src/main/java/org/apache/sling/scripting/core/ scripting/core/src/main/java/org/apache/sl... Date: Thu, 08 Apr 2010 07:32:04 -0000 To: commits@sling.apache.org From: cziegeler@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20100408073204.2799723889ED@eris.apache.org> Author: cziegeler Date: Thu Apr 8 07:32:03 2010 New Revision: 931813 URL: http://svn.apache.org/viewvc?rev=931813&view=rev Log: SLING-1477 : Deprecate SlingScriptHelper.dispose and correct invocation Added: sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/ProfilingResourceResolver.java (with props) Modified: sling/trunk/bundles/api/src/main/java/org/apache/sling/api/scripting/SlingScriptHelper.java sling/trunk/bundles/scripting/core/src/main/java/org/apache/sling/scripting/core/ScriptHelper.java sling/trunk/bundles/scripting/core/src/main/java/org/apache/sling/scripting/core/impl/DefaultSlingScript.java Modified: sling/trunk/bundles/api/src/main/java/org/apache/sling/api/scripting/SlingScriptHelper.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/api/src/main/java/org/apache/sling/api/scripting/SlingScriptHelper.java?rev=931813&r1=931812&r2=931813&view=diff ============================================================================== --- sling/trunk/bundles/api/src/main/java/org/apache/sling/api/scripting/SlingScriptHelper.java (original) +++ sling/trunk/bundles/api/src/main/java/org/apache/sling/api/scripting/SlingScriptHelper.java Thu Apr 8 07:32:03 2010 @@ -203,6 +203,9 @@ public interface SlingScriptHelper { /** * Dispose the helper. This method can be used to clean up the script helper * after the script is run. + * @deprecated This method is deprecated since version 2.1 and will be removed. + * It should never be called by clients. */ + @Deprecated void dispose(); } Added: sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/ProfilingResourceResolver.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/ProfilingResourceResolver.java?rev=931813&view=auto ============================================================================== --- sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/ProfilingResourceResolver.java (added) +++ sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/ProfilingResourceResolver.java Thu Apr 8 07:32:03 2010 @@ -0,0 +1,102 @@ +/* + * 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; + +import java.util.Iterator; +import java.util.Map; + +import javax.servlet.http.HttpServletRequest; + +import org.apache.sling.api.resource.Resource; +import org.apache.sling.api.resource.ResourceResolver; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class ProfilingResourceResolver implements ResourceResolver { + + private final ResourceResolver delegatee; + + private final Logger logger = LoggerFactory.getLogger(this.getClass()); + + int getResource; + + public ProfilingResourceResolver(final ResourceResolver delegatee) { + this.delegatee = delegatee; + } + + public AdapterType adaptTo(Class type) { + return delegatee.adaptTo(type); + } + + public void close() { + logger.info("* #getResource({})", getResource); + delegatee.close(); + } + + public Iterator findResources(String query, String language) { + return delegatee.findResources(query, language); + } + + public Resource getResource(Resource base, String path) { + getResource++; + logger.info("* getResource({}, {})", base.getPath(), path); + return delegatee.getResource(base, path); + } + + public Resource getResource(String path) { + getResource++; + logger.info("* getResource({})", path); + return delegatee.getResource(path); + } + + public String[] getSearchPath() { + return delegatee.getSearchPath(); + } + + public Iterator listChildren(Resource parent) { + logger.info("* listChildren({})", parent.getPath()); + return delegatee.listChildren(parent); + } + + public String map(HttpServletRequest request, String resourcePath) { + return delegatee.map(request, resourcePath); + } + + public String map(String resourcePath) { + return delegatee.map(resourcePath); + } + + public Iterator> queryResources(String query, + String language) { + return delegatee.queryResources(query, language); + } + + public Resource resolve(HttpServletRequest request, String absPath) { + return delegatee.resolve(request, absPath); + } + + public Resource resolve(HttpServletRequest request) { + return delegatee.resolve(request); + } + + public Resource resolve(String path) { + logger.info("* resolve({})", path); + return delegatee.resolve(path); + } +} Propchange: sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/ProfilingResourceResolver.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/ProfilingResourceResolver.java ------------------------------------------------------------------------------ svn:keywords = author date id revision rev url Propchange: sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/ProfilingResourceResolver.java ------------------------------------------------------------------------------ svn:mime-type = text/plain Modified: sling/trunk/bundles/scripting/core/src/main/java/org/apache/sling/scripting/core/ScriptHelper.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/core/src/main/java/org/apache/sling/scripting/core/ScriptHelper.java?rev=931813&r1=931812&r2=931813&view=diff ============================================================================== --- sling/trunk/bundles/scripting/core/src/main/java/org/apache/sling/scripting/core/ScriptHelper.java (original) +++ sling/trunk/bundles/scripting/core/src/main/java/org/apache/sling/scripting/core/ScriptHelper.java Thu Apr 8 07:32:03 2010 @@ -41,6 +41,7 @@ import org.apache.sling.scripting.core.i import org.osgi.framework.BundleContext; import org.osgi.framework.InvalidSyntaxException; import org.osgi.framework.ServiceReference; +import org.slf4j.LoggerFactory; /** * Simple script helper providing access to the (wrapped) response, the @@ -208,9 +209,9 @@ public class ScriptHelper implements Sli } /** - * @see org.apache.sling.api.scripting.SlingScriptHelper#dispose() + * Clean up this instance. */ - public void dispose() { + public void cleanup() { final Iterator i = this.references.iterator(); while (i.hasNext()) { final ServiceReference ref = i.next(); @@ -219,4 +220,11 @@ public class ScriptHelper implements Sli this.references.clear(); this.services.clear(); } + + /** + * @see org.apache.sling.api.scripting.SlingScriptHelper#dispose() + */ + public void dispose() { + LoggerFactory.getLogger(this.getClass()).error("ScriptHelper#dispose has been called. This method is deprecated and should never be called by clients!"); + } } Modified: sling/trunk/bundles/scripting/core/src/main/java/org/apache/sling/scripting/core/impl/DefaultSlingScript.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/core/src/main/java/org/apache/sling/scripting/core/impl/DefaultSlingScript.java?rev=931813&r1=931812&r2=931813&view=diff ============================================================================== --- sling/trunk/bundles/scripting/core/src/main/java/org/apache/sling/scripting/core/impl/DefaultSlingScript.java (original) +++ sling/trunk/bundles/scripting/core/src/main/java/org/apache/sling/scripting/core/impl/DefaultSlingScript.java Thu Apr 8 07:32:03 2010 @@ -164,6 +164,7 @@ class DefaultSlingScript implements Slin public Object call(SlingBindings props, String method, Object... args) { Bindings bindings = null; Reader reader = null; + boolean disposeScriptHelper = !props.containsKey(SLING); try { bindings = verifySlingBindings(props); @@ -248,13 +249,7 @@ class DefaultSlingScript implements Slin cause); } finally { - // dispose of the SlingScriptHelper - if ( bindings != null ) { - final SlingScriptHelper helper = (SlingScriptHelper) bindings.get(SLING); - if ( helper != null ) { - helper.dispose(); - } - } + requestResourceResolver.remove(); // close the script reader (SLING-380) if (reader != null) { @@ -264,7 +259,15 @@ class DefaultSlingScript implements Slin // don't care } } - requestResourceResolver.remove(); + + // dispose of the SlingScriptHelper + if ( bindings != null && disposeScriptHelper ) { + final ScriptHelper helper = (ScriptHelper) bindings.get(SLING); + if ( helper != null ) { + helper.cleanup(); + } + } + } }