svn commit: r1557667 - in /sling/trunk/bundles/extensions/healthcheck/core/src/main/java/org/apache/sling/hc/core/impl/executor: HealthCheckExecutorImpl.java HealthCheckResultCache.java

2014-01-13 Thread cziegeler
Author: cziegeler
Date: Mon Jan 13 09:01:27 2014
New Revision: 1557667

URL: http://svn.apache.org/r1557667
Log:
SLING-3278 : Provide a HealthCheckExecutor service. Simplify code for single 
reference execution, remove cached entry if service is unregistered

Modified:

sling/trunk/bundles/extensions/healthcheck/core/src/main/java/org/apache/sling/hc/core/impl/executor/HealthCheckExecutorImpl.java

sling/trunk/bundles/extensions/healthcheck/core/src/main/java/org/apache/sling/hc/core/impl/executor/HealthCheckResultCache.java

Modified: 
sling/trunk/bundles/extensions/healthcheck/core/src/main/java/org/apache/sling/hc/core/impl/executor/HealthCheckExecutorImpl.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/healthcheck/core/src/main/java/org/apache/sling/hc/core/impl/executor/HealthCheckExecutorImpl.java?rev=1557667r1=1557666r2=1557667view=diff
==
--- 
sling/trunk/bundles/extensions/healthcheck/core/src/main/java/org/apache/sling/hc/core/impl/executor/HealthCheckExecutorImpl.java
 (original)
+++ 
sling/trunk/bundles/extensions/healthcheck/core/src/main/java/org/apache/sling/hc/core/impl/executor/HealthCheckExecutorImpl.java
 Mon Jan 13 09:01:27 2014
@@ -44,12 +44,17 @@ import org.apache.sling.commons.osgi.Pro
 import org.apache.sling.commons.threads.ModifiableThreadPoolConfig;
 import org.apache.sling.commons.threads.ThreadPool;
 import org.apache.sling.commons.threads.ThreadPoolManager;
+import org.apache.sling.hc.api.HealthCheck;
 import org.apache.sling.hc.api.Result;
 import org.apache.sling.hc.api.execution.HealthCheckExecutionResult;
 import org.apache.sling.hc.api.execution.HealthCheckExecutor;
 import org.apache.sling.hc.util.HealthCheckFilter;
 import org.apache.sling.hc.util.HealthCheckMetadata;
 import org.osgi.framework.BundleContext;
+import org.osgi.framework.Constants;
+import org.osgi.framework.InvalidSyntaxException;
+import org.osgi.framework.ServiceEvent;
+import org.osgi.framework.ServiceListener;
 import org.osgi.framework.ServiceReference;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -62,7 +67,7 @@ import org.slf4j.LoggerFactory;
 @Component(label = Apache Sling Health Check Executor,
 description = Runs health checks for a given list of tags in 
parallel.,
 metatype = true, immediate = true)
-public class HealthCheckExecutorImpl implements ExtendedHealthCheckExecutor {
+public class HealthCheckExecutorImpl implements ExtendedHealthCheckExecutor, 
ServiceListener {
 
 private final Logger logger = LoggerFactory.getLogger(this.getClass());
 
@@ -93,7 +98,7 @@ public class HealthCheckExecutorImpl imp
 
 private long resultCacheTtlInMs;
 
-private HealthCheckResultCache healthCheckResultCache = new 
HealthCheckResultCache();
+private final HealthCheckResultCache healthCheckResultCache = new 
HealthCheckResultCache();
 
 private MapHealthCheckMetadata, HealthCheckFuture stillRunningFutures = 
new ConcurrentHashMapHealthCheckMetadata, HealthCheckFuture();
 
@@ -112,6 +117,14 @@ public class HealthCheckExecutorImpl imp
 hcThreadPool = threadPoolManager.create(hcThreadPoolConfig, Health 
Check Thread Pool);
 
 this.modified(properties);
+
+try {
+this.bundleContext.addServiceListener(this, (
++ Constants.OBJECTCLASS + = + 
HealthCheck.class.getName() + ));
+} catch (final InvalidSyntaxException ise) {
+// this should really never happen as the expression above is 
constant
+throw new RuntimeException(Unexpected exception occured., ise);
+}
 }
 
 @Modified
@@ -137,7 +150,17 @@ public class HealthCheckExecutorImpl imp
 @Deactivate
 protected final void deactivate() {
 threadPoolManager.release(hcThreadPool);
+this.bundleContext.removeServiceListener(this);
 this.bundleContext = null;
+this.healthCheckResultCache.clear();
+}
+
+@Override
+public void serviceChanged(final ServiceEvent event) {
+if ( event.getType() == ServiceEvent.UNREGISTERING ) {
+final Long serviceId = 
(Long)event.getServiceReference().getProperty(Constants.SERVICE_ID);
+this.healthCheckResultCache.removeCachedResult(serviceId);
+}
 }
 
 /**
@@ -162,11 +185,8 @@ public class HealthCheckExecutorImpl imp
  */
 @Override
 public HealthCheckExecutionResult execute(final ServiceReference ref) {
-final ListHealthCheckExecutionResult result = this.execute(new 
ServiceReference[] {ref});
-if ( result.size()  0 ) {
-return result.get(0);
-}
-return null;
+final HealthCheckMetadata metadata = this.getHealthCheckMetadata(ref);
+return createResultsForDescriptor(metadata);
 }
 
 /**
@@ -177,7 +197,7 @@ public class HealthCheckExecutorImpl imp
 stopWatch.start();
 
 final 

svn commit: r1557739 - in /sling/trunk/bundles/extensions/healthcheck/support/src/main: java/org/apache/sling/hc/healthchecks/ java/org/apache/sling/hc/support/impl/ resources/

2014-01-13 Thread cziegeler
Author: cziegeler
Date: Mon Jan 13 14:54:54 2014
New Revision: 1557739

URL: http://svn.apache.org/r1557739
Log:
Inline metatype information - no functional changes

Removed:

sling/trunk/bundles/extensions/healthcheck/support/src/main/java/org/apache/sling/hc/healthchecks/
sling/trunk/bundles/extensions/healthcheck/support/src/main/resources/
Modified:

sling/trunk/bundles/extensions/healthcheck/support/src/main/java/org/apache/sling/hc/support/impl/DefaultLoginsHealthCheck.java

sling/trunk/bundles/extensions/healthcheck/support/src/main/java/org/apache/sling/hc/support/impl/SlingRequestStatusHealthCheck.java

Modified: 
sling/trunk/bundles/extensions/healthcheck/support/src/main/java/org/apache/sling/hc/support/impl/DefaultLoginsHealthCheck.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/healthcheck/support/src/main/java/org/apache/sling/hc/support/impl/DefaultLoginsHealthCheck.java?rev=1557739r1=1557738r2=1557739view=diff
==
--- 
sling/trunk/bundles/extensions/healthcheck/support/src/main/java/org/apache/sling/hc/support/impl/DefaultLoginsHealthCheck.java
 (original)
+++ 
sling/trunk/bundles/extensions/healthcheck/support/src/main/java/org/apache/sling/hc/support/impl/DefaultLoginsHealthCheck.java
 Mon Jan 13 14:54:54 2014
@@ -48,18 +48,29 @@ import org.slf4j.LoggerFactory;
 name=org.apache.sling.hc.support.DefaultLoginsHealthCheck,
 configurationFactory=true,
 policy=ConfigurationPolicy.REQUIRE,
-metatype=true)
+metatype=true,
+label=Apache Sling Default Logins Health Check,
+description=Expects default logins to fail, used to verify  +
+that they are disabled on production systems)
 @Properties({
-@Property(name=HealthCheck.NAME),
-@Property(name=HealthCheck.TAGS, unbounded=PropertyUnbounded.ARRAY),
-@Property(name=HealthCheck.MBEAN_NAME)
+@Property(name=HealthCheck.NAME,
+label=Health Check Name, description=Name of this Health Check 
service.),
+@Property(name=HealthCheck.TAGS, unbounded=PropertyUnbounded.ARRAY,
+ label=Health Check tags, description=List of tags for this 
Health Check service, used to select  +
+   subsets of Health Check services for execution),
+@Property(name=HealthCheck.MBEAN_NAME,
+ label=MBean Name, description=Name of the MBean to create for 
this Health Check.)
 })
 @Service(value=HealthCheck.class)
 public class DefaultLoginsHealthCheck implements HealthCheck {
 
 private final Logger log = LoggerFactory.getLogger(getClass());
 
-@Property(unbounded=PropertyUnbounded.ARRAY)
+@Property(unbounded=PropertyUnbounded.ARRAY,
+label=Login credentials,
+description=Which credentials to check. Each one is in the format 
\user:password\  +
+like \admin:admin\ for example. Do *not* put any 
confidential passwords here, the goal  +
+is just to check that the default/demo logins, which 
passwords are known anyway, are disabled.)
 private static final String PROP_LOGINS = logins;
 
 private ListString logins;

Modified: 
sling/trunk/bundles/extensions/healthcheck/support/src/main/java/org/apache/sling/hc/support/impl/SlingRequestStatusHealthCheck.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/healthcheck/support/src/main/java/org/apache/sling/hc/support/impl/SlingRequestStatusHealthCheck.java?rev=1557739r1=1557738r2=1557739view=diff
==
--- 
sling/trunk/bundles/extensions/healthcheck/support/src/main/java/org/apache/sling/hc/support/impl/SlingRequestStatusHealthCheck.java
 (original)
+++ 
sling/trunk/bundles/extensions/healthcheck/support/src/main/java/org/apache/sling/hc/support/impl/SlingRequestStatusHealthCheck.java
 Mon Jan 13 14:54:54 2014
@@ -47,11 +47,17 @@ import org.slf4j.LoggerFactory;
 name=org.apache.sling.hc.support.SlingRequestStatusHealthCheck,
 configurationFactory=true,
 policy=ConfigurationPolicy.REQUIRE,
-metatype=true)
+metatype=true,
+label=Apache Sling Request Status Health Check,
+description=Checks the HTTP status of Sling requests.)
 @Properties({
-@Property(name=HealthCheck.NAME),
-@Property(name=HealthCheck.TAGS, unbounded=PropertyUnbounded.ARRAY),
-@Property(name=HealthCheck.MBEAN_NAME)
+@Property(name=HealthCheck.NAME,
+label=Health Check Name, description=Name of this Health Check 
service.),
+@Property(name=HealthCheck.TAGS, unbounded=PropertyUnbounded.ARRAY,
+ label=Health Check tags, description=List of tags for this 
Health Check service, used to select  +
+   subsets of Health Check services for execution),
+@Property(name=HealthCheck.MBEAN_NAME,
+ label=MBean Name, description=Name of the MBean to 

svn commit: r1557742 - /sling/trunk/bundles/servlets/post/src/main/java/org/apache/sling/servlets/post/impl/helper/ChunkCleanUpTask.java

2014-01-13 Thread cziegeler
Author: cziegeler
Date: Mon Jan 13 14:58:39 2014
New Revision: 1557742

URL: http://svn.apache.org/r1557742
Log:
Correct metatype info

Modified:

sling/trunk/bundles/servlets/post/src/main/java/org/apache/sling/servlets/post/impl/helper/ChunkCleanUpTask.java

Modified: 
sling/trunk/bundles/servlets/post/src/main/java/org/apache/sling/servlets/post/impl/helper/ChunkCleanUpTask.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/servlets/post/src/main/java/org/apache/sling/servlets/post/impl/helper/ChunkCleanUpTask.java?rev=1557742r1=1557741r2=1557742view=diff
==
--- 
sling/trunk/bundles/servlets/post/src/main/java/org/apache/sling/servlets/post/impl/helper/ChunkCleanUpTask.java
 (original)
+++ 
sling/trunk/bundles/servlets/post/src/main/java/org/apache/sling/servlets/post/impl/helper/ChunkCleanUpTask.java
 Mon Jan 13 14:58:39 2014
@@ -60,7 +60,7 @@ import org.slf4j.LoggerFactory;
  * default workspace assuming users are stored in that workspace and the
  * administrative user has full access.
  */
-@Component(metatype = true, label = Sling Post Chunk Upload : Cleanup Task, 
description = Task to regularly purge incomplete chunks from the repository)
+@Component(metatype = true, label = Apache Sling Post Chunk Upload : Cleanup 
Task, description = Task to regularly purge incomplete chunks from the 
repository)
 @Service(value = Runnable.class)
 @Properties({
 @Property(name = scheduler.expression, value = 31 41 0/12 * * ?, label 
= Schedule, description = Cron expression scheudling this job. Default is 
hourly 17m23s after the hour. 
@@ -158,7 +158,7 @@ public class ChunkCleanUpTask implements
  * eligible the age of last
  * {@link SlingPostConstants#NT_SLING_CHUNK_NODETYPE} uploaded should be
  * greater than @link {@link #chunkCleanUpAge}
- * 
+ *
  * @param node {@link Node} containing
  *{@link SlingPostConstants#NT_SLING_CHUNK_NODETYPE}
  *{@link Node}s




[CONF] Apache Sling Sling book

2014-01-13 Thread Robert Munteanu (Confluence)














  


Robert Munteanu created a page:
 


Sling book   





Page for gathering objectives and implementation ideas regarding the Sling book initiative initially discussed in the [Happy new year] A new year with Sling (2013 Recap and a whishlist for 2014) mailing list thread.
Requirements ( unstructured )

The golden goal would be a book covering all the stable parts of sling. IMHO it is essential for the success of Sling in the next years to flatten the learningcurve.

Implementation ideas

use the recently contributed samples/mail-archive as the supporting app for a more complete description of how to write Sling apps






 View Online   Like  
 Stop watching space   Manage Notifications  


 


 


  This message was sent by Atlassian Confluence 5.0.3, Team Collaboration Software  






svn commit: r1557909 - in /sling/trunk/bundles/scripting/javascript: ./ src/main/java/org/apache/sling/scripting/javascript/wrapper/

2014-01-13 Thread fmeschbe
Author: fmeschbe
Date: Tue Jan 14 02:35:01 2014
New Revision: 1557909

URL: http://svn.apache.org/r1557909
Log:
SLING-3308 Upgrade to Rhino 1.7R4

Apply extended patch by Rohit Kumar (Thanks alot !). Extensions to
the original patch are checking all wrapper objects whether the
wrapped field needs a null check.

Modified:
sling/trunk/bundles/scripting/javascript/pom.xml

sling/trunk/bundles/scripting/javascript/src/main/java/org/apache/sling/scripting/javascript/wrapper/ScriptableCalendar.java

sling/trunk/bundles/scripting/javascript/src/main/java/org/apache/sling/scripting/javascript/wrapper/ScriptableItemMap.java

sling/trunk/bundles/scripting/javascript/src/main/java/org/apache/sling/scripting/javascript/wrapper/ScriptableNode.java

sling/trunk/bundles/scripting/javascript/src/main/java/org/apache/sling/scripting/javascript/wrapper/ScriptableProperty.java

sling/trunk/bundles/scripting/javascript/src/main/java/org/apache/sling/scripting/javascript/wrapper/ScriptableResource.java

Modified: sling/trunk/bundles/scripting/javascript/pom.xml
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/javascript/pom.xml?rev=1557909r1=1557908r2=1557909view=diff
==
--- sling/trunk/bundles/scripting/javascript/pom.xml (original)
+++ sling/trunk/bundles/scripting/javascript/pom.xml Tue Jan 14 02:35:01 2014
@@ -137,9 +137,9 @@
 artifactIdjcr/artifactId
 /dependency
 dependency
-groupIdrhino/groupId
-artifactIdjs/artifactId
-version1.6R6/version
+groupIdorg.mozilla/groupId
+artifactIdrhino/artifactId
+version1.7R4/version
 /dependency
 dependency
 groupIdorg.slf4j/groupId

Modified: 
sling/trunk/bundles/scripting/javascript/src/main/java/org/apache/sling/scripting/javascript/wrapper/ScriptableCalendar.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/javascript/src/main/java/org/apache/sling/scripting/javascript/wrapper/ScriptableCalendar.java?rev=1557909r1=1557908r2=1557909view=diff
==
--- 
sling/trunk/bundles/scripting/javascript/src/main/java/org/apache/sling/scripting/javascript/wrapper/ScriptableCalendar.java
 (original)
+++ 
sling/trunk/bundles/scripting/javascript/src/main/java/org/apache/sling/scripting/javascript/wrapper/ScriptableCalendar.java
 Tue Jan 14 02:35:01 2014
@@ -19,7 +19,6 @@ package org.apache.sling.scripting.javas
 import java.text.SimpleDateFormat;
 import java.util.Calendar;
 import java.util.GregorianCalendar;
-
 import org.apache.sling.scripting.javascript.SlingWrapper;
 import org.mozilla.javascript.ScriptRuntime;
 import org.mozilla.javascript.Scriptable;
@@ -31,12 +30,17 @@ public class ScriptableCalendar extends 
 
public static final String CLASSNAME = Calendar;
private SimpleDateFormat calendarFormat;
-   
+
/** Calendar is a class, not an interface - so we need to enumerate 
possible implementations here */
 public static final Class? [] WRAPPED_CLASSES = { Calendar.class, 
GregorianCalendar.class };
 
+/**
+ * The wrapped Calendar. Will be {@code null} if the
+ * {@link #jsConstructor(Object)} method is not called, which particularly
+ * is the case for the Calendar host object prototype.
+ */
private Calendar calendar;
-   
+
 public Class?[] getWrappedClasses() {
return WRAPPED_CLASSES;
}
@@ -44,7 +48,7 @@ public class ScriptableCalendar extends 
 public void jsConstructor(Object o) {
 this.calendar = (Calendar) o;
 }
-   
+
 @Override
 public Object get(String name, Scriptable start) {
 
@@ -57,14 +61,14 @@ public class ScriptableCalendar extends 
 if(calendar == null) {
 return Undefined.instance;
 }
-
+
 if(date.equals(name)) {
return ScriptRuntime.toObject(this, calendar.getTime());
 }
-
+
 return getNative(name, start);
 }
-
+
@Override
protected Class? getStaticType() {
return Calendar.class;
@@ -92,7 +96,7 @@ public class ScriptableCalendar extends 
 }
 return calendarFormat.format(calendar.getTime());
}
-   
+
 public Object unwrap() {
 return calendar;
 }

Modified: 
sling/trunk/bundles/scripting/javascript/src/main/java/org/apache/sling/scripting/javascript/wrapper/ScriptableItemMap.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/javascript/src/main/java/org/apache/sling/scripting/javascript/wrapper/ScriptableItemMap.java?rev=1557909r1=1557908r2=1557909view=diff
==
---