mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
Merged HEAD-BUG-FIX (5.0/Cloud) to HEAD (5.0/Cloud)
75024: Merged WAT2 (5.0/Cloud) to HEAD-BUG-FIX (5.0/Cloud) 71708: Initial implementation of Alfresco Events publishing interfaces git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@75352 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -1090,10 +1090,11 @@
|
||||
<!-- Replacement for Spring's multicaster, that queues up events until the application is started -->
|
||||
<bean id="applicationEventMulticaster" class="org.alfresco.repo.management.SafeApplicationEventMulticaster"/>
|
||||
|
||||
|
||||
|
||||
<bean id="repositoryState" class="org.alfresco.repo.admin.RepositoryState" />
|
||||
|
||||
<!-- Alfresco Events Publisher -->
|
||||
<bean id="eventPublisher" class="org.alfresco.repo.events.NoOpEventPublisher" />
|
||||
|
||||
<!-- index subsystem proxies -->
|
||||
|
||||
<bean id="Search" class="org.alfresco.repo.management.subsystems.SwitchableApplicationContextFactory" parent="abstractPropertyBackedBean">
|
||||
|
5
pom.xml
5
pom.xml
@@ -39,6 +39,11 @@
|
||||
<artifactId>javax.mail</artifactId>
|
||||
<version>1.5.2</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.alfresco.services</groupId>
|
||||
<artifactId>alfresco-events</artifactId>
|
||||
<version>1.1-SNAPSHOT</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.icegreen</groupId>
|
||||
<artifactId>greenmail</artifactId>
|
||||
|
42
source/java/org/alfresco/repo/events/EventPreparator.java
Normal file
42
source/java/org/alfresco/repo/events/EventPreparator.java
Normal file
@@ -0,0 +1,42 @@
|
||||
/*
|
||||
* Copyright (C) 2005-2014 Alfresco Software Limited.
|
||||
*
|
||||
* This file is part of Alfresco
|
||||
*
|
||||
* Alfresco is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Alfresco is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package org.alfresco.repo.events;
|
||||
|
||||
import org.alfresco.events.types.Event;
|
||||
|
||||
|
||||
/**
|
||||
* Creates and prepares event information.
|
||||
*
|
||||
* The primary reason for this interface is to allow for deferred creation
|
||||
* of the Event. If a NoOpEventPublisher is being used then the prepareEvent()
|
||||
* method will never get called.
|
||||
*
|
||||
* As of Java 8 a Lambda expression could be used as the implementation of
|
||||
* this FunctionalInterface
|
||||
*
|
||||
* @author Gethin James
|
||||
* @since 5.0
|
||||
**/
|
||||
|
||||
//@FunctionalInterface
|
||||
public interface EventPreparator
|
||||
{
|
||||
public Event prepareEvent(String user, String networkId, String transactionId);
|
||||
}
|
45
source/java/org/alfresco/repo/events/EventPublisher.java
Normal file
45
source/java/org/alfresco/repo/events/EventPublisher.java
Normal file
@@ -0,0 +1,45 @@
|
||||
/*
|
||||
* Copyright (C) 2005-2014 Alfresco Software Limited.
|
||||
*
|
||||
* This file is part of Alfresco
|
||||
*
|
||||
* Alfresco is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Alfresco is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package org.alfresco.repo.events;
|
||||
|
||||
import org.alfresco.events.types.Event;
|
||||
|
||||
/**
|
||||
* EventPublisher can be used to broadcast events.
|
||||
*
|
||||
* @author Gethin James
|
||||
* @since 5.0
|
||||
*/
|
||||
public interface EventPublisher
|
||||
{
|
||||
//TODO AbstractEventsService should probably implement this interface
|
||||
|
||||
/**
|
||||
* Publish the event
|
||||
* @param event Event
|
||||
*/
|
||||
public void publishEvent(Event event);
|
||||
|
||||
/**
|
||||
* Publish the event using an EventPreparator
|
||||
* @param prep EventPreparator
|
||||
*/
|
||||
public void publishEvent(EventPreparator prep);
|
||||
|
||||
}
|
53
source/java/org/alfresco/repo/events/NoOpEventPublisher.java
Normal file
53
source/java/org/alfresco/repo/events/NoOpEventPublisher.java
Normal file
@@ -0,0 +1,53 @@
|
||||
/*
|
||||
* Copyright (C) 2005-2014 Alfresco Software Limited.
|
||||
*
|
||||
* This file is part of Alfresco
|
||||
*
|
||||
* Alfresco is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Alfresco is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package org.alfresco.repo.events;
|
||||
|
||||
import org.alfresco.events.types.Event;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
/**
|
||||
* An implementation of EventPublisher that does nothing.
|
||||
*
|
||||
* @author Gethin James
|
||||
* @since 5.0
|
||||
*/
|
||||
public class NoOpEventPublisher implements EventPublisher {
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger(NoOpEventPublisher.class);
|
||||
|
||||
@Override
|
||||
public void publishEvent(Event event)
|
||||
{
|
||||
if (logger.isDebugEnabled())
|
||||
{
|
||||
logger.debug("No event published for [" + event + "]");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void publishEvent(EventPreparator prep)
|
||||
{
|
||||
if (logger.isDebugEnabled())
|
||||
{
|
||||
logger.debug("No event published with preparator.");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user