Versiones comparadas

Clave

  • Se ha añadido esta línea.
  • Se ha eliminado esta línea.
  • El formato se ha cambiado.

...

Bloque de código
languagejava
@In
private PushEventsManager pushEventsManager;

public void onSomeEntityChange(Entity entity) {
    pushEventsManager.fireEvent(new PushEvent(entity.getSomeProperty()));
}


Para FundeWeb hemos añadido un sistema a partir del Arquetipo versión 2.0.11, que añade un perfil llamada cluster que permite terne fácilmente esta funcionalidad. Solo tendréis que usar el PushEventsManager para enviar los mensajes a través de las conexiones push. Para añadir esa configuración a una aplicación existente hay que descargar este push-cluster.zip y descomprimir con Extraer aquí en

...

la raíz  del proyecto. Con esto crearemos la carpeta web/src/main/profiles/cluster.

En esta carpeta tendremos la carpeta java donde se encuentra la clase PushReceiver. La ruta a esta clase, es/um/atica/__rootArtifactId__/push (que es una ruta de paquete de código fuente), la tendremos que modificar, cambiando __rootArtifactId__ por el identificador de la aplicación. En la propia clase PushReceiver, tendremos que cambiar los valores ${rootArtifactId} por el identificador de la aplicación (igual que antes).

También tenemos que modificar el fichero web/src/main/profiles/cluster/components.xml, tendremos que cambiar los valores ${rootArtifactId} por el identificador de la aplicación (igual que antes).

Para finalizar, en el POM del módulo Web, tendremos que añadir un perfil a <profiles> (el elemento XML puede estar comentado, por lo que dejamos sin comentar solo las etiquetas <profiles> y </profiles>):

Bloque de código
languagexml
		<profile>
			<id>cluster</id>

			<properties>
				<cluster.profile.folder>src/main/profiles/cluster</cluster.profile.folder>
			</properties>

			<build>
				<plugins>
					<plugin>
						<groupId>org.codehaus.mojo</groupId>
						<artifactId>build-helper-maven-plugin</artifactId>
						<executions>
							<execution>
								<id>add-cluster-java</id>
								<phase>generate-sources</phase>
								<goals>
									<goal>add-source</goal>
								</goals>
								<configuration>
									<sources>
										<source>${cluster.profile.folder}/java</source>
									</sources>
								</configuration>
							</execution>
						</executions>
					</plugin>

					<plugin>
						<groupId>be.hikage.maven.plugins</groupId>
						<artifactId>maven-xmlmerger-plugin</artifactId>
						<executions>
							<execution>
								<id>merge-cluster-components_xml</id>
							    <phase>generate-resources</phase>
								<goals>
									<goal>mergexml</goal>
								</goals>
								<configuration>
									<baseDirectory>${basedir}/src/main/webapp/WEB-INF</baseDirectory>
									<inputDirectory>${cluster.profile.folder}/xmlmerge</inputDirectory>
									<outputDirectory>${basedir}/src/main/webapp/WEB-INF</outputDirectory>
									<mergeFilenamePattern>()(components\.xml)</mergeFilenamePattern>
								</configuration>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>

			<dependencies>
				<dependency>
					<groupId>es.um.atica.fundeweb</groupId>
					<artifactId>fundeweb-cluster</artifactId>
				</dependency>
			</dependencies>
		</profile>



Más información sobre JMS:

...