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
