diff --git a/src/main/java/org/kohsuke/confluence/scache/EasySSLProtocolSocketFactory.java b/src/main/java/org/kohsuke/confluence/scache/EasySSLProtocolSocketFactory.java index d787158..af7022d 100644 --- a/src/main/java/org/kohsuke/confluence/scache/EasySSLProtocolSocketFactory.java +++ b/src/main/java/org/kohsuke/confluence/scache/EasySSLProtocolSocketFactory.java @@ -30,17 +30,6 @@ * */ -import java.io.IOException; -import java.net.InetAddress; -import java.net.InetSocketAddress; -import java.net.Socket; -import java.net.SocketAddress; -import java.net.UnknownHostException; - -import javax.net.SocketFactory; -import javax.net.ssl.SSLContext; -import javax.net.ssl.TrustManager; - import org.apache.commons.httpclient.ConnectTimeoutException; import org.apache.commons.httpclient.HttpClientError; import org.apache.commons.httpclient.params.HttpConnectionParams; @@ -48,6 +37,16 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import javax.net.SocketFactory; +import javax.net.ssl.SSLContext; +import javax.net.ssl.TrustManager; +import java.io.IOException; +import java.net.InetAddress; +import java.net.InetSocketAddress; +import java.net.Socket; +import java.net.SocketAddress; +import java.net.UnknownHostException; + /** *

* EasySSLProtocolSocketFactory can be used to creats SSL {@link Socket}s diff --git a/src/main/java/org/kohsuke/confluence/scache/EasyX509TrustManager.java b/src/main/java/org/kohsuke/confluence/scache/EasyX509TrustManager.java index 2ab800f..7edc638 100644 --- a/src/main/java/org/kohsuke/confluence/scache/EasyX509TrustManager.java +++ b/src/main/java/org/kohsuke/confluence/scache/EasyX509TrustManager.java @@ -26,18 +26,18 @@ * */ +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import javax.net.ssl.TrustManager; +import javax.net.ssl.TrustManagerFactory; +import javax.net.ssl.X509TrustManager; import java.security.KeyStore; import java.security.KeyStoreException; import java.security.NoSuchAlgorithmException; import java.security.cert.CertificateException; import java.security.cert.X509Certificate; -import javax.net.ssl.TrustManagerFactory; -import javax.net.ssl.TrustManager; -import javax.net.ssl.X509TrustManager; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - /** *

* EasyX509TrustManager unlike default {@link X509TrustManager} accepts diff --git a/src/main/java/org/kohsuke/confluence/scache/EventListenerImpl.java b/src/main/java/org/kohsuke/confluence/scache/EventListenerImpl.java new file mode 100644 index 0000000..2a9dfe1 --- /dev/null +++ b/src/main/java/org/kohsuke/confluence/scache/EventListenerImpl.java @@ -0,0 +1,48 @@ +package org.kohsuke.confluence.scache; + +import com.atlassian.confluence.event.events.content.comment.CommentCreateEvent; +import com.atlassian.confluence.event.events.content.comment.CommentRemoveEvent; +import com.atlassian.confluence.event.events.content.comment.CommentUpdateEvent; +import com.atlassian.confluence.event.events.content.page.PageCreateEvent; +import com.atlassian.confluence.event.events.content.page.PageMoveEvent; +import com.atlassian.confluence.event.events.content.page.PageRemoveEvent; +import com.atlassian.confluence.event.events.content.page.PageRestoreEvent; +import com.atlassian.confluence.event.events.content.page.PageUpdateEvent; +import com.atlassian.confluence.event.events.label.LabelAddEvent; +import com.atlassian.confluence.event.events.label.LabelRemoveEvent; +import com.atlassian.event.Event; +import com.atlassian.event.EventListener; + +/** + * @author Kohsuke Kawaguchi + */ +public class EventListenerImpl implements EventListener { + private final StaticPageGenerator staticPageGenerator; + + public EventListenerImpl(StaticPageGenerator staticPageGenerator) { + this.staticPageGenerator = staticPageGenerator; + } + + @Override + public void handleEvent(Event event) { + staticPageGenerator.onEvent(event); + } + + @Override + public Class[] getHandledEventClasses() { + return HANDLED_EVENTS; + } + + private final Class[] HANDLED_EVENTS = new Class[] { + PageCreateEvent.class, + PageRestoreEvent.class, + PageUpdateEvent.class, + PageMoveEvent.class, + PageRemoveEvent.class, + LabelAddEvent.class, + LabelRemoveEvent.class, + CommentCreateEvent.class, + CommentUpdateEvent.class, + CommentRemoveEvent.class + }; +} diff --git a/src/main/java/org/kohsuke/confluence/scache/StaticPageGenerator.java b/src/main/java/org/kohsuke/confluence/scache/StaticPageGenerator.java index 0a8a0fa..0ab377c 100644 --- a/src/main/java/org/kohsuke/confluence/scache/StaticPageGenerator.java +++ b/src/main/java/org/kohsuke/confluence/scache/StaticPageGenerator.java @@ -1,26 +1,16 @@ package org.kohsuke.confluence.scache; import com.atlassian.confluence.core.ContentEntityObject; -import com.atlassian.confluence.event.events.content.comment.CommentCreateEvent; import com.atlassian.confluence.event.events.content.comment.CommentEvent; -import com.atlassian.confluence.event.events.content.comment.CommentRemoveEvent; -import com.atlassian.confluence.event.events.content.comment.CommentUpdateEvent; -import com.atlassian.confluence.event.events.content.page.PageCreateEvent; import com.atlassian.confluence.event.events.content.page.PageEvent; -import com.atlassian.confluence.event.events.content.page.PageMoveEvent; import com.atlassian.confluence.event.events.content.page.PageRemoveEvent; -import com.atlassian.confluence.event.events.content.page.PageRestoreEvent; -import com.atlassian.confluence.event.events.content.page.PageUpdateEvent; -import com.atlassian.confluence.event.events.label.LabelAddEvent; import com.atlassian.confluence.event.events.label.LabelEvent; -import com.atlassian.confluence.event.events.label.LabelRemoveEvent; import com.atlassian.confluence.labels.Labelable; import com.atlassian.confluence.pages.Page; import com.atlassian.confluence.pages.PageManager; import com.atlassian.confluence.spaces.Space; import com.atlassian.confluence.spaces.SpaceManager; import com.atlassian.event.Event; -import com.atlassian.event.EventListener; import org.apache.commons.codec.binary.Base64; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.HttpMethod; @@ -43,7 +33,7 @@ /** * @author Kohsuke Kawaguchi */ -public class StaticPageGenerator implements EventListener { +public class StaticPageGenerator { private final ScheduledExecutorService worker = new ScheduledThreadPoolExecutor(1,DAEMON_THREAD_FACTORY); private final ConfigurationManager configurationManager; @@ -157,8 +147,8 @@ private Properties loadConfigFile() throws IOException { return props; } - public void handleEvent(Event event) { - LOGGER.info("Handling "+event); + public void onEvent(Event event) { + LOGGER.info("Handling " + event); if (event instanceof PageRemoveEvent) { new Task(((PageEvent) event).getPage()).delete(); } @@ -184,10 +174,6 @@ protected void finalize() throws Throwable { worker.shutdown(); } - public Class[] getHandledEventClasses() { - return HANDLED_EVENTS; - } - public void submit(Page page, boolean evictNow) { final Task t = new Task(page); if (evictNow) @@ -217,18 +203,6 @@ public Thread newThread(Runnable r) { } }; - private final Class[] HANDLED_EVENTS = new Class[] { - PageCreateEvent.class, - PageRestoreEvent.class, - PageUpdateEvent.class, - PageMoveEvent.class, - PageRemoveEvent.class, - LabelAddEvent.class, - LabelRemoveEvent.class, - CommentCreateEvent.class, - CommentUpdateEvent.class, - CommentRemoveEvent.class - }; private static File getBaseDir() { String dir = System.getenv("STATIC_CACHE_DIR"); diff --git a/src/main/resources/atlassian-plugin.xml b/src/main/resources/atlassian-plugin.xml index 44d8d09..aec163f 100644 --- a/src/main/resources/atlassian-plugin.xml +++ b/src/main/resources/atlassian-plugin.xml @@ -13,8 +13,13 @@ Configuration of static cache generator - + + Actual page generator + + + Renders HTML version of the page