Author: ernst
Date: 2009-05-28 10:35:26 +0200 (Thu, 28 May 2009)
New Revision: 35464

Added:
   speeltuin/ernst/mmbase-republisher/pom.xml
   speeltuin/ernst/mmbase-republisher/src/
   speeltuin/ernst/mmbase-republisher/src/main/
   speeltuin/ernst/mmbase-republisher/src/main/java/
   speeltuin/ernst/mmbase-republisher/src/main/java/nl/
   speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/
   speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/mmbase/
   speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/mmbase/republisher/
   
speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/mmbase/republisher/AuthorizedCloudProvider.java
   
speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/mmbase/republisher/CloudProvider.java
   
speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/mmbase/republisher/RepublisherEventListener.java
   
speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/mmbase/republisher/RepublisherModule.java
   
speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/mmbase/republisher/endpoint/
   
speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/mmbase/republisher/endpoint/DocumentModification.java
   
speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/mmbase/republisher/endpoint/DummyPublicationEndPoint.java
   
speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/mmbase/republisher/endpoint/ModificationType.java
   
speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/mmbase/republisher/endpoint/PublicationEndPoint.java
   
speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/mmbase/republisher/endpoint/PublicationException.java
   
speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/mmbase/republisher/serializer/
   
speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/mmbase/republisher/serializer/DocumentSerializer.java
   
speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/mmbase/republisher/serializer/SerializationException.java
   
speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/mmbase/republisher/serializer/ToStringSerializer.java
   
speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/mmbase/republisher/validator/
   
speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/mmbase/republisher/validator/DocumentValidator.java
   
speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/mmbase/republisher/validator/DummyValidator.java
   
speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/mmbase/republisher/validator/OvalDocumentValidator.java
   speeltuin/ernst/mmbase-republisher/src/main/resources/
   speeltuin/ernst/mmbase-republisher/src/main/resources/org/
   speeltuin/ernst/mmbase-republisher/src/main/resources/org/mmbase/
   speeltuin/ernst/mmbase-republisher/src/main/resources/org/mmbase/config/
   speeltuin/ernst/mmbase-republisher/src/main/resources/org/mmbase/config/INDEX
   
speeltuin/ernst/mmbase-republisher/src/main/resources/org/mmbase/config/modules/
   
speeltuin/ernst/mmbase-republisher/src/main/resources/org/mmbase/config/modules/INDEX
   
speeltuin/ernst/mmbase-republisher/src/main/resources/org/mmbase/config/modules/republisher.xml
   speeltuin/ernst/mmbase-republisher/src/test/
   speeltuin/ernst/mmbase-republisher/src/test/java/
   speeltuin/ernst/mmbase-republisher/src/test/java/nl/
   speeltuin/ernst/mmbase-republisher/src/test/java/nl/vpro/
   speeltuin/ernst/mmbase-republisher/src/test/java/nl/vpro/mmbase/
   speeltuin/ernst/mmbase-republisher/src/test/java/nl/vpro/mmbase/republisher/
   
speeltuin/ernst/mmbase-republisher/src/test/java/nl/vpro/mmbase/republisher/RepublisherEventListenerTest.java
   
speeltuin/ernst/mmbase-republisher/src/test/java/nl/vpro/mmbase/republisher/domain/
   
speeltuin/ernst/mmbase-republisher/src/test/java/nl/vpro/mmbase/republisher/domain/mynews/
   
speeltuin/ernst/mmbase-republisher/src/test/java/nl/vpro/mmbase/republisher/domain/mynews/Image.java
   
speeltuin/ernst/mmbase-republisher/src/test/java/nl/vpro/mmbase/republisher/domain/mynews/News.java
   
speeltuin/ernst/mmbase-republisher/src/test/java/nl/vpro/mmbase/republisher/domain/mynews/Person.java
   
speeltuin/ernst/mmbase-republisher/src/test/java/nl/vpro/mmbase/republisher/domain/mynews/Url.java
   speeltuin/ernst/mmbase-republisher/src/test/resources/
Modified:
   speeltuin/ernst/mmbase-republisher/
Log:
republisher in de speeltuin


Property changes on: speeltuin/ernst/mmbase-republisher
___________________________________________________________________
Name: svn:ignore
   + .settings

target

.classpath

.project


Added: speeltuin/ernst/mmbase-republisher/pom.xml
===================================================================
--- speeltuin/ernst/mmbase-republisher/pom.xml                          (rev 0)
+++ speeltuin/ernst/mmbase-republisher/pom.xml  2009-05-28 08:35:26 UTC (rev 
35464)
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+       xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/maven-v4_0_0.xsd";>
+       <modelVersion>4.0.0</modelVersion>
+
+       <parent>
+               <groupId>nl.vpro</groupId>
+               <artifactId>vpro-parent</artifactId>
+               <version>R20090226</version>
+       </parent>
+
+       <groupId>nl.vpro</groupId>
+       <artifactId>mmbase-republisher</artifactId>
+       <version>1.0-SNAPSHOT</version>
+       <packaging>jar</packaging>
+
+       <name>mmbase-republisher</name>
+       <description>
+          Dit project maakt gebruik van mmbase-vob, en bevat een mmbase module 
die 
+          node en relation event listeners installeert, die op basis van de 
vob mappings
+          documenten exporteren die uit aggregaties van nodes bestaan.
+          
+          De aggregaties kunnen ook worden gevalideerd met het Oval validation 
framework
+           
+       </description>
+
+       <dependencies>
+          <dependency>
+            <groupId>nl.vpro.mmbase</groupId>
+            <artifactId>mmvpro</artifactId>
+            <version>1.8.7-SNAPSHOT</version>
+            <scope>provided</scope>
+        </dependency>
+               <dependency>
+                       <groupId>nl.vpro</groupId>
+                       <artifactId>mmbase-vob</artifactId>
+                       <version>1.0-SNAPSHOT</version>
+               </dependency>
+               <dependency>
+                       <groupId>net.sf.oval</groupId>
+                       <artifactId>oval</artifactId>
+                       <version>1.30</version>
+               </dependency>
+               <dependency>
+                       <groupId>junit</groupId>
+                       <artifactId>junit</artifactId>
+                       <version>4.5</version>
+                       <scope>test</scope>
+               </dependency>
+               <dependency>
+                       <groupId>org.easymock</groupId>
+                       <artifactId>easymockclassextension</artifactId>
+                       <version>2.4</version>
+                       <scope>test</scope>
+               </dependency>
+               <dependency>
+                       <groupId>commons-lang</groupId>
+                       <artifactId>commons-lang</artifactId>
+                       <version>2.4</version>
+               </dependency>
+       </dependencies>
+       <build>
+               <defaultGoal>install</defaultGoal>
+       </build>
+</project>


Property changes on: speeltuin/ernst/mmbase-republisher/pom.xml
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: 
speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/mmbase/republisher/AuthorizedCloudProvider.java
===================================================================
--- 
speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/mmbase/republisher/AuthorizedCloudProvider.java
                            (rev 0)
+++ 
speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/mmbase/republisher/AuthorizedCloudProvider.java
    2009-05-28 08:35:26 UTC (rev 35464)
@@ -0,0 +1,29 @@
+package nl.vpro.mmbase.republisher;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.mmbase.bridge.Cloud;
+import org.mmbase.bridge.LocalContext;
+
+public final class AuthorizedCloudProvider implements CloudProvider {
+    
+    private Map<String,String> credentials;
+    
+    
+
+    public AuthorizedCloudProvider(String username, String password) {
+        credentials = new HashMap<String, String>();
+        credentials.put("username", username);
+        credentials.put("password", password);
+        
+    }
+
+
+
+    public Cloud getCloud() {
+        
+        return LocalContext.getCloudContext().getCloud("mmbase-vob", 
"name/password", credentials);
+    }
+
+}


Property changes on: 
speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/mmbase/republisher/AuthorizedCloudProvider.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: 
speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/mmbase/republisher/CloudProvider.java
===================================================================
--- 
speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/mmbase/republisher/CloudProvider.java
                              (rev 0)
+++ 
speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/mmbase/republisher/CloudProvider.java
      2009-05-28 08:35:26 UTC (rev 35464)
@@ -0,0 +1,7 @@
+package nl.vpro.mmbase.republisher;
+
+import org.mmbase.bridge.Cloud;
+
+public interface CloudProvider {
+    public Cloud getCloud();
+}


Property changes on: 
speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/mmbase/republisher/CloudProvider.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: 
speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/mmbase/republisher/RepublisherEventListener.java
===================================================================
--- 
speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/mmbase/republisher/RepublisherEventListener.java
                           (rev 0)
+++ 
speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/mmbase/republisher/RepublisherEventListener.java
   2009-05-28 08:35:26 UTC (rev 35464)
@@ -0,0 +1,149 @@
+package nl.vpro.mmbase.republisher;
+
+import nl.vpro.mmbase.republisher.endpoint.*;
+import nl.vpro.mmbase.republisher.serializer.DocumentSerializer;
+import nl.vpro.mmbase.republisher.validator.DocumentValidator;
+import nl.vpro.mmbase.vob.Populator;
+
+import org.apache.commons.lang.SerializationException;
+import org.mmbase.bridge.Cloud;
+import org.mmbase.bridge.Node;
+import org.mmbase.core.event.*;
+
+public final class RepublisherEventListener implements NodeEventListener, 
RelationEventListener {
+    private Populator populator;
+    private PublicationEndPoint publicationEndPoint;
+    private DocumentSerializer documentSerializer;
+    private DocumentValidator documentValidator;
+    private CloudProvider cloudProvider;
+    private Cloud cloud;
+    
+    
+    
+
+    CloudProvider getCloudProvider() {
+        return cloudProvider;
+    }
+
+    public void setCloudProvider(CloudProvider cloudProvider) {
+        this.cloudProvider = cloudProvider;
+    }
+
+    public void init() {
+        if (publicationEndPoint != null) {
+            publicationEndPoint.init();
+        }
+    }
+
+    public void shutdown() {
+        if (publicationEndPoint != null) {
+            publicationEndPoint.shutdown();
+        }
+    }
+
+    DocumentSerializer getDocumentSerializer() {
+        return documentSerializer;
+    }
+
+    public void setDocumentSerializer(DocumentSerializer documentSerializer) {
+        this.documentSerializer = documentSerializer;
+    }
+
+    PublicationEndPoint getPublicationEndPoint() {
+        return publicationEndPoint;
+    }
+
+    public void setPublicationEndPoint(PublicationEndPoint 
publicationEndPoint) {
+        this.publicationEndPoint = publicationEndPoint;
+    }
+
+    Populator getPopulator() {
+        return populator;
+    }
+
+    public void setPopulator(Populator populator) {
+        this.populator = populator;
+    }
+
+    DocumentValidator getDocumentValidator() {
+        return documentValidator;
+    }
+
+    public void setDocumentValidator(DocumentValidator documentValidator) {
+        this.documentValidator = documentValidator;
+    }
+
+    public void notify(NodeEvent event) {
+        if (event.getType() == NodeEvent.TYPE_NEW) {
+            handleNodeCreate(event);
+        } else if (event.getType() == NodeEvent.TYPE_DELETE) {
+            handleNodeDelete(event);
+        } else if (event.getType() == NodeEvent.TYPE_CHANGE) {
+            handleNodeUpdate(event);
+        }
+    }
+
+    public void notify(RelationEvent event) {
+        if (event.getType() == RelationEvent.TYPE_NEW) {
+            handleRelationCreate(event);
+        } else if (event.getType() == RelationEvent.TYPE_DELETE) {
+            handleRelationDelete(event);
+        } else if (event.getType() == RelationEvent.TYPE_CHANGE) {
+            handleRelationUpdate(event);
+        }
+
+    }
+
+    private void handleNodeCreate(NodeEvent event) {
+        if (populator.hasEntityFor(event.getBuilderName())) {
+            Node node =   getCloud().getNode(event.getNodeNumber());
+            Object entity = populator.unmarshallNode(node, 
node.getNodeManager().getName());
+            if(Populator.entityIsRoot(entity)){
+                if (documentValidator.isValid(entity)) {
+                    tryToPublishDocument(entity, ModificationType.CREATE);
+                }else{
+                    //..
+                }
+            }
+        }
+    }
+
+    private void tryToPublishDocument(Object entity, ModificationType 
modificationType) {
+        try{
+            String document = documentSerializer.serializeDocument(entity);
+            publicationEndPoint.publishDocument(new 
DocumentModification(modificationType, document));
+        }catch(SerializationException se){
+            //...
+        }catch(PublicationException pe){
+            //..
+        }
+    }
+
+    private void handleNodeDelete(NodeEvent event) {
+        // TODO Auto-generated method stub
+    }
+
+    private void handleNodeUpdate(NodeEvent event) {
+        // TODO Auto-generated method stub
+    }
+
+    private void handleRelationCreate(RelationEvent event) {
+        // TODO Auto-generated method stub
+    }
+
+    private void handleRelationDelete(RelationEvent event) {
+        // TODO Auto-generated method stub
+    }
+
+    private void handleRelationUpdate(RelationEvent event) {
+        // TODO Auto-generated method stub
+    }
+    
+    private Cloud getCloud(){
+        if(cloud == null){
+            cloud = cloudProvider.getCloud();
+        }
+        return cloud;
+    }
+
+}


Property changes on: 
speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/mmbase/republisher/RepublisherEventListener.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: 
speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/mmbase/republisher/RepublisherModule.java
===================================================================
--- 
speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/mmbase/republisher/RepublisherModule.java
                          (rev 0)
+++ 
speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/mmbase/republisher/RepublisherModule.java
  2009-05-28 08:35:26 UTC (rev 35464)
@@ -0,0 +1,59 @@
+package nl.vpro.mmbase.republisher;
+
+import nl.vpro.mmbase.republisher.endpoint.DummyPublicationEndPoint;
+import nl.vpro.mmbase.republisher.serializer.ToStringSerializer;
+import nl.vpro.mmbase.vob.Populator;
+
+import org.apache.commons.lang.StringUtils;
+import org.mmbase.core.event.EventManager;
+import org.mmbase.module.Module;
+import org.mmbase.util.logging.Logger;
+import org.mmbase.util.logging.Logging;
+
+public final class RepublisherModule extends Module{ 
+       private static Logger log = 
Logging.getLoggerInstance(RepublisherModule.class.getName());
+       private RepublisherEventListener republisher;
+    private String pathToScan;
+    private String username;
+    private String password;
+       
+       
+
+       @Override
+       public void init() {
+           super.init();
+               log.info("MyGlobalEventListener starting...");
+               
+               pathToScan = getMandatoryProperty("pathToScan");
+               username = getMandatoryProperty("username");
+               password = getMandatoryProperty("password");
+               log.service("Scanning classpath from: "+pathToScan);
+               EventManager.getInstance().addEventListener(initRepublisher());
+       }
+       
+       private String getMandatoryProperty(String property){
+           String propertyValue = getInitParameter(property);
+        if(StringUtils.isBlank(propertyValue)){
+            throw new IllegalStateException(String.format("Parameter '%' is 
mandatory on module Republisher", property));
+        }
+        return propertyValue;
+       }
+
+       
+       private RepublisherEventListener initRepublisher(){
+           //TODO: this configurations should be externalized. perhaps an xml 
configured spring application context
+           republisher =  new RepublisherEventListener();
+        republisher.setDocumentSerializer(new ToStringSerializer());
+        republisher.setPublicationEndPoint(new DummyPublicationEndPoint());
+        republisher.setCloudProvider(new AuthorizedCloudProvider(username, 
password));
+        republisher.init();
+        republisher.setPopulator(new Populator(pathToScan));
+        return republisher;
+       }
+
+    @Override
+    protected void shutdown() {
+        super.shutdown();
+        republisher.shutdown();
+    }
+}


Property changes on: 
speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/mmbase/republisher/RepublisherModule.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: 
speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/mmbase/republisher/endpoint/DocumentModification.java
===================================================================
--- 
speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/mmbase/republisher/endpoint/DocumentModification.java
                              (rev 0)
+++ 
speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/mmbase/republisher/endpoint/DocumentModification.java
      2009-05-28 08:35:26 UTC (rev 35464)
@@ -0,0 +1,23 @@
+package nl.vpro.mmbase.republisher.endpoint;
+
+public final class DocumentModification {
+    private final ModificationType type;
+    private final String serializedDocument;
+    
+    public DocumentModification(ModificationType type, String 
serializedDocument) {
+        this.type = type;
+        this.serializedDocument = serializedDocument;
+    }
+
+    ModificationType getType() {
+        return type;
+    }
+
+    String getSerializedDocument() {
+        return serializedDocument;
+    }
+    
+    
+    
+    
+}


Property changes on: 
speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/mmbase/republisher/endpoint/DocumentModification.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: 
speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/mmbase/republisher/endpoint/DummyPublicationEndPoint.java
===================================================================
--- 
speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/mmbase/republisher/endpoint/DummyPublicationEndPoint.java
                          (rev 0)
+++ 
speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/mmbase/republisher/endpoint/DummyPublicationEndPoint.java
  2009-05-28 08:35:26 UTC (rev 35464)
@@ -0,0 +1,22 @@
+package nl.vpro.mmbase.republisher.endpoint;
+
+
+
+public final class DummyPublicationEndPoint implements PublicationEndPoint {
+
+    public void init() {
+        // TODO Auto-generated method stub
+
+    }
+
+    public void shutdown() {
+        // TODO Auto-generated method stub
+
+    }
+
+    public void publishDocument(DocumentModification documentModification) 
throws PublicationException {
+        // TODO Auto-generated method stub
+        
+    }
+
+}


Property changes on: 
speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/mmbase/republisher/endpoint/DummyPublicationEndPoint.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: 
speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/mmbase/republisher/endpoint/ModificationType.java
===================================================================
--- 
speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/mmbase/republisher/endpoint/ModificationType.java
                          (rev 0)
+++ 
speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/mmbase/republisher/endpoint/ModificationType.java
  2009-05-28 08:35:26 UTC (rev 35464)
@@ -0,0 +1,5 @@
+package nl.vpro.mmbase.republisher.endpoint;
+
+public enum ModificationType {
+    CREATE,UPDATE,DELETE
+}


Property changes on: 
speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/mmbase/republisher/endpoint/ModificationType.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: 
speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/mmbase/republisher/endpoint/PublicationEndPoint.java
===================================================================
--- 
speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/mmbase/republisher/endpoint/PublicationEndPoint.java
                               (rev 0)
+++ 
speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/mmbase/republisher/endpoint/PublicationEndPoint.java
       2009-05-28 08:35:26 UTC (rev 35464)
@@ -0,0 +1,10 @@
+package nl.vpro.mmbase.republisher.endpoint;
+
+
+
+public interface PublicationEndPoint {
+    public void init();
+    public void shutdown();
+    
+    public void publishDocument(DocumentModification documentModification) 
throws PublicationException;
+}


Property changes on: 
speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/mmbase/republisher/endpoint/PublicationEndPoint.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: 
speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/mmbase/republisher/endpoint/PublicationException.java
===================================================================
--- 
speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/mmbase/republisher/endpoint/PublicationException.java
                              (rev 0)
+++ 
speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/mmbase/republisher/endpoint/PublicationException.java
      2009-05-28 08:35:26 UTC (rev 35464)
@@ -0,0 +1,5 @@
+package nl.vpro.mmbase.republisher.endpoint;
+
+public class PublicationException extends RuntimeException {
+
+}


Property changes on: 
speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/mmbase/republisher/endpoint/PublicationException.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: 
speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/mmbase/republisher/serializer/DocumentSerializer.java
===================================================================
--- 
speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/mmbase/republisher/serializer/DocumentSerializer.java
                              (rev 0)
+++ 
speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/mmbase/republisher/serializer/DocumentSerializer.java
      2009-05-28 08:35:26 UTC (rev 35464)
@@ -0,0 +1,5 @@
+package nl.vpro.mmbase.republisher.serializer;
+
+public interface DocumentSerializer {
+    public String serializeDocument(Object document) throws 
SerializationException;
+}


Property changes on: 
speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/mmbase/republisher/serializer/DocumentSerializer.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: 
speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/mmbase/republisher/serializer/SerializationException.java
===================================================================
--- 
speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/mmbase/republisher/serializer/SerializationException.java
                          (rev 0)
+++ 
speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/mmbase/republisher/serializer/SerializationException.java
  2009-05-28 08:35:26 UTC (rev 35464)
@@ -0,0 +1,5 @@
+package nl.vpro.mmbase.republisher.serializer;
+
+public class SerializationException extends RuntimeException {
+
+}


Property changes on: 
speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/mmbase/republisher/serializer/SerializationException.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: 
speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/mmbase/republisher/serializer/ToStringSerializer.java
===================================================================
--- 
speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/mmbase/republisher/serializer/ToStringSerializer.java
                              (rev 0)
+++ 
speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/mmbase/republisher/serializer/ToStringSerializer.java
      2009-05-28 08:35:26 UTC (rev 35464)
@@ -0,0 +1,9 @@
+package nl.vpro.mmbase.republisher.serializer;
+
+public final class ToStringSerializer implements DocumentSerializer {
+
+    public String serializeDocument(Object document) {
+        return document.toString();
+    }
+
+}


Property changes on: 
speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/mmbase/republisher/serializer/ToStringSerializer.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: 
speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/mmbase/republisher/validator/DocumentValidator.java
===================================================================
--- 
speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/mmbase/republisher/validator/DocumentValidator.java
                                (rev 0)
+++ 
speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/mmbase/republisher/validator/DocumentValidator.java
        2009-05-28 08:35:26 UTC (rev 35464)
@@ -0,0 +1,5 @@
+package nl.vpro.mmbase.republisher.validator;
+
+public interface DocumentValidator {
+    public boolean isValid(Object document);
+}


Property changes on: 
speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/mmbase/republisher/validator/DocumentValidator.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: 
speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/mmbase/republisher/validator/DummyValidator.java
===================================================================
--- 
speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/mmbase/republisher/validator/DummyValidator.java
                           (rev 0)
+++ 
speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/mmbase/republisher/validator/DummyValidator.java
   2009-05-28 08:35:26 UTC (rev 35464)
@@ -0,0 +1,9 @@
+package nl.vpro.mmbase.republisher.validator;
+
+public final class DummyValidator implements DocumentValidator {
+
+    public boolean isValid(Object document) {
+        return true;
+    }
+
+}


Property changes on: 
speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/mmbase/republisher/validator/DummyValidator.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: 
speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/mmbase/republisher/validator/OvalDocumentValidator.java
===================================================================
--- 
speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/mmbase/republisher/validator/OvalDocumentValidator.java
                            (rev 0)
+++ 
speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/mmbase/republisher/validator/OvalDocumentValidator.java
    2009-05-28 08:35:26 UTC (rev 35464)
@@ -0,0 +1,10 @@
+package nl.vpro.mmbase.republisher.validator;
+
+public final class OvalDocumentValidator implements DocumentValidator {
+
+    public boolean isValid(Object document) {
+        // TODO Auto-generated method stub
+        return false;
+    }
+
+}


Property changes on: 
speeltuin/ernst/mmbase-republisher/src/main/java/nl/vpro/mmbase/republisher/validator/OvalDocumentValidator.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: 
speeltuin/ernst/mmbase-republisher/src/main/resources/org/mmbase/config/INDEX
===================================================================
--- 
speeltuin/ernst/mmbase-republisher/src/main/resources/org/mmbase/config/INDEX   
                            (rev 0)
+++ 
speeltuin/ernst/mmbase-republisher/src/main/resources/org/mmbase/config/INDEX   
    2009-05-28 08:35:26 UTC (rev 35464)
@@ -0,0 +1,2 @@
+INDEX
+modules/

Added: 
speeltuin/ernst/mmbase-republisher/src/main/resources/org/mmbase/config/modules/INDEX
===================================================================
--- 
speeltuin/ernst/mmbase-republisher/src/main/resources/org/mmbase/config/modules/INDEX
                               (rev 0)
+++ 
speeltuin/ernst/mmbase-republisher/src/main/resources/org/mmbase/config/modules/INDEX
       2009-05-28 08:35:26 UTC (rev 35464)
@@ -0,0 +1,2 @@
+republisher.xml
+INDEX

Added: 
speeltuin/ernst/mmbase-republisher/src/main/resources/org/mmbase/config/modules/republisher.xml
===================================================================
--- 
speeltuin/ernst/mmbase-republisher/src/main/resources/org/mmbase/config/modules/republisher.xml
                             (rev 0)
+++ 
speeltuin/ernst/mmbase-republisher/src/main/resources/org/mmbase/config/modules/republisher.xml
     2009-05-28 08:35:26 UTC (rev 35464)
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE module PUBLIC "//MMBase - module//" 
"http://www.mmbase.org/dtd/module.dtd";>
+<module version="0" maintainer="vpro">
+  <status>active</status>
+  <classfile>nl.vpro.mmbase.vob.Republisher</classfile>
+  <properties>
+    <property name="pathToScan" value="nl.vpro"/>
+  </properties>
+</module>
+
+


Property changes on: 
speeltuin/ernst/mmbase-republisher/src/main/resources/org/mmbase/config/modules/republisher.xml
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: 
speeltuin/ernst/mmbase-republisher/src/test/java/nl/vpro/mmbase/republisher/RepublisherEventListenerTest.java
===================================================================
--- 
speeltuin/ernst/mmbase-republisher/src/test/java/nl/vpro/mmbase/republisher/RepublisherEventListenerTest.java
                               (rev 0)
+++ 
speeltuin/ernst/mmbase-republisher/src/test/java/nl/vpro/mmbase/republisher/RepublisherEventListenerTest.java
       2009-05-28 08:35:26 UTC (rev 35464)
@@ -0,0 +1,25 @@
+package nl.vpro.mmbase.republisher;
+
+import nl.vpro.mmbase.vob.Populator;
+
+import org.junit.Before;
+import org.junit.Test;
+
+
+public class RepublisherEventListenerTest {
+    private Populator populator;
+    
+    @Before
+    public void init(){
+        populator  = new Populator("nl.vpro.mmbase.republisher.domain");
+    }
+    
+    @Test
+    public void testCreateNodeEvent(){
+        //set up mock for cloud.
+        //setup node event
+        //setup Event Listener
+        
+        
+    }
+}


Property changes on: 
speeltuin/ernst/mmbase-republisher/src/test/java/nl/vpro/mmbase/republisher/RepublisherEventListenerTest.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: 
speeltuin/ernst/mmbase-republisher/src/test/java/nl/vpro/mmbase/republisher/domain/mynews/Image.java
===================================================================
--- 
speeltuin/ernst/mmbase-republisher/src/test/java/nl/vpro/mmbase/republisher/domain/mynews/Image.java
                                (rev 0)
+++ 
speeltuin/ernst/mmbase-republisher/src/test/java/nl/vpro/mmbase/republisher/domain/mynews/Image.java
        2009-05-28 08:35:26 UTC (rev 35464)
@@ -0,0 +1,53 @@
+package nl.vpro.mmbase.republisher.domain.mynews;
+
+import org.apache.commons.lang.builder.ReflectionToStringBuilder;
+
+import nl.vpro.mmbase.vob.annotations.Entity;
+import nl.vpro.mmbase.vob.annotations.Field;
+
+...@entity(builder = "images")
+public class Image {
+       private int number;
+       private String title;
+       private String description;
+
+       @Field(nodeField = "itype")
+       private String type;
+
+       public int getNumber() {
+               return number;
+       }
+
+       public void setNumber(int number) {
+               this.number = number;
+       }
+
+       public String getTitle() {
+               return title;
+       }
+
+       public void setTitle(String title) {
+               this.title = title;
+       }
+
+       public String getDescription() {
+               return description;
+       }
+
+       public void setDescription(String description) {
+               this.description = description;
+       }
+
+       public String getType() {
+               return type;
+       }
+
+       public void setType(String type) {
+               this.type = type;
+       }
+
+       @Override
+       public String toString() {
+               return new ReflectionToStringBuilder(this).toString();
+       }
+}


Property changes on: 
speeltuin/ernst/mmbase-republisher/src/test/java/nl/vpro/mmbase/republisher/domain/mynews/Image.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: 
speeltuin/ernst/mmbase-republisher/src/test/java/nl/vpro/mmbase/republisher/domain/mynews/News.java
===================================================================
--- 
speeltuin/ernst/mmbase-republisher/src/test/java/nl/vpro/mmbase/republisher/domain/mynews/News.java
                         (rev 0)
+++ 
speeltuin/ernst/mmbase-republisher/src/test/java/nl/vpro/mmbase/republisher/domain/mynews/News.java
 2009-05-28 08:35:26 UTC (rev 35464)
@@ -0,0 +1,99 @@
+package nl.vpro.mmbase.republisher.domain.mynews;
+
+import java.util.Date;
+import java.util.List;
+
+import nl.vpro.mmbase.vob.Direction;
+import nl.vpro.mmbase.vob.annotations.*;
+import nl.vpro.mmbase.vob.converters.EpochDateConverter;
+
+import org.apache.commons.lang.builder.ReflectionToStringBuilder;
+
+...@entity(builder = "news")
+public class News {
+       private String title;
+       private String subtitle;
+       private String intro;
+       private String text;
+
+       @PosRel(orderDirection = Direction.DESC)
+       private List<Url> urls;
+
+       @Rel()
+       private List<Person> people;
+
+       @PosRel(orderDirection = Direction.DESC)
+       private List<Image> images;
+
+       @Field(convertor = EpochDateConverter.class)
+       private Date date;
+
+       public String getTitle() {
+               return title;
+       }
+
+       public void setTitle(String title) {
+               this.title = title;
+       }
+
+       public String getSubtitle() {
+               return subtitle;
+       }
+
+       public void setSubtitle(String subtitle) {
+               this.subtitle = subtitle;
+       }
+
+       public String getIntro() {
+               return intro;
+       }
+
+       public void setIntro(String intro) {
+               this.intro = intro;
+       }
+
+       public String getText() {
+               return text;
+       }
+
+       public void setText(String text) {
+               this.text = text;
+       }
+
+       public List<Url> getUrls() {
+               return urls;
+       }
+
+       public void setUrls(List<Url> urls) {
+               this.urls = urls;
+       }
+
+       public List<Person> getPeople() {
+               return people;
+       }
+
+       public void setPeople(List<Person> people) {
+               this.people = people;
+       }
+
+       public List<Image> getImages() {
+               return images;
+       }
+
+       public void setImages(List<Image> images) {
+               this.images = images;
+       }
+
+       public Date getDate() {
+               return date;
+       }
+
+       public void setDate(Date date) {
+               this.date = date;
+       }
+
+       @Override
+       public String toString() {
+               return new ReflectionToStringBuilder(this).toString();
+       }
+}


Property changes on: 
speeltuin/ernst/mmbase-republisher/src/test/java/nl/vpro/mmbase/republisher/domain/mynews/News.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: 
speeltuin/ernst/mmbase-republisher/src/test/java/nl/vpro/mmbase/republisher/domain/mynews/Person.java
===================================================================
--- 
speeltuin/ernst/mmbase-republisher/src/test/java/nl/vpro/mmbase/republisher/domain/mynews/Person.java
                               (rev 0)
+++ 
speeltuin/ernst/mmbase-republisher/src/test/java/nl/vpro/mmbase/republisher/domain/mynews/Person.java
       2009-05-28 08:35:26 UTC (rev 35464)
@@ -0,0 +1,65 @@
+package nl.vpro.mmbase.republisher.domain.mynews;
+
+import java.util.List;
+
+import nl.vpro.mmbase.vob.annotations.Entity;
+import nl.vpro.mmbase.vob.annotations.Rel;
+
+import org.apache.commons.lang.builder.ReflectionToStringBuilder;
+
+...@entity(builder = "people")
+public class Person {
+       private String firstname;
+       private String lastname;
+       private String email;
+       private String account;
+
+       @Rel()
+       private List<Image> images;
+
+       public List<Image> getImages() {
+               return images;
+       }
+
+       public void setImages(List<Image> images) {
+               this.images = images;
+       }
+
+       public String getFirstname() {
+               return firstname;
+       }
+
+       public void setFirstname(String firstname) {
+               this.firstname = firstname;
+       }
+
+       public String getLastname() {
+               return lastname;
+       }
+
+       public void setLastname(String lastname) {
+               this.lastname = lastname;
+       }
+
+       public String getEmail() {
+               return email;
+       }
+
+       public void setEmail(String email) {
+               this.email = email;
+       }
+
+       public String getAccount() {
+               return account;
+       }
+
+       public void setAccount(String account) {
+               this.account = account;
+       }
+
+       @Override
+       public String toString() {
+               return new ReflectionToStringBuilder(this).toString();
+       }
+
+}


Property changes on: 
speeltuin/ernst/mmbase-republisher/src/test/java/nl/vpro/mmbase/republisher/domain/mynews/Person.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: 
speeltuin/ernst/mmbase-republisher/src/test/java/nl/vpro/mmbase/republisher/domain/mynews/Url.java
===================================================================
--- 
speeltuin/ernst/mmbase-republisher/src/test/java/nl/vpro/mmbase/republisher/domain/mynews/Url.java
                          (rev 0)
+++ 
speeltuin/ernst/mmbase-republisher/src/test/java/nl/vpro/mmbase/republisher/domain/mynews/Url.java
  2009-05-28 08:35:26 UTC (rev 35464)
@@ -0,0 +1,31 @@
+package nl.vpro.mmbase.republisher.domain.mynews;
+
+import nl.vpro.mmbase.vob.annotations.Entity;
+
+import org.apache.commons.lang.builder.ReflectionToStringBuilder;
+
+...@entity(builder = "urls")
+public class Url {
+       private String url;
+       private String description;
+       
+       public String getUrl() {
+               return url;
+       }
+       public void setUrl(String url) {
+               this.url = url;
+       }
+       public String getDescription() {
+               return description;
+       }
+       public void setDescription(String description) {
+               this.description = description;
+       }
+       
+       @Override
+       public String toString() {
+               return new ReflectionToStringBuilder(this).toString();
+       }
+       
+       
+}


Property changes on: 
speeltuin/ernst/mmbase-republisher/src/test/java/nl/vpro/mmbase/republisher/domain/mynews/Url.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to