You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ra...@apache.org on 2016/04/08 11:38:23 UTC

svn commit: r1738224 - in /sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl: compiler/ engine/compiled/ engine/extension/use/

Author: radu
Date: Fri Apr  8 09:38:23 2016
New Revision: 1738224

URL: http://svn.apache.org/viewvc?rev=1738224&view=rev
Log:
trivial: enhanced debug logging

Modified:
    sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/SightlyJavaCompilerService.java
    sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/UnitChangeMonitor.java
    sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/compiled/SourceIdentifier.java
    sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/JavaUseProvider.java

Modified: sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/SightlyJavaCompilerService.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/SightlyJavaCompilerService.java?rev=1738224&r1=1738223&r2=1738224&view=diff
==============================================================================
--- sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/SightlyJavaCompilerService.java (original)
+++ sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/SightlyJavaCompilerService.java Fri Apr  8 09:38:23 2016
@@ -98,24 +98,31 @@ public class SightlyJavaCompilerService
      * @throws CompilerException in case of any runtime exception
      */
     public Object getInstance(RenderContext renderContext, String className) {
+        LOG.debug("Attempting to load class {}.", className);
         if (className.contains(".")) {
             if (unitChangeMonitor.getLastModifiedDateForJavaUseObject(className) > 0) {
                 // it looks like the POJO comes from the repo and it was changed since it was last loaded
+                LOG.debug("Class {} identifies a POJO from the repository that was changed since the last time it was instantiated.",
+                        className);
                 Object result = compileRepositoryJavaClass(renderContext.getScriptResourceResolver(), className);
                 unitChangeMonitor.clearJavaUseObject(className);
                 return result;
             }
             try {
                 // the object either comes from a bundle or from the repo but it was not registered by the UnitChangeMonitor
+                LOG.debug("Attempting to load class {} from the classloader cache.", className);
                 return loadObject(className);
             } catch (CompilerException cex) {
                 // the object definitely doesn't come from a bundle so we should attempt to compile it from the repo
+                LOG.debug("Class {} identifies a POJO from the repository and it needs to be compiled.", className);
                 return compileRepositoryJavaClass(renderContext.getScriptResourceResolver(), className);
             }
         } else {
             Resource pojoResource = UseProviderUtils.locateScriptResource(renderContext, className + ".java");
             if (pojoResource != null) {
-                return getInstance(renderContext, Utils.getJavaNameFromPath(pojoResource.getPath()));
+                String fqcn = Utils.getJavaNameFromPath(pojoResource.getPath());
+                LOG.debug("Class {} has FQCN {}.", className, fqcn);
+                return getInstance(renderContext, fqcn);
             }
         }
         throw new SightlyException("Cannot find class " + className + ".");
@@ -135,6 +142,7 @@ public class SightlyJavaCompilerService
                 readLock.unlock();
                 writeLock.lock();
                 try {
+                    LOG.debug("Need to recompile {}.", sourceIdentifier.toString());
                     return internalCompileSource(sourceCode, sourceIdentifier.getFullyQualifiedName());
                 } finally {
                     // downgrade write lock since we've probably compiled the source code by now
@@ -142,6 +150,7 @@ public class SightlyJavaCompilerService
                     writeLock.unlock();
                 }
             } else {
+                LOG.debug("No need to recompile {}, loading it from the classloader cache.", sourceIdentifier.toString());
                 return classLoaderWriter.getClassLoader().loadClass(sourceIdentifier.getFullyQualifiedName()).newInstance();
             }
         } catch (Exception e) {
@@ -187,9 +196,8 @@ public class SightlyJavaCompilerService
         if (errors != null && errors.size() > 0) {
             throw new CompilerException(CompilerException.CompilerExceptionCause.COMPILER_ERRORS, createErrorMsg(errors));
         }
-        if (LOG.isDebugEnabled()) {
-            LOG.debug("script compiled: {}", compilationResult.didCompile());
-            LOG.debug("compilation took {}ms", end - start);
+        if (compilationResult.didCompile()) {
+            LOG.debug("Class {} was compiled in {}ms.", fqcn, end - start);
         }
         /**
          * the class loader might have become dirty, so let the {@link ClassLoaderWriter} decide which class loader to return

Modified: sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/UnitChangeMonitor.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/UnitChangeMonitor.java?rev=1738224&r1=1738223&r2=1738224&view=diff
==============================================================================
--- sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/UnitChangeMonitor.java (original)
+++ sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/compiler/UnitChangeMonitor.java Fri Apr  8 09:38:23 2016
@@ -154,8 +154,10 @@ public class UnitChangeMonitor {
     private void processEvent(Event event) {
         String path = (String) event.getProperty(SlingConstants.PROPERTY_PATH);
         String topic = event.getTopic();
+        LOG.debug("Received event {} for path {}.", topic, path);
         if (SlingConstants.TOPIC_RESOURCE_ADDED.equals(topic) || SlingConstants.TOPIC_RESOURCE_CHANGED.equals(topic)) {
             if (path.endsWith(".java")) {
+                LOG.debug("Java Use Object {} was {}.", path, topic);
                 slyJavaUseMap.put(Utils.getJavaNameFromPath(path), System.currentTimeMillis());
             } else if (path.endsWith(SightlyScriptEngineFactory.EXTENSION)) {
                 ResourceResolver resolver = null;
@@ -175,12 +177,15 @@ public class UnitChangeMonitor {
                 if (StringUtils.isEmpty(encoding)) {
                     encoding = sightlyEngineConfiguration.getEncoding();
                 }
+                LOG.debug("Sightly script {} was {}.", path, topic);
                 slyScriptsMap.put(path, new SightlyScriptMetaInfo(encoding, System.currentTimeMillis()));
             }
         } else if (SlingConstants.TOPIC_RESOURCE_REMOVED.equals(topic)) {
             if (path.endsWith(".java")) {
+                LOG.debug("Removed Java Use Object {} from UnitChangeMonitor cache.", path);
                 slyJavaUseMap.remove(Utils.getJavaNameFromPath(path));
             } else if (path.endsWith(SightlyScriptEngineFactory.EXTENSION)) {
+                LOG.debug("Removed script {} from UnitChangeMonitor cache.", path);
                 slyScriptsMap.remove(path);
             }
         }

Modified: sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/compiled/SourceIdentifier.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/compiled/SourceIdentifier.java?rev=1738224&r1=1738223&r2=1738224&view=diff
==============================================================================
--- sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/compiled/SourceIdentifier.java (original)
+++ sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/compiled/SourceIdentifier.java Fri Apr  8 09:38:23 2016
@@ -126,4 +126,8 @@ public class SourceIdentifier {
         return scriptName.substring(lastDotIndex);
     }
 
+    @Override
+    public String toString() {
+        return "SourceIdentifier { resourcePath=" + resource.getPath() + ", fqcn=" + fullyQualifiedName + " }";
+    }
 }

Modified: sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/JavaUseProvider.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/JavaUseProvider.java?rev=1738224&r1=1738223&r2=1738224&view=diff
==============================================================================
--- sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/JavaUseProvider.java (original)
+++ sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/JavaUseProvider.java Fri Apr  8 09:38:23 2016
@@ -88,9 +88,11 @@ public class JavaUseProvider implements
 
         Object result;
         try {
+            LOG.debug("Attempting to load class {} from the classloader cache.", identifier);
             Class<?> cls = classLoaderWriter.getClassLoader().loadClass(identifier);
             if (unitChangeMonitor.getLastModifiedDateForJavaUseObject(identifier) > 0) {
                 // the object is a POJO that was changed in the repository but not recompiled;
+                LOG.debug("Class {} was available in the classloader cache but it needs to be recompiled.");
                 result = sightlyJavaCompilerService.getInstance(renderContext, identifier);
                 if (result instanceof Use) {
                     ((Use) result).init(BindingsUtils.merge(globalBindings, arguments));
@@ -124,6 +126,7 @@ public class JavaUseProvider implements
             /**
              * this object is either not exported from a bundle, or it's a POJO from the repository that wasn't loaded before
              */
+            LOG.debug("Class {} was not found in the classloader cache.", identifier);
             result = sightlyJavaCompilerService.getInstance(renderContext, identifier);
             if (result instanceof Use) {
                 ((Use) result).init(BindingsUtils.merge(globalBindings, arguments));