svn commit: r1632217 - in /sling/trunk/bundles/extensions/event/src: main/java/org/apache/sling/event/impl/jobs/ main/java/org/apache/sling/event/impl/jobs/queues/ main/java/org/apache/sling/event/imp
Author: cziegeler Date: Thu Oct 16 06:52:39 2014 New Revision: 1632217 URL: http://svn.apache.org/r1632217 Log: SLING-4048 : Avoid keeping jobs in memory. Refactor job traversal and implement different queue strategies (WiP) Added: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobTopicTraverser.java - copied, changed from r1632213, sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/topics/JobTopicTraverser.java sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/topology/CheckTopologyTask.java - copied, changed from r1632213, sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/topology/MaintenanceTask.java sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/topology/FindUnfinishedJobsTask.java - copied, changed from r1632213, sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/topology/RestartTask.java Removed: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/topics/JobTopicTraverser.java sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/topology/MaintenanceTask.java sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/topology/RestartTask.java Modified: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/queues/AbstractJobQueue.java sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/tasks/HistoryCleanUpTask.java sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/topics/QueueJobCache.java sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/topics/TopicManager.java sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/topology/TopologyHandler.java sling/trunk/bundles/extensions/event/src/test/java/org/apache/sling/event/it/OrderedQueueTest.java Copied: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobTopicTraverser.java (from r1632213, sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/topics/JobTopicTraverser.java) URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobTopicTraverser.java?p2=sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobTopicTraverser.java&p1=sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/topics/JobTopicTraverser.java&r1=1632213&r2=1632217&rev=1632217&view=diff == --- sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/topics/JobTopicTraverser.java (original) +++ sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobTopicTraverser.java Thu Oct 16 06:52:39 2014 @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.sling.event.impl.jobs.topics; +package org.apache.sling.event.impl.jobs; import java.util.ArrayList; import java.util.Collections; @@ -24,20 +24,68 @@ import java.util.Iterator; import java.util.List; import org.apache.sling.api.resource.Resource; -import org.apache.sling.event.impl.jobs.JobImpl; -import org.apache.sling.event.impl.jobs.Utility; import org.slf4j.Logger; +/** + * The job topic traverser is an utility class to traverse all jobs + * of a specific topic in order of creation. + */ public class JobTopicTraverser { -public interface Handler { +/** + * Callback called for each found job. + */ +public interface JobCallback { + +/** + * Callback handle for a job + * @param job The job to handle + * @return true If processing should continue, false otherwise. + */ boolean handle(final JobImpl job); } +/** + * Callback called for each found resource. + */ +public interface ResourceCallback { + +/** + * Callback handle for a resource + * @param rsrc The resource to handle + * @return true If processing should continue, false otherwise. + */ +boolean handle(final Resource rsrc); +} + +/** + * Traverse the topic and call the callback for each found job. + * + * Once the callback notifies to stop traversing by returning false, the current minute + * will be processed completely (to ensure correct ordering of jobs) and then the + * traversal stops. + * + * @param loggerThe logger to use for debug logging + * @param topicResource The topic resource + * @param handler The callback + */ +public static v
svn commit: r1632186 - in /sling/trunk/testing/mocks/sling-mock/src: main/java/org/apache/sling/testing/mock/sling/servlet/MockSlingHttpServletResponse.java test/java/org/apache/sling/testing/mock/sli
Author: sseifert Date: Wed Oct 15 22:03:29 2014 New Revision: 1632186 URL: http://svn.apache.org/r1632186 Log: SLING-4042 per default no charencoding should be set in mock response Modified: sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/servlet/MockSlingHttpServletResponse.java sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/servlet/MockSlingHttpServletResponseTest.java Modified: sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/servlet/MockSlingHttpServletResponse.java URL: http://svn.apache.org/viewvc/sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/servlet/MockSlingHttpServletResponse.java?rev=1632186&r1=1632185&r2=1632186&view=diff == --- sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/servlet/MockSlingHttpServletResponse.java (original) +++ sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/servlet/MockSlingHttpServletResponse.java Wed Oct 15 22:03:29 2014 @@ -26,7 +26,6 @@ import javax.servlet.ServletOutputStream import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletResponse; -import org.apache.commons.lang3.CharEncoding; import org.apache.commons.lang3.StringUtils; import org.apache.sling.api.SlingHttpServletResponse; import org.apache.sling.api.adapter.SlingAdaptable; @@ -39,7 +38,7 @@ public class MockSlingHttpServletRespons private static final String CHARSET_SEPARATOR = ";charset="; private String contentType; -private String characterEncoding = CharEncoding.ISO_8859_1; +private String characterEncoding; private int contentLength; private int status = HttpServletResponse.SC_OK; private int bufferSize = 1024 * 8; Modified: sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/servlet/MockSlingHttpServletResponseTest.java URL: http://svn.apache.org/viewvc/sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/servlet/MockSlingHttpServletResponseTest.java?rev=1632186&r1=1632185&r2=1632186&view=diff == --- sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/servlet/MockSlingHttpServletResponseTest.java (original) +++ sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/servlet/MockSlingHttpServletResponseTest.java Wed Oct 15 22:03:29 2014 @@ -47,11 +47,19 @@ public class MockSlingHttpServletRespons @Test public void testContentTypeCharset() throws Exception { assertNull(response.getContentType()); -assertEquals(CharEncoding.ISO_8859_1, response.getCharacterEncoding()); +assertNull(response.getCharacterEncoding()); +response.setContentType("image/gif"); +assertEquals("image/gif", response.getContentType()); +assertNull(response.getCharacterEncoding()); + response.setContentType("text/plain;charset=UTF-8"); assertEquals("text/plain;charset=UTF-8", response.getContentType()); assertEquals(CharEncoding.UTF_8, response.getCharacterEncoding()); + +response.setCharacterEncoding(CharEncoding.ISO_8859_1); +assertEquals("text/plain;charset=ISO-8859-1", response.getContentType()); +assertEquals(CharEncoding.ISO_8859_1, response.getCharacterEncoding()); } @Test
svn commit: r1632142 - in /sling/trunk/bundles/extensions/event/src: main/java/org/apache/sling/event/impl/jobs/ main/java/org/apache/sling/event/impl/jobs/console/ main/java/org/apache/sling/event/im
Author: cziegeler Date: Wed Oct 15 17:57:24 2014 New Revision: 1632142 URL: http://svn.apache.org/r1632142 Log: SLING-4048 : Avoid keeping jobs in memory. Rewrite statistics, queue and topic handling (WiP) Added: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/topology/ - copied from r1632139, sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/topology/ Removed: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/topology/ Modified: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobConsumerManager.java sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobManagerImpl.java sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobSchedulerImpl.java sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/MaintenanceTask.java sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/console/InventoryPlugin.java sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/console/WebConsolePlugin.java sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/topics/TopicManager.java sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/topology/MaintenanceTask.java sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/topology/RestartTask.java sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/topology/TopologyAware.java sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/topology/TopologyCapabilities.java sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/topology/TopologyHandler.java sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/topology/UpgradeTask.java sling/trunk/bundles/extensions/event/src/test/java/org/apache/sling/event/impl/jobs/InstanceDescriptionComparatorTest.java Modified: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobConsumerManager.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobConsumerManager.java?rev=1632142&r1=1632141&r2=1632142&view=diff == --- sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobConsumerManager.java (original) +++ sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobConsumerManager.java Wed Oct 15 17:57:24 2014 @@ -40,9 +40,9 @@ import org.apache.felix.scr.annotations. import org.apache.felix.scr.annotations.Service; import org.apache.sling.commons.osgi.PropertiesUtil; import org.apache.sling.discovery.PropertyProvider; +import org.apache.sling.event.impl.jobs.topology.TopologyCapabilities; import org.apache.sling.event.impl.support.TopicMatcher; import org.apache.sling.event.impl.support.TopicMatcherHelper; -import org.apache.sling.event.impl.topology.TopologyCapabilities; import org.apache.sling.event.jobs.Job; import org.apache.sling.event.jobs.consumer.JobConsumer; import org.apache.sling.event.jobs.consumer.JobConsumer.JobResult; Modified: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobManagerImpl.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobManagerImpl.java?rev=1632142&r1=1632141&r2=1632142&view=diff == --- sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobManagerImpl.java (original) +++ sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobManagerImpl.java Wed Oct 15 17:57:24 2014 @@ -52,12 +52,12 @@ import org.apache.sling.event.impl.jobs. import org.apache.sling.event.impl.jobs.queues.AbstractJobQueue; import org.apache.sling.event.impl.jobs.queues.QueueManager; import org.apache.sling.event.impl.jobs.stats.StatisticsManager; +import org.apache.sling.event.impl.jobs.topology.TopologyAware; +import org.apache.sling.event.impl.jobs.topology.TopologyCapabilities; +import org.apache.sling.event.impl.jobs.topology.TopologyHandler; import org.apache.sling.event.impl.support.Environment; import org.apache.sling.event.impl.support.ResourceHelper; import org.apache.sling.event.impl.support.ScheduleInfoImpl; -import org.apache.sling.event.impl.topology.TopologyAware; -import org.apache.sling.event.impl.topology.TopologyCapabilities; -import org.apache.sling.event.impl.topology.TopologyHandler; import org.apache.sling.event.jobs.Job; import org.apache.sling
svn commit: r1632141 [3/3] - in /sling/trunk/bundles/extensions/event: ./ src/main/java/org/apache/sling/event/impl/jobs/ src/main/java/org/apache/sling/event/impl/jobs/config/ src/main/java/org/apach
Added: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/stats/StatisticsManager.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/stats/StatisticsManager.java?rev=1632141&view=auto == --- sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/stats/StatisticsManager.java (added) +++ sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/stats/StatisticsManager.java Wed Oct 15 17:55:52 2014 @@ -0,0 +1,177 @@ +/* + * 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.event.impl.jobs.stats; + +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ConcurrentMap; + +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.event.EventUtil; +import org.apache.sling.event.impl.jobs.JobManagerConfiguration; +import org.apache.sling.event.impl.jobs.TestLogger; +import org.apache.sling.event.impl.jobs.Utility; +import org.apache.sling.event.impl.jobs.config.QueueConfigurationManager; +import org.apache.sling.event.impl.jobs.config.QueueConfigurationManager.QueueInfo; +import org.apache.sling.event.jobs.Job; +import org.apache.sling.event.jobs.NotificationConstants; +import org.apache.sling.event.jobs.Statistics; +import org.apache.sling.event.jobs.TopicStatistics; +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; + +@Component(immediate=true) +@Service(value={EventHandler.class, StatisticsManager.class}) +@Properties({ +@Property(name=EventConstants.EVENT_TOPIC, + value={SlingConstants.TOPIC_RESOURCE_ADDED, + NotificationConstants.TOPIC_JOB_STARTED, + NotificationConstants.TOPIC_JOB_CANCELLED, + NotificationConstants.TOPIC_JOB_FAILED, + NotificationConstants.TOPIC_JOB_FINISHED, + NotificationConstants.TOPIC_JOB_REMOVED}) +}) +// TODO register event handlers on activate to allow for filters! +public class StatisticsManager implements EventHandler { + +/** Logger. */ +private final Logger logger = new TestLogger(LoggerFactory.getLogger(this.getClass())); + +@Reference +private JobManagerConfiguration configuration; + +@Reference +private QueueConfigurationManager queueConfigurationManager; + +/** Current statistics. */ +private final StatisticsImpl baseStatistics = new StatisticsImpl(); + +/** Statistics per topic. */ +private final ConcurrentMap topicStatistics = new ConcurrentHashMap(); + +/** Statistics per queue. */ +private final ConcurrentMap queueStatistics = new ConcurrentHashMap(); + +public Statistics getOverallStatistics() { +return this.baseStatistics; +} + +public Map getTopicStatistics() { +return topicStatistics; +} + +public Statistics getQueueStatistics(final String queueName) { +Statistics queueStats = queueStatistics.get(queueName); +if ( queueStats == null ) { +queueStats = new StatisticsImpl(); +} +return queueStats; +} + +private StatisticsImpl getStatisticsForQueue(final String queueName) { +if ( queueName == null ) { +return null; +} +StatisticsImpl queueStats = (StatisticsImpl)queueStatistics.get(queueName); +if ( queueStats == null ) { +queueStatistics.putIfAbsent(queueName, new StatisticsImpl()); +queueStats = (StatisticsImpl)queueStatistics.get(queueName); +} +return queueStats; +} + +@Override +public void handleEvent(final Event event) { +if ( SlingConstants.TOPIC_RESOURCE_ADDED.equals(event.
svn commit: r1632141 [2/3] - in /sling/trunk/bundles/extensions/event: ./ src/main/java/org/apache/sling/event/impl/jobs/ src/main/java/org/apache/sling/event/impl/jobs/config/ src/main/java/org/apach
Modified: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/queues/AbstractJobQueue.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/queues/AbstractJobQueue.java?rev=1632141&r1=1632140&r2=1632141&view=diff == --- sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/queues/AbstractJobQueue.java (original) +++ sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/queues/AbstractJobQueue.java Wed Oct 15 17:55:52 2014 @@ -19,7 +19,6 @@ package org.apache.sling.event.impl.jobs.queues; import java.util.ArrayList; -import java.util.Collection; import java.util.Dictionary; import java.util.HashMap; import java.util.Hashtable; @@ -30,18 +29,16 @@ import java.util.concurrent.atomic.Atomi import java.util.concurrent.atomic.AtomicInteger; import org.apache.sling.commons.threads.ThreadPool; -import org.apache.sling.commons.threads.ThreadPoolManager; import org.apache.sling.event.EventUtil; import org.apache.sling.event.impl.EventingThreadPool; import org.apache.sling.event.impl.jobs.InternalJobState; -import org.apache.sling.event.impl.jobs.JobConsumerManager; import org.apache.sling.event.impl.jobs.JobExecutionResultImpl; import org.apache.sling.event.impl.jobs.JobHandler; import org.apache.sling.event.impl.jobs.JobImpl; +import org.apache.sling.event.impl.jobs.TestLogger; import org.apache.sling.event.impl.jobs.Utility; import org.apache.sling.event.impl.jobs.config.InternalQueueConfiguration; import org.apache.sling.event.impl.jobs.deprecated.JobStatusNotifier; -import org.apache.sling.event.impl.jobs.stats.StatisticsImpl; import org.apache.sling.event.impl.support.Environment; import org.apache.sling.event.impl.support.ResourceHelper; import org.apache.sling.event.jobs.Job; @@ -52,7 +49,6 @@ import org.apache.sling.event.jobs.consu import org.apache.sling.event.jobs.consumer.JobExecutionResult; import org.apache.sling.event.jobs.consumer.JobExecutor; import org.osgi.service.event.Event; -import org.osgi.service.event.EventAdmin; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -61,97 +57,97 @@ import org.slf4j.LoggerFactory; * functionality for the job event handling. */ public abstract class AbstractJobQueue -extends StatisticsImpl -implements JobStatusNotifier, Queue { - -/** Default number of seconds to wait for an ack. */ -private static final long DEFAULT_WAIT_FOR_ACK_IN_MS = 60 * 1000; // by default we wait 60 secs +implements Queue, JobStatusNotifier { /** Default timeout for suspend. */ private static final long MAX_SUSPEND_TIME = 1000 * 60 * 60; // 60 mins +/** Default number of seconds to wait for an ack. */ +private static final long DEFAULT_WAIT_FOR_ACK_IN_MS = 60 * 1000; // by default we wait 60 secs + /** The logger. */ protected final Logger logger; /** Configuration. */ protected final InternalQueueConfiguration configuration; -/** The event admin. */ -private final EventAdmin eventAdmin; - -/** The job consumer manager. */ -private final JobConsumerManager jobConsumerManager; - /** The queue name. */ protected volatile String queueName; /** Are we still running? */ protected volatile boolean running; -/** Is the queue currently waiting(sleeping) */ -protected volatile boolean isWaiting = false; - -/** The map of events we're have started (send). */ -private final Map startedJobsLists = new HashMap(); - -/** The map of events we're processing. */ -private final Map processsingJobsLists = new HashMap(); - /** Suspended since. */ private volatile long suspendedSince = -1L; /** Suspend lock. */ private final Object suspendLock = new Object(); +/** Services used by the queues. */ +protected final QueueServices services; + +/** The map of events we're processing. */ +private final Map processingJobsLists = new HashMap(); + +private final ThreadPool threadPool; + +/** The map of events we're have started (send). */ +private final Map startedJobsLists = new HashMap(); + /** Async counter. */ private final AtomicInteger asyncCounter = new AtomicInteger(); +/** Is the queue currently waiting(sleeping) */ +protected volatile boolean isWaiting = false; + /** Flag for outdated. */ private final AtomicBoolean isOutdated = new AtomicBoolean(false); -/** Marker flag if the queue is waiting for another element (= empty) */ -protected boolean isWaitingForNext = false; - /** A marker for closing the queue. */ private final AtomicBoolean closeMarker = new AtomicBoolean(false); -private final ThreadPool threadPool; - /** - * Start this queue + * Create a new queue * @pa
svn commit: r1632141 [1/3] - in /sling/trunk/bundles/extensions/event: ./ src/main/java/org/apache/sling/event/impl/jobs/ src/main/java/org/apache/sling/event/impl/jobs/config/ src/main/java/org/apach
Author: cziegeler Date: Wed Oct 15 17:55:52 2014 New Revision: 1632141 URL: http://svn.apache.org/r1632141 Log: SLING-4048 : Avoid keeping jobs in memory. Rewrite statistics, queue and topic handling (WiP) Added: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/TestLogger.java (with props) sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/queues/QueueManager.java (with props) sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/queues/QueueServices.java (with props) sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/stats/StatisticsManager.java (with props) sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/topics/QueueJobCache.java (with props) sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/topics/TopicManager.java (with props) sling/trunk/bundles/extensions/event/src/test/java/org/apache/sling/event/impl/jobs/JobsImplTest.java (with props) Removed: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/BackgroundLoader.java sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/queues/AbstractParallelJobQueue.java sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/queues/TopicRoundRobinJobQueue.java sling/trunk/bundles/extensions/event/src/test/java/org/apache/sling/event/it/DropQueueTest.java sling/trunk/bundles/extensions/event/src/test/java/org/apache/sling/event/it/IgnoreQueueTest.java Modified: sling/trunk/bundles/extensions/event/pom.xml sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobHandler.java sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobImpl.java sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobManagerImpl.java sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/config/InternalQueueConfiguration.java sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/queues/AbstractJobQueue.java (contents, props changed) sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/queues/OrderedJobQueue.java sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/queues/ParallelJobQueue.java sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/topics/JobTopicTraverser.java sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/QueueConfiguration.java sling/trunk/bundles/extensions/event/src/test/java/org/apache/sling/event/it/OrderedQueueTest.java Modified: sling/trunk/bundles/extensions/event/pom.xml URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/pom.xml?rev=1632141&r1=1632140&r2=1632141&view=diff == --- sling/trunk/bundles/extensions/event/pom.xml (original) +++ sling/trunk/bundles/extensions/event/pom.xml Wed Oct 15 17:55:52 2014 @@ -116,7 +116,7 @@ -Xmx2048m -XX:MaxPermSize=512m -**/it/* +**/it/OrderedQueueTest* Modified: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobHandler.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobHandler.java?rev=1632141&r1=1632140&r2=1632141&view=diff == --- sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobHandler.java (original) +++ sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobHandler.java Wed Oct 15 17:55:52 2014 @@ -65,6 +65,8 @@ public class JobHandler { * @return true if rescheduling was successful, false otherwise. */ public boolean reschedule() { +// update event with retry count and retries +this.job.retry(); return this.jobManager.reschedule(this.job); } Modified: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobImpl.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobImpl.java?rev=1632141&r1=1632140&r2=1632141&view=diff == --- sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobImpl.java (original) +++ sling/trunk/bundles/extensions/event/sr
svn commit: r1632101 - in /sling/trunk/launchpad/test-services/src/main/java/org/apache/sling/launchpad/testservices: events/EventsCounterImpl.java serversidetests/ResourceResolverTest.java
Author: bdelacretaz Date: Wed Oct 15 15:55:21 2014 New Revision: 1632101 URL: http://svn.apache.org/r1632101 Log: SLING-4061 - more logging to help troubleshoot Modified: sling/trunk/launchpad/test-services/src/main/java/org/apache/sling/launchpad/testservices/events/EventsCounterImpl.java sling/trunk/launchpad/test-services/src/main/java/org/apache/sling/launchpad/testservices/serversidetests/ResourceResolverTest.java Modified: sling/trunk/launchpad/test-services/src/main/java/org/apache/sling/launchpad/testservices/events/EventsCounterImpl.java URL: http://svn.apache.org/viewvc/sling/trunk/launchpad/test-services/src/main/java/org/apache/sling/launchpad/testservices/events/EventsCounterImpl.java?rev=1632101&r1=1632100&r2=1632101&view=diff == --- sling/trunk/launchpad/test-services/src/main/java/org/apache/sling/launchpad/testservices/events/EventsCounterImpl.java (original) +++ sling/trunk/launchpad/test-services/src/main/java/org/apache/sling/launchpad/testservices/events/EventsCounterImpl.java Wed Oct 15 15:55:21 2014 @@ -73,7 +73,11 @@ public class EventsCounterImpl extends S public int getEventsCount(String topic) { final AtomicInteger counter = counters.get(topic); -return counter == null ? 0 : counter.get(); +if(counter == null) { +log.debug("getEventsCount({}) returns 0, counter not found", topic); +return 0; +} +return counter.get(); } @Override Modified: sling/trunk/launchpad/test-services/src/main/java/org/apache/sling/launchpad/testservices/serversidetests/ResourceResolverTest.java URL: http://svn.apache.org/viewvc/sling/trunk/launchpad/test-services/src/main/java/org/apache/sling/launchpad/testservices/serversidetests/ResourceResolverTest.java?rev=1632101&r1=1632100&r2=1632101&view=diff == --- sling/trunk/launchpad/test-services/src/main/java/org/apache/sling/launchpad/testservices/serversidetests/ResourceResolverTest.java (original) +++ sling/trunk/launchpad/test-services/src/main/java/org/apache/sling/launchpad/testservices/serversidetests/ResourceResolverTest.java Wed Oct 15 15:55:21 2014 @@ -96,6 +96,7 @@ public class ResourceResolverTest { } final int oldEventsCount = eventsCounter.getEventsCount(MAPPING_EVENT_TOPIC); +logger.debug("Waiting for event counter {} to change from current value {}", MAPPING_EVENT_TOPIC, oldEventsCount); session.save(); final long timeout = System.currentTimeMillis() + updateTimeout; while(System.currentTimeMillis() < timeout) { @@ -111,6 +112,7 @@ public class ResourceResolverTest { } } eventTimeoutTopic = MAPPING_EVENT_TOPIC; +logger.error("Timeout waiting for event counter {} to change from current value {}", MAPPING_EVENT_TOPIC, oldEventsCount); fail("Timeout waiting for " + MAPPING_EVENT_TOPIC + " event, after " + updateTimeout + " msec"); }
svn commit: r1632084 - /sling/trunk/launchpad/test-services/src/main/java/org/apache/sling/launchpad/testservices/serversidetests/ResourceResolverTest.java
Author: bdelacretaz Date: Wed Oct 15 15:24:22 2014 New Revision: 1632084 URL: http://svn.apache.org/r1632084 Log: SLING-4061 - fail all following tests upon even timeout, to fail the overall test faster Modified: sling/trunk/launchpad/test-services/src/main/java/org/apache/sling/launchpad/testservices/serversidetests/ResourceResolverTest.java Modified: sling/trunk/launchpad/test-services/src/main/java/org/apache/sling/launchpad/testservices/serversidetests/ResourceResolverTest.java URL: http://svn.apache.org/viewvc/sling/trunk/launchpad/test-services/src/main/java/org/apache/sling/launchpad/testservices/serversidetests/ResourceResolverTest.java?rev=1632084&r1=1632083&r2=1632084&view=diff == --- sling/trunk/launchpad/test-services/src/main/java/org/apache/sling/launchpad/testservices/serversidetests/ResourceResolverTest.java (original) +++ sling/trunk/launchpad/test-services/src/main/java/org/apache/sling/launchpad/testservices/serversidetests/ResourceResolverTest.java Wed Oct 15 15:24:22 2014 @@ -47,6 +47,7 @@ import org.apache.sling.launchpad.testse import org.apache.sling.launchpad.testservices.exported.FakeSlingHttpServletRequest; import org.junit.AfterClass; import org.junit.Before; +import org.junit.BeforeClass; import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; @@ -69,6 +70,7 @@ public class ResourceResolverTest { private String [] vanity; private static List toDelete = new ArrayList(); private static ResourceResolverFactory cleanupResolverFactory; +private static String eventTimeoutTopic; @TestReference private EventsCounter eventsCounter; @@ -88,6 +90,11 @@ public class ResourceResolverTest { * that signals that mappings have been updated. */ private void saveMappings(Session session) throws Exception { +if(eventTimeoutTopic != null) { +// Avoid wasting a lot of time if events are not detected in timely fashion +fail("Event timeout (" + eventTimeoutTopic + ") detected in previous tests, failing saveMappings()"); +} + final int oldEventsCount = eventsCounter.getEventsCount(MAPPING_EVENT_TOPIC); session.save(); final long timeout = System.currentTimeMillis() + updateTimeout; @@ -103,6 +110,7 @@ public class ResourceResolverTest { } catch(InterruptedException ignore) { } } +eventTimeoutTopic = MAPPING_EVENT_TOPIC; fail("Timeout waiting for " + MAPPING_EVENT_TOPIC + " event, after " + updateTimeout + " msec"); } @@ -161,6 +169,12 @@ public class ResourceResolverTest { } @AfterClass +@BeforeClass +public static void clearTimeouts() { +eventTimeoutTopic = null; +} + +@AfterClass public static void deleteTestNodes() throws Exception { final ResourceResolver resolver = cleanupResolverFactory.getAdministrativeResourceResolver(null); final Session session = resolver.adaptTo(Session.class);
svn commit: r1632066 - in /sling/trunk/contrib/extensions/replication: core/src/main/java/org/apache/sling/replication/agent/impl/ core/src/main/java/org/apache/sling/replication/packaging/impl/export
Author: tommaso Date: Wed Oct 15 14:49:14 2014 New Revision: 1632066 URL: http://svn.apache.org/r1632066 Log: SLING-4052 - cleaned up jcr pacakges Removed: sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/serialization/impl/vlt/FileVaultReplicationPackageBuilderFactory.java sling/trunk/contrib/extensions/replication/sample/src/main/resources/SLING-CONTENT/libs/sling/replication/install/org.apache.sling.replication.serialization.impl.vlt.FileVaultReplicationPackageBuilderFactory-vlt.json Modified: sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/impl/DefaultReplicationComponentFactory.java sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/impl/SimpleReplicationAgent.java sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/exporter/AgentReplicationPackageExporter.java sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/exporter/AgentReplicationPackageExporterFactory.java sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/exporter/LocalReplicationPackageExporterFactory.java sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/exporter/RemoteReplicationPackageExporterFactory.java sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/exporter/strategy/DefaultReplicationPackageExporterStrategy.java sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/exporter/strategy/PrivilegeReplicationPackageExporterStrategy.java sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/importer/LocalReplicationPackageImporterFactory.java sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/importer/RemoteReplicationPackageImporterFactory.java sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/serialization/impl/vlt/FileVaultReplicationPackageBuilder.java sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/trigger/ReplicationTriggerRequestHandler.java Modified: sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/impl/DefaultReplicationComponentFactory.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/impl/DefaultReplicationComponentFactory.java?rev=1632066&r1=1632065&r2=1632066&view=diff == --- sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/impl/DefaultReplicationComponentFactory.java (original) +++ sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/impl/DefaultReplicationComponentFactory.java Wed Oct 15 14:49:14 2014 @@ -40,13 +40,13 @@ import org.apache.sling.replication.even import org.apache.sling.replication.packaging.ReplicationPackageExporter; import org.apache.sling.replication.packaging.ReplicationPackageExporterStrategy; import org.apache.sling.replication.packaging.ReplicationPackageImporter; -import org.apache.sling.replication.packaging.impl.exporter.*; +import org.apache.sling.replication.packaging.impl.exporter.AgentReplicationPackageExporter; +import org.apache.sling.replication.packaging.impl.exporter.LocalReplicationPackageExporter; +import org.apache.sling.replication.packaging.impl.exporter.RemoteReplicationPackageExporter; import org.apache.sling.replication.packaging.impl.exporter.strategy.DefaultReplicationPackageExporterStrategy; import org.apache.sling.replication.packaging.impl.exporter.strategy.PrivilegeReplicationPackageExporterStrategy; import org.apache.sling.replication.packaging.impl.importer.LocalReplicationPackageImporter; -import org.apache.sling.replication.packaging.impl.importer.LocalReplicationPackageImporterFactory; import org.apache.sling.replication.packaging.impl.importer.RemoteReplicationPackageImporter; -import org.apache.sling.replication.packaging.impl.importer.RemoteReplicationPackageImporterFactory; import org.apache.sling.replication.queue.ReplicationQueueDistributionStrategy; import org.apache.sling.replication.queue.ReplicationQueueProvider; import org.apache.sling.replication.serialization.ReplicationPackageBuilder; Modified: sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/impl/SimpleReplicationAgent.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/java/org
svn commit: r1632062 - in /sling/trunk/contrib/extensions/replication: core/src/main/java/org/apache/sling/replication/agent/impl/ core/src/main/java/org/apache/sling/replication/packaging/impl/export
Author: tommaso Date: Wed Oct 15 14:46:42 2014 New Revision: 1632062 URL: http://svn.apache.org/r1632062 Log: SLING-4052 - cleaned up jcr pacakges Added: sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/exporter/AgentReplicationPackageExporter.java (with props) Modified: sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/impl/CoordinatingReplicationAgentFactory.java sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/impl/DefaultReplicationComponentFactory.java sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/impl/DefaultReplicationComponentProvider.java sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/impl/GenericReplicationComponentFactory.java sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/impl/SimpleReplicationAgentFactory.java sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/exporter/AgentReplicationPackageExporterFactory.java sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/exporter/LocalReplicationPackageExporter.java sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/exporter/LocalReplicationPackageExporterFactory.java sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/exporter/RemoteReplicationPackageExporter.java sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/exporter/RemoteReplicationPackageExporterFactory.java sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/exporter/strategy/PrivilegeReplicationPackageExporterStrategy.java sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/importer/LocalReplicationPackageImporter.java sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/importer/LocalReplicationPackageImporterFactory.java sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/importer/RemoteReplicationPackageImporter.java sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/importer/RemoteReplicationPackageImporterFactory.java sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/serialization/impl/vlt/FileVaultReplicationPackage.java sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/serialization/impl/vlt/FileVaultReplicationPackageBuilder.java sling/trunk/contrib/extensions/replication/sample/src/main/resources/SLING-CONTENT/libs/sling/replication/install.publish/org.apache.sling.replication.agent.impl.SimpleReplicationAgentFactory-reverse.json sling/trunk/contrib/extensions/replication/sample/src/main/resources/SLING-CONTENT/libs/sling/replication/install.publish/org.apache.sling.replication.packaging.impl.exporter.AgentReplicationPackageExporterFactory-reverse.json sling/trunk/contrib/extensions/replication/sample/src/main/resources/SLING-CONTENT/libs/sling/replication/install.publish/org.apache.sling.replication.packaging.impl.exporter.LocalReplicationPackageExporterFactory-default.json sling/trunk/contrib/extensions/replication/sample/src/main/resources/SLING-CONTENT/libs/sling/replication/install.publish/org.apache.sling.replication.packaging.impl.importer.AdvancedRemoteReplicationPackageImporter-cache-flush.json sling/trunk/contrib/extensions/replication/sample/src/main/resources/SLING-CONTENT/libs/sling/replication/install.publish/org.apache.sling.replication.packaging.impl.importer.LocalReplicationPackageImporterFactory-default.json Modified: sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/impl/CoordinatingReplicationAgentFactory.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/impl/CoordinatingReplicationAgentFactory.java?rev=1632062&r1=1632061&r2=1632062&view=diff == --- sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/impl/CoordinatingReplicationAgentFactory.java (original) +++ sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/impl/CoordinatingReplicationAgentFactory.java Wed Oct 15 14:46:42 2014 @@ -55,7 +55,7 @@ import org.slf4j.LoggerFactory; *
svn commit: r1632023 - in /sling/trunk/bundles/extensions/models: api/src/main/java/org/apache/sling/models/factory/ModelFactory.java impl/src/main/java/org/apache/sling/models/impl/ModelAdapterFactor
Author: sseifert Date: Wed Oct 15 13:41:31 2014 New Revision: 1632023 URL: http://svn.apache.org/r1632023 Log: SLING-4057 ModelFactory: Ordering of method arguments inconsistent Modified: sling/trunk/bundles/extensions/models/api/src/main/java/org/apache/sling/models/factory/ModelFactory.java sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/ModelAdapterFactory.java Modified: sling/trunk/bundles/extensions/models/api/src/main/java/org/apache/sling/models/factory/ModelFactory.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/models/api/src/main/java/org/apache/sling/models/factory/ModelFactory.java?rev=1632023&r1=1632022&r2=1632023&view=diff == --- sling/trunk/bundles/extensions/models/api/src/main/java/org/apache/sling/models/factory/ModelFactory.java (original) +++ sling/trunk/bundles/extensions/models/api/src/main/java/org/apache/sling/models/factory/ModelFactory.java Wed Oct 15 13:41:31 2014 @@ -43,7 +43,7 @@ public interface ModelFactory { * @return false in case the given class can not be adapted from the given adaptable * @throws InvalidModelException in case the given class does not have a model annotation */ -public boolean canCreateFromAdaptable(Class modelClass, Object adaptable) throws InvalidModelException; +public boolean canCreateFromAdaptable(Object adaptable, Class modelClass) throws InvalidModelException; /** * Modified: sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/ModelAdapterFactory.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/ModelAdapterFactory.java?rev=1632023&r1=1632022&r2=1632023&view=diff == --- sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/ModelAdapterFactory.java (original) +++ sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/ModelAdapterFactory.java Wed Oct 15 13:41:31 2014 @@ -179,7 +179,7 @@ public class ModelAdapterFactory impleme } @Override -public boolean canCreateFromAdaptable(Class modelClass, Object adaptable) throws InvalidModelException { +public boolean canCreateFromAdaptable(Object adaptable, Class modelClass) throws InvalidModelException { return innerCanCreateFromAdaptable(modelClass, adaptable); } @@ -897,7 +897,7 @@ public class ModelAdapterFactory impleme private Object adaptIfNecessary(Object value, Class type, Type genericType, Result parentResult) { if (!isAcceptableType(type, genericType, value)) { Class declaredType = type; -if (isModelClass(type) && canCreateFromAdaptable(type, value)) { +if (isModelClass(type) && canCreateFromAdaptable(value, type)) { Result result = internalCreateModel(value, type); if (result.getModel() == null) { parentResult.appendFailures(result);
svn commit: r1632006 - /sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/Result.java
Author: sseifert Date: Wed Oct 15 13:08:24 2014 New Revision: 1632006 URL: http://svn.apache.org/r1632006 Log: reformat list of enums (no code change) Modified: sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/Result.java Modified: sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/Result.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/Result.java?rev=1632006&r1=1632005&r2=1632006&view=diff == --- sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/Result.java (original) +++ sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/Result.java Wed Oct 15 13:08:24 2014 @@ -31,13 +31,14 @@ import org.slf4j.Logger; public class Result { enum FailureType { -ADAPTABLE_DOES_NOT_MATCH("Adaptable is not acceptable for the model class"), FAILED_CALLING_POST_CONSTRUCT( -"Failure calling post-construct method"), NO_MODEL_ANNOTATION( -"Provided Adapter class does not have a Model annotation"), NO_USABLE_CONSTRUCTOR( -"Unable to find a useable constructor"), OTHER("Unclassified problem"), MISSING_METHODS( -"Required methods %s on model %s were not able to be injected."), MISSING_FIELDS( -"Required fields %s on model %s were not able to be injected."), MISSING_CONSTRUCTOR_PARAMS( -"Required constructor parameteres %s on model %s were not able to be injected."); +ADAPTABLE_DOES_NOT_MATCH("Adaptable is not acceptable for the model class"), +FAILED_CALLING_POST_CONSTRUCT("Failure calling post-construct method"), +NO_MODEL_ANNOTATION("Provided Adapter class does not have a Model annotation"), +NO_USABLE_CONSTRUCTOR("Unable to find a useable constructor"), +OTHER("Unclassified problem"), +MISSING_METHODS("Required methods %s on model %s were not able to be injected."), +MISSING_FIELDS("Required fields %s on model %s were not able to be injected."), +MISSING_CONSTRUCTOR_PARAMS("Required constructor parameteres %s on model %s were not able to be injected."); private String message;
svn commit: r1632005 - /sling/trunk/bundles/extensions/models/api/src/main/java/org/apache/sling/models/annotations/Model.java
Author: sseifert Date: Wed Oct 15 13:00:00 2014 New Revision: 1632005 URL: http://svn.apache.org/r1632005 Log: SLING-4055 "Model" annotation should be @Documented Modified: sling/trunk/bundles/extensions/models/api/src/main/java/org/apache/sling/models/annotations/Model.java Modified: sling/trunk/bundles/extensions/models/api/src/main/java/org/apache/sling/models/annotations/Model.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/models/api/src/main/java/org/apache/sling/models/annotations/Model.java?rev=1632005&r1=1632004&r2=1632005&view=diff == --- sling/trunk/bundles/extensions/models/api/src/main/java/org/apache/sling/models/annotations/Model.java (original) +++ sling/trunk/bundles/extensions/models/api/src/main/java/org/apache/sling/models/annotations/Model.java Wed Oct 15 13:00:00 2014 @@ -16,6 +16,7 @@ */ package org.apache.sling.models.annotations; +import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @@ -26,6 +27,7 @@ import java.lang.annotation.Target; */ @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) +@Documented public @interface Model { /**
svn commit: r1631994 - in /sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl: jobs/ jobs/config/ jobs/topics/ topology/
Author: cziegeler Date: Wed Oct 15 11:30:09 2014 New Revision: 1631994 URL: http://svn.apache.org/r1631994 Log: SLING-4048 : Avoid keeping jobs in memory. Move topology handling to own handler service Added: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/topics/ sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/topics/JobTopicTraverser.java (with props) sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/topology/MaintenanceTask.java (with props) sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/topology/RestartTask.java (with props) sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/topology/UpgradeTask.java (with props) Modified: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobManagerImpl.java sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/MaintenanceTask.java sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/config/QueueConfigurationManager.java sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/topology/TopologyCapabilities.java sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/topology/TopologyHandler.java Modified: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobManagerImpl.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobManagerImpl.java?rev=1631994&r1=1631993&r2=1631994&view=diff == --- sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobManagerImpl.java (original) +++ sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobManagerImpl.java Wed Oct 15 11:30:09 2014 @@ -117,10 +117,6 @@ public class JobManagerImpl @Reference private EventAdmin eventAdmin; -/** The configuration manager. */ -@Reference -private QueueConfigurationManager queueConfigManager; - @Reference private Scheduler scheduler; @@ -137,6 +133,8 @@ public class JobManagerImpl @Reference private JobManagerConfiguration configuration; +@Reference +private QueueConfigurationManager queueManager; private volatile TopologyCapabilities topologyCapabilities; @@ -248,7 +246,7 @@ public class JobManagerImpl // invoke maintenance task final MaintenanceTask task = this.maintenanceTask; if ( task != null ) { -task.run(this.topologyCapabilities, this.queueConfigManager, this.schedulerRuns - 1); +task.run(this.topologyCapabilities, this.schedulerRuns - 1); } logger.debug("Job manager maintenance: Finished #{}", this.schedulerRuns); } @@ -270,7 +268,11 @@ public class JobManagerImpl } // get the queue configuration -final QueueInfo queueInfo = queueConfigManager.getQueueInfo(job.getTopic()); +final TopologyCapabilities caps = this.topologyCapabilities; +final QueueInfo queueInfo = caps != null ? caps.getQueueInfo(job.getTopic()) : null; +if ( queueInfo == null ) { +return; // TODO +} final InternalQueueConfiguration config = queueInfo.queueConfiguration; // Sanity check if queue configuration has changed @@ -288,7 +290,6 @@ public class JobManagerImpl } else { if ( reassign ) { -final TopologyCapabilities caps = this.topologyCapabilities; reassignTargetId = (caps == null ? null : caps.detectTarget(job.getTopic(), job.getProperties(), queueInfo)); } else { @@ -1167,7 +1168,7 @@ public class JobManagerImpl final String jobName, final Map jobProperties, final List errors) { -final QueueInfo info = this.queueConfigManager.getQueueInfo(jobTopic); +final QueueInfo info = this.queueManager.getQueueInfo(jobTopic); if ( info.queueConfiguration.getType() == QueueConfiguration.Type.DROP ) { if ( logger.isDebugEnabled() ) { logger.debug("Dropping job due to configuration of queue {} : {}", info.queueName, Utility.toString(jobTopic, jobName, jobProperties)); @@ -1280,7 +1281,7 @@ public class JobManagerImpl } public void reassign(final JobImpl job) { -final QueueInfo queueInfo = queueConfigManager.getQueueInfo(job.getTopic()); +final QueueInfo queueInfo = queueManager.getQueueInfo(job.getTopic()); final InternalQueueConfiguration config = queueInfo.queueConfiguration; // Sanity check if queue configuration has changed @@ -1351,7 +1352,7 @@ public class JobManagerImpl
svn commit: r1631988 - /sling/trunk/bundles/engine/src/test/java/org/apache/sling/engine/impl/request/RequestDataTest.java
Author: bdelacretaz Date: Wed Oct 15 10:13:29 2014 New Revision: 1631988 URL: http://svn.apache.org/r1631988 Log: SLING-4016 - test TooManyCallsException with and without override Added: sling/trunk/bundles/engine/src/test/java/org/apache/sling/engine/impl/request/RequestDataTest.java Added: sling/trunk/bundles/engine/src/test/java/org/apache/sling/engine/impl/request/RequestDataTest.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/engine/src/test/java/org/apache/sling/engine/impl/request/RequestDataTest.java?rev=1631988&view=auto == --- sling/trunk/bundles/engine/src/test/java/org/apache/sling/engine/impl/request/RequestDataTest.java (added) +++ sling/trunk/bundles/engine/src/test/java/org/apache/sling/engine/impl/request/RequestDataTest.java Wed Oct 15 10:13:29 2014 @@ -0,0 +1,130 @@ +/* + * 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.request; + +import javax.servlet.Servlet; +import javax.servlet.ServletConfig; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.sling.api.SlingHttpServletRequest; +import org.apache.sling.api.SlingHttpServletResponse; +import org.apache.sling.api.request.TooManyCallsException; +import org.apache.sling.engine.impl.SlingHttpServletRequestImpl; +import org.apache.sling.engine.impl.SlingHttpServletResponseImpl; +import org.jmock.Expectations; +import org.jmock.Mockery; +import org.jmock.integration.junit4.JMock; +import org.jmock.integration.junit4.JUnit4Mockery; +import org.jmock.lib.legacy.ClassImposteriser; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import static org.junit.Assert.fail; + +@RunWith(JMock.class) +public class RequestDataTest { + +private Mockery context; +private RequestData requestData; +private HttpServletRequest req; +private HttpServletResponse resp; +private SlingHttpServletRequest slingRequest; +private SlingHttpServletResponse slingResponse; + +@Before +public void setup() throws Exception { +context = new JUnit4Mockery() {{ +setImposteriser(ClassImposteriser.INSTANCE); +}}; + +req = context.mock(HttpServletRequest.class); +resp = context.mock(HttpServletResponse.class); + +final ContentData contentData = context.mock(ContentData.class); +final Servlet servlet = context.mock(Servlet.class); +final ServletConfig servletConfig = context.mock(ServletConfig.class); + +context.checking(new Expectations() {{ +allowing(req).getServletPath(); +will(returnValue("/")); + +allowing(req).getPathInfo(); +will(returnValue("")); + +allowing(req).getMethod(); +will(returnValue("GET")); + +allowing(req).setAttribute(with(any(String.class)), with(any(Object.class))); + +allowing(contentData).getServlet(); +will(returnValue(servlet)); + +allowing(servlet).getServletConfig(); +will(returnValue(servletConfig)); + +allowing(servlet).service(with(any(ServletRequest.class)), with(any(ServletResponse.class))); + +allowing(servletConfig).getServletName(); +will(returnValue("SERVLET_NAME")); +}}); + +requestData = new RequestData(null, req, resp) { +@Override +public ContentData getContentData() { +return contentData; +} +}; + +slingRequest = new SlingHttpServletRequestImpl(requestData, req); +slingResponse = new SlingHttpServletResponseImpl(requestData, resp); + +RequestData.setMaxCallCounter(2); +} + +private void assertTooManyCallsException(int failAtCall) throws Exception { +for(int i=0; i < failAtCall - 1; i++) { +RequestData.service(slingRequest, slingResponse); +
svn commit: r1631965 - in /sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication: agent/impl/SimpleReplicationAgent.java packaging/impl/exporter/strategy/Privilege
Author: tommaso Date: Wed Oct 15 07:49:18 2014 New Revision: 1631965 URL: http://svn.apache.org/r1631965 Log: SLING-3899 - correct check on agent session Modified: sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/impl/SimpleReplicationAgent.java sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/exporter/strategy/PrivilegeReplicationPackageExporterStrategy.java Modified: sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/impl/SimpleReplicationAgent.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/impl/SimpleReplicationAgent.java?rev=1631965&r1=1631964&r2=1631965&view=diff == --- sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/impl/SimpleReplicationAgent.java (original) +++ sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/impl/SimpleReplicationAgent.java Wed Oct 15 07:49:18 2014 @@ -141,7 +141,15 @@ public class SimpleReplicationAgent impl List exportedPackages = replicationPackageExporterStrategy.exportPackages(resourceResolver, replicationRequest, -replicationPackageExporter); +new ReplicationPackageExporter() { +public List exportPackage(ResourceResolver resourceResolver, ReplicationRequest replicationRequest) throws ReplicationPackageBuildingException { +return replicationPackageExporter.exportPackage(getAgentResourceResolver(), replicationRequest); +} + +public ReplicationPackage exportPackageById(ResourceResolver resourceResolver, String replicationPackageId) { +return replicationPackageExporter.exportPackageById(getAgentResourceResolver(), replicationPackageId); +} +}); replicationPackages.addAll(exportedPackages); return replicationPackages; @@ -242,7 +250,7 @@ public class SimpleReplicationAgent impl private boolean processTransportQueue(ReplicationQueueItem queueItem) { boolean success = false; log.debug("reading package with id {}", queueItem.getId()); -ResourceResolver resourceResolver = getResourceResolver(); +ResourceResolver resourceResolver = getAgentResourceResolver(); try { ReplicationPackage replicationPackage = replicationPackageExporter.exportPackageById(resourceResolver, queueItem.getId()); @@ -263,7 +271,7 @@ public class SimpleReplicationAgent impl return success; } -private ResourceResolver getResourceResolver() { +private ResourceResolver getAgentResourceResolver() { ResourceResolver resourceResolver = null; Map authenticationInfo = new HashMap(); @@ -293,7 +301,7 @@ public class SimpleReplicationAgent impl public void handle(ReplicationRequest request) { try { -ResourceResolver resourceResolver = getResourceResolver(); +ResourceResolver resourceResolver = getAgentResourceResolver(); agent.execute(resourceResolver, request); } catch (AgentReplicationException e) { log.error("Error executing handler", e); Modified: sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/exporter/strategy/PrivilegeReplicationPackageExporterStrategy.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/exporter/strategy/PrivilegeReplicationPackageExporterStrategy.java?rev=1631965&r1=1631964&r2=1631965&view=diff == --- sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/exporter/strategy/PrivilegeReplicationPackageExporterStrategy.java (original) +++ sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/exporter/strategy/PrivilegeReplicationPackageExporterStrategy.java Wed Oct 15 07:49:18 2014 @@ -31,7 +31,6 @@ import javax.jcr.RepositoryException; import javax.jcr.Session; import javax.jcr.security.AccessControlManager; import javax.jcr.security.Privilege; -import java.nio.file.AccessDeniedException; import java.util.List; import java.util.Map; @@ -76,7 +75,7 @@ public class PrivilegeReplicationPackage throws RepositoryException, ReplicationPackageBuildingException { AccessControlManager acMgr = session.getAccessControlManager(); -Privilege[] privileges = new Privilege[] { acMgr.pri
svn commit: r1631960 - in /sling/trunk/bundles/extensions/event/src: main/java/org/apache/sling/event/impl/jobs/ main/java/org/apache/sling/event/impl/jobs/console/ main/java/org/apache/sling/event/im
Author: cziegeler Date: Wed Oct 15 07:18:17 2014 New Revision: 1631960 URL: http://svn.apache.org/r1631960 Log: SLING-4048 : Avoid keeping jobs in memory. Move topology handling to own handler service Added: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/topology/ sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/topology/TopologyAware.java (with props) sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/topology/TopologyCapabilities.java - copied, changed from r1631955, sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/TopologyCapabilities.java sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/topology/TopologyHandler.java (with props) Removed: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/TopologyCapabilities.java Modified: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobConsumerManager.java sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobManagerConfiguration.java sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobManagerImpl.java sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobSchedulerImpl.java sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/MaintenanceTask.java sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/console/InventoryPlugin.java sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/console/WebConsolePlugin.java sling/trunk/bundles/extensions/event/src/test/java/org/apache/sling/event/impl/jobs/InstanceDescriptionComparatorTest.java Modified: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobConsumerManager.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobConsumerManager.java?rev=1631960&r1=1631959&r2=1631960&view=diff == --- sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobConsumerManager.java (original) +++ sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobConsumerManager.java Wed Oct 15 07:18:17 2014 @@ -42,6 +42,7 @@ import org.apache.sling.commons.osgi.Pro import org.apache.sling.discovery.PropertyProvider; import org.apache.sling.event.impl.support.TopicMatcher; import org.apache.sling.event.impl.support.TopicMatcherHelper; +import org.apache.sling.event.impl.topology.TopologyCapabilities; import org.apache.sling.event.jobs.Job; import org.apache.sling.event.jobs.consumer.JobConsumer; import org.apache.sling.event.jobs.consumer.JobConsumer.JobResult; Modified: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobManagerConfiguration.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobManagerConfiguration.java?rev=1631960&r1=1631959&r2=1631960&view=diff == --- sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobManagerConfiguration.java (original) +++ sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobManagerConfiguration.java Wed Oct 15 07:18:17 2014 @@ -34,6 +34,7 @@ import org.apache.sling.api.resource.Per import org.apache.sling.api.resource.ResourceResolver; import org.apache.sling.api.resource.ResourceResolverFactory; import org.apache.sling.commons.osgi.PropertiesUtil; +import org.apache.sling.event.impl.EnvironmentComponent; import org.apache.sling.event.impl.support.Environment; import org.apache.sling.event.impl.support.ResourceHelper; import org.slf4j.Logger; @@ -132,6 +133,10 @@ public class JobManagerConfiguration { /** The resource path where scheduled jobs are stored - ending with a slash. */ private String scheduledJobsPathWithSlash; +/** The environment component. */ +@Reference +private EnvironmentComponent environment; + @Reference private ResourceResolverFactory resourceResolverFactory; Modified: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobManagerImpl.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobManagerImpl.java?rev=1631960&r1=1631959&r2=1631960&view=diff == --- sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobManagerImpl.java (original) +++ sl