diff --git a/config/alfresco/web-publishing-context.xml b/config/alfresco/web-publishing-context.xml
index 8e341150eb..c6e80b8b31 100644
--- a/config/alfresco/web-publishing-context.xml
+++ b/config/alfresco/web-publishing-context.xml
@@ -87,6 +87,7 @@
+
diff --git a/source/java/org/alfresco/repo/publishing/AbstractChannelType.java b/source/java/org/alfresco/repo/publishing/AbstractChannelType.java
index 77fd534518..77957274d9 100644
--- a/source/java/org/alfresco/repo/publishing/AbstractChannelType.java
+++ b/source/java/org/alfresco/repo/publishing/AbstractChannelType.java
@@ -38,6 +38,8 @@ import org.alfresco.service.cmr.transfer.NodeFinder;
import org.alfresco.service.namespace.QName;
import org.alfresco.util.ParameterCheck;
import org.springframework.beans.factory.InitializingBean;
+import org.springframework.core.io.ClassPathResource;
+import org.springframework.core.io.Resource;
/**
* @author Nick Smith
@@ -175,4 +177,29 @@ public abstract class AbstractChannelType implements ChannelType, InitializingBe
}
return result;
}
+
+ public Resource getIcon16()
+ {
+ return getIcon("16");
+ }
+
+ public Resource getIcon32()
+ {
+ return getIcon("32");
+ }
+
+ protected Resource getIcon(String sizeSuffix)
+ {
+ String className = this.getClass().getCanonicalName();
+ className = className.replaceAll("\\.", "\\/");
+ StringBuilder iconPath = new StringBuilder(className);
+ iconPath.append(sizeSuffix).append('.').append(getIconFileExtension());
+ Resource resource = new ClassPathResource(iconPath.toString());
+ return resource.exists() ? resource : null;
+ }
+
+ public String getIconFileExtension()
+ {
+ return "png";
+ }
}
diff --git a/source/java/org/alfresco/repo/publishing/PublishingEventProcessor.java b/source/java/org/alfresco/repo/publishing/PublishingEventProcessor.java
index d947963019..fe2b04c1ac 100644
--- a/source/java/org/alfresco/repo/publishing/PublishingEventProcessor.java
+++ b/source/java/org/alfresco/repo/publishing/PublishingEventProcessor.java
@@ -34,6 +34,7 @@ import java.util.Set;
import org.alfresco.model.ContentModel;
import org.alfresco.repo.policy.BehaviourFilter;
+import org.alfresco.service.cmr.dictionary.DictionaryService;
import org.alfresco.service.cmr.publishing.NodeSnapshot;
import org.alfresco.service.cmr.publishing.PublishingEvent;
import org.alfresco.service.cmr.publishing.PublishingPackageEntry;
@@ -62,6 +63,7 @@ public class PublishingEventProcessor
private NodeService nodeService;
private BehaviourFilter behaviourFilter;
private UrlShortener urlShortener;
+ private DictionaryService dictionaryService;
public void processEventNode(NodeRef eventNode)
{
@@ -223,6 +225,13 @@ public class PublishingEventProcessor
Map publishProps = nodeService.getProperties(publishedNode);
Set propsToRemove = new HashSet(publishProps.keySet());
propsToRemove.removeAll(snapshotProps.keySet());
+
+ //We want to retain the published asset id and URL in the updated node...
+ snapshotProps.put(PublishingModel.PROP_ASSET_ID, nodeService.getProperty(publishedNode,
+ PublishingModel.PROP_ASSET_ID));
+ snapshotProps.put(PublishingModel.PROP_ASSET_URL, nodeService.getProperty(publishedNode,
+ PublishingModel.PROP_ASSET_URL));
+
for (QName propertyToRemove : propsToRemove)
{
nodeService.removeProperty(publishedNode, propertyToRemove);
@@ -238,6 +247,12 @@ public class PublishingEventProcessor
Set aspectsToRemove = nodeService.getAspects(publishedNode);
aspectsToRemove.removeAll(newAspects);
aspectsToRemove.remove(ASPECT_PUBLISHED);
+ aspectsToRemove.remove(PublishingModel.ASPECT_ASSET);
+ for (QName publishedAssetAspect : dictionaryService.getSubAspects(PublishingModel.ASPECT_ASSET, true))
+ {
+ aspectsToRemove.remove(publishedAssetAspect);
+ }
+
for (QName aspectToRemove : aspectsToRemove)
{
nodeService.removeAspect(publishedNode, aspectToRemove);
@@ -327,4 +342,9 @@ public class PublishingEventProcessor
{
this.urlShortener = urlShortener;
}
+
+ public void setDictionaryService(DictionaryService dictionaryService)
+ {
+ this.dictionaryService = dictionaryService;
+ }
}
\ No newline at end of file
diff --git a/source/java/org/alfresco/repo/publishing/facebook/FacebookChannelType16.png b/source/java/org/alfresco/repo/publishing/facebook/FacebookChannelType16.png
new file mode 100644
index 0000000000..ac2a4f0374
Binary files /dev/null and b/source/java/org/alfresco/repo/publishing/facebook/FacebookChannelType16.png differ
diff --git a/source/java/org/alfresco/repo/publishing/facebook/FacebookChannelType32.png b/source/java/org/alfresco/repo/publishing/facebook/FacebookChannelType32.png
new file mode 100644
index 0000000000..bc0bcd9560
Binary files /dev/null and b/source/java/org/alfresco/repo/publishing/facebook/FacebookChannelType32.png differ
diff --git a/source/java/org/alfresco/repo/publishing/flickr/FlickrChannelType16.png b/source/java/org/alfresco/repo/publishing/flickr/FlickrChannelType16.png
new file mode 100644
index 0000000000..3cc9fcf672
Binary files /dev/null and b/source/java/org/alfresco/repo/publishing/flickr/FlickrChannelType16.png differ
diff --git a/source/java/org/alfresco/repo/publishing/flickr/FlickrChannelType32.png b/source/java/org/alfresco/repo/publishing/flickr/FlickrChannelType32.png
new file mode 100644
index 0000000000..9395b72055
Binary files /dev/null and b/source/java/org/alfresco/repo/publishing/flickr/FlickrChannelType32.png differ
diff --git a/source/java/org/alfresco/repo/publishing/slideshare/SlideShareChannelType16.png b/source/java/org/alfresco/repo/publishing/slideshare/SlideShareChannelType16.png
new file mode 100644
index 0000000000..0cdf715687
Binary files /dev/null and b/source/java/org/alfresco/repo/publishing/slideshare/SlideShareChannelType16.png differ
diff --git a/source/java/org/alfresco/repo/publishing/slideshare/SlideShareChannelType32.png b/source/java/org/alfresco/repo/publishing/slideshare/SlideShareChannelType32.png
new file mode 100644
index 0000000000..9f918f4149
Binary files /dev/null and b/source/java/org/alfresco/repo/publishing/slideshare/SlideShareChannelType32.png differ
diff --git a/source/java/org/alfresco/repo/publishing/twitter/TwitterChannelType16.png b/source/java/org/alfresco/repo/publishing/twitter/TwitterChannelType16.png
new file mode 100644
index 0000000000..32a97f4075
Binary files /dev/null and b/source/java/org/alfresco/repo/publishing/twitter/TwitterChannelType16.png differ
diff --git a/source/java/org/alfresco/repo/publishing/twitter/TwitterChannelType32.png b/source/java/org/alfresco/repo/publishing/twitter/TwitterChannelType32.png
new file mode 100644
index 0000000000..06119a414a
Binary files /dev/null and b/source/java/org/alfresco/repo/publishing/twitter/TwitterChannelType32.png differ
diff --git a/source/java/org/alfresco/repo/publishing/youtube/YouTubeChannelType16.png b/source/java/org/alfresco/repo/publishing/youtube/YouTubeChannelType16.png
new file mode 100644
index 0000000000..a869638ac6
Binary files /dev/null and b/source/java/org/alfresco/repo/publishing/youtube/YouTubeChannelType16.png differ
diff --git a/source/java/org/alfresco/repo/publishing/youtube/YouTubeChannelType32.png b/source/java/org/alfresco/repo/publishing/youtube/YouTubeChannelType32.png
new file mode 100644
index 0000000000..6ff7494b36
Binary files /dev/null and b/source/java/org/alfresco/repo/publishing/youtube/YouTubeChannelType32.png differ
diff --git a/source/java/org/alfresco/service/cmr/publishing/channels/ChannelType.java b/source/java/org/alfresco/service/cmr/publishing/channels/ChannelType.java
index 0d334465a4..d9bc79e8a3 100644
--- a/source/java/org/alfresco/service/cmr/publishing/channels/ChannelType.java
+++ b/source/java/org/alfresco/service/cmr/publishing/channels/ChannelType.java
@@ -27,6 +27,7 @@ import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.transfer.NodeFilter;
import org.alfresco.service.cmr.transfer.NodeFinder;
import org.alfresco.service.namespace.QName;
+import org.springframework.core.io.Resource;
/**
* @author Brian
@@ -59,4 +60,8 @@ public interface ChannelType
String getAuthorisationUrl(Channel channel, String callbackUrl);
boolean acceptAuthorisationCallback(Channel channel, Map callbackHeaders, Map callbackParams);
+
+ String getIconFileExtension();
+ Resource getIcon16();
+ Resource getIcon32();
}