Project

General

Profile

« Previous | Next » 

Revision 34244

Refactored StatsJobNode to include the new "migrate cache" action, which has been integrated in the prepare public stats wf.

View differences:

modules/dnet-openaireplus-workflows/branches/dnet-openaireplus-workflows-2.2.1/src/main/java/eu/dnetlib/msro/openaireplus/workflows/nodes/stats/PromoteShadowCacheStatsJobNode.java
22 22
	@Override
23 23
	protected void prepareJob(final BlackboardJob job, final NodeToken token) throws Exception {
24 24
		job.setAction(StatsManagerServiceBBAction.PROMOTE_SHADOW_CACHE.action());
25
		String portal = getTargetPortal(token);
25
		String portal = getPortalName(token);
26 26
		if (StringUtils.isNotBlank(portal)) {
27
			job.getParameters().put(StatsManagerServiceBBAction.PROMOTE_SHADOW_CACHE.getPortalParamName(), portal);
27
			job.getParameters().put(StatsManagerServiceBBAction.PROMOTE_SHADOW_CACHE.getTargetPortalParamName(), portal);
28 28
		} else {
29
			log.warn(StatsManagerServiceBBAction.PROMOTE_SHADOW_CACHE.getPortalParamName() + " not set. The StatsManagerService will use its default.");
29
			log.warn(StatsManagerServiceBBAction.PROMOTE_SHADOW_CACHE.getTargetPortalParamName() + " not set. The StatsManagerService will use its default.");
30 30
		}
31 31
	}
32 32

  
modules/dnet-openaireplus-workflows/branches/dnet-openaireplus-workflows-2.2.1/src/main/java/eu/dnetlib/msro/openaireplus/workflows/nodes/stats/ValidateShadowStatsJobNode.java
26 26
	@Override
27 27
	protected void prepareJob(final BlackboardJob job, final NodeToken token) throws Exception {
28 28
		job.setAction(StatsManagerServiceBBAction.VALIDATE_SHADOW_STATS.action());
29
		String portal = getTargetPortal(token);
29
		String portal = getPortalName(token);
30 30
		if (StringUtils.isNotBlank(portal)) {
31
			job.getParameters().put(StatsManagerServiceBBAction.VALIDATE_SHADOW_STATS.getPortalParamName(), portal);
31
			job.getParameters().put(StatsManagerServiceBBAction.VALIDATE_SHADOW_STATS.getTargetPortalParamName(), portal);
32 32
		} else {
33
			log.warn(StatsManagerServiceBBAction.VALIDATE_SHADOW_STATS.getPortalParamName() + " not set. The StatsManagerService will use its default.");
33
			log.warn(StatsManagerServiceBBAction.VALIDATE_SHADOW_STATS.getTargetPortalParamName() + " not set. The StatsManagerService will use its default.");
34 34
		}
35 35

  
36 36
	}
modules/dnet-openaireplus-workflows/branches/dnet-openaireplus-workflows-2.2.1/src/main/java/eu/dnetlib/msro/openaireplus/workflows/nodes/stats/AbstractStatsJobNode.java
43 43
		}
44 44
	}
45 45

  
46
	public String getTargetPortal(final NodeToken token) {
46
	public String getPortalName(final NodeToken token) {
47 47
		if (StringUtils.isNotBlank(portal)) return portal;
48 48
		else return token.getEnv().getAttribute(portalParam);
49 49
	}
modules/dnet-openaireplus-workflows/branches/dnet-openaireplus-workflows-2.2.1/src/main/java/eu/dnetlib/msro/openaireplus/workflows/nodes/stats/RestoreStatsCacheJobNode.java
26 26
	@Override
27 27
	protected void prepareJob(final BlackboardJob job, final NodeToken token) throws Exception {
28 28
		job.setAction(StatsManagerServiceBBAction.RESTORE_CACHE.action());
29
		String portal = getTargetPortal(token);
29
		String portal = getPortalName(token);
30 30
		if (StringUtils.isNotBlank(portal)) {
31
			job.getParameters().put(StatsManagerServiceBBAction.RESTORE_CACHE.getPortalParamName(), portal);
31
			job.getParameters().put(StatsManagerServiceBBAction.RESTORE_CACHE.getTargetPortalParamName(), portal);
32 32
		} else {
33
			log.warn(StatsManagerServiceBBAction.RESTORE_CACHE.getPortalParamName() + " not set. The StatsManagerService will use its default.");
33
			log.warn(StatsManagerServiceBBAction.RESTORE_CACHE.getTargetPortalParamName() + " not set. The StatsManagerService will use its default.");
34 34
		}
35 35
	}
36 36

  
modules/dnet-openaireplus-workflows/branches/dnet-openaireplus-workflows-2.2.1/src/main/java/eu/dnetlib/msro/openaireplus/workflows/nodes/stats/BackupStatsCacheJobNode.java
24 24
	@Override
25 25
	protected void prepareJob(final BlackboardJob job, final NodeToken token) throws Exception {
26 26
		job.setAction(StatsManagerServiceBBAction.BACKUP_CACHE.action());
27
		String portal = getTargetPortal(token);
27
		String portal = getPortalName(token);
28 28
		if (StringUtils.isNotBlank(portal)) {
29
			job.getParameters().put(StatsManagerServiceBBAction.BACKUP_CACHE.getPortalParamName(), portal);
29
			job.getParameters().put(StatsManagerServiceBBAction.BACKUP_CACHE.getTargetPortalParamName(), portal);
30 30
		} else {
31
			log.warn(StatsManagerServiceBBAction.BACKUP_CACHE.getPortalParamName() + " not set. The StatsManagerService will use its default.");
31
			log.warn(StatsManagerServiceBBAction.BACKUP_CACHE.getTargetPortalParamName() + " not set. The StatsManagerService will use its default.");
32 32
		}
33 33
	}
34 34
}
modules/dnet-openaireplus-workflows/branches/dnet-openaireplus-workflows-2.2.1/src/main/java/eu/dnetlib/msro/openaireplus/workflows/nodes/stats/RefreshShadowCacheJobNode.java
25 25
	@Override
26 26
	protected void prepareJob(final BlackboardJob job, final NodeToken token) throws Exception {
27 27
		job.setAction(StatsManagerServiceBBAction.REFRESH_SHADOW_CACHE.action());
28
		String portal = getTargetPortal(token);
28
		String portal = getPortalName(token);
29 29
		if (StringUtils.isNotBlank(portal)) {
30
			job.getParameters().put(StatsManagerServiceBBAction.REFRESH_SHADOW_CACHE.getPortalParamName(), portal);
30
			job.getParameters().put(StatsManagerServiceBBAction.REFRESH_SHADOW_CACHE.getTargetPortalParamName(), portal);
31 31
		} else {
32
			log.warn(StatsManagerServiceBBAction.REFRESH_SHADOW_CACHE.getPortalParamName() + " not set. The StatsManagerService will use its default.");
32
			log.warn(StatsManagerServiceBBAction.REFRESH_SHADOW_CACHE.getTargetPortalParamName() + " not set. The StatsManagerService will use its default.");
33 33
		}
34 34
	}
35 35

  
modules/dnet-openaireplus-workflows/branches/dnet-openaireplus-workflows-2.2.1/src/main/java/eu/dnetlib/msro/openaireplus/workflows/nodes/stats/PromoteShadowStatsJobNode.java
32 32
	@Override
33 33
	protected void prepareJob(final BlackboardJob job, final NodeToken token) throws Exception {
34 34
		job.setAction(StatsManagerServiceBBAction.PROMOTE_SHADOW_STATS.action());
35
		String portal = getTargetPortal(token);
35
		String portal = getPortalName(token);
36 36
		if (StringUtils.isNotBlank(portal)) {
37
			job.getParameters().put(StatsManagerServiceBBAction.PROMOTE_SHADOW_STATS.getPortalParamName(), portal);
37
			job.getParameters().put(StatsManagerServiceBBAction.PROMOTE_SHADOW_STATS.getTargetPortalParamName(), portal);
38 38
		} else {
39
			log.warn(StatsManagerServiceBBAction.PROMOTE_SHADOW_STATS.getPortalParamName() + " not set. The StatsManagerService will use its default.");
39
			log.warn(StatsManagerServiceBBAction.PROMOTE_SHADOW_STATS.getTargetPortalParamName() + " not set. The StatsManagerService will use its default.");
40 40
		}
41 41
	}
42 42

  
modules/dnet-openaireplus-workflows/branches/dnet-openaireplus-workflows-2.2.1/src/main/java/eu/dnetlib/msro/openaireplus/workflows/nodes/stats/StatsManagerServiceBBAction.java
7 7
		public String action() {
8 8
			return "promoteShadow";
9 9
		}
10

  
11
		@Override
12
		public String getPortalParamName() {
13
			return DEFAULT_PORTAL_PARAM_NAME;
14
		}
15 10
	},
16 11
	PROMOTE_SHADOW_CACHE {
17 12

  
......
19 14
		public String action() {
20 15
			return "promoteCache";
21 16
		}
22

  
23
		@Override
24
		public String getPortalParamName() {
25
			return DEFAULT_PORTAL_PARAM_NAME;
26
		}
27 17
	},
28 18
	REFRESH_SHADOW_CACHE {
29 19

  
......
32 22
			return "refreshCache";
33 23
		}
34 24

  
35
		@Override
36
		public String getPortalParamName() {
37
			return DEFAULT_PORTAL_PARAM_NAME;
38
		}
39 25
	},
40 26
	VALIDATE_SHADOW_STATS {
41 27

  
......
44 30
			return "validate";
45 31
		}
46 32

  
47
		@Override
48
		public String getPortalParamName() {
49
			return DEFAULT_PORTAL_PARAM_NAME;
50
		}
51 33
	},
52 34
	BACKUP_CACHE {
53 35

  
......
56 38
			return "backup";
57 39
		}
58 40

  
59
		@Override
60
		public String getPortalParamName() {
61
			return DEFAULT_PORTAL_PARAM_NAME;
62
		}
63 41
	},
64 42
	RESTORE_CACHE {
65 43

  
......
68 46
			return "restore";
69 47
		}
70 48

  
49
	},
50
	MIGRATE_CACHE {
51

  
71 52
		@Override
72
		public String getPortalParamName() {
73
			return DEFAULT_PORTAL_PARAM_NAME;
53
		public String action() {
54
			return "migrate";
74 55
		}
56

  
57
		@Override
58
		public String getTargetPortalParamName() {
59
			return "targetCache";
60
		}
61

  
75 62
	};
76 63

  
77 64
	public abstract String action();
78 65

  
79
	public abstract String getPortalParamName();
66
	public String getSourcePortalParamName() {
67
		return DEFAULT_PORTAL_PARAM_NAME;
68
	}
80 69

  
70
	public String getTargetPortalParamName() {
71
		return DEFAULT_PORTAL_PARAM_NAME;
72
	}
73

  
81 74
	private static String DEFAULT_PORTAL_PARAM_NAME = "cache";
82 75
}
modules/dnet-openaireplus-workflows/branches/dnet-openaireplus-workflows-2.2.1/src/main/java/eu/dnetlib/msro/openaireplus/workflows/nodes/stats/MigrateStatsCacheJobNode.java
1
package eu.dnetlib.msro.openaireplus.workflows.nodes.stats;
2

  
3
import org.apache.commons.lang.StringUtils;
4
import org.apache.commons.logging.Log;
5
import org.apache.commons.logging.LogFactory;
6

  
7
import com.googlecode.sarasvati.NodeToken;
8

  
9
import eu.dnetlib.enabling.tools.blackboard.BlackboardJob;
10
import eu.dnetlib.msro.rmi.MSROException;
11

  
12
/**
13
 * Ask the StatsManagerService to copy a cache of a portal to another portal cache.
14
 * <p>
15
 * The source portal is specified in the BB parameter <code>StatsManagerServiceBBAction.MIGRATE_CACHE.getPortalParamName()</code>.
16
 * </p>
17
 * <p>
18
 * The target portal is specified in the BB parameter <code>StatsManagerServiceBBAction.MIGRATE_CACHE.getTargetPortalParamName()</code>
19
 * </p>
20
 * 
21
 * @author alessia
22
 * 
23
 */
24
public class MigrateStatsCacheJobNode extends AbstractStatsJobNode {
25

  
26
	private static final Log log = LogFactory.getLog(MigrateStatsCacheJobNode.class); // NOPMD by marko on 11/24/08 5:02 PM
27

  
28
	/**
29
	 * BB parameter defining which is the portal with the source cache to migrate.
30
	 */
31
	private String sourcePortal;
32

  
33
	@Override
34
	protected void prepareJob(final BlackboardJob job, final NodeToken token) throws Exception {
35
		job.setAction(StatsManagerServiceBBAction.MIGRATE_CACHE.action());
36
		if (StringUtils.isBlank(sourcePortal)) throw new MSROException("Parameter sourcePortal required to migrate the cache");
37
		job.getParameters().put(StatsManagerServiceBBAction.MIGRATE_CACHE.getSourcePortalParamName(), sourcePortal);
38
		String targetPortal = getPortalName(token);
39
		if (StringUtils.isNotBlank(targetPortal)) {
40
			job.getParameters().put(StatsManagerServiceBBAction.MIGRATE_CACHE.getTargetPortalParamName(), targetPortal);
41
		} else {
42
			log.warn(StatsManagerServiceBBAction.MIGRATE_CACHE.getTargetPortalParamName() + " not set. The StatsManagerService will use its default.");
43
		}
44

  
45
	}
46
}
modules/dnet-openaireplus-workflows/branches/dnet-openaireplus-workflows-2.2.1/src/main/resources/eu/dnetlib/test/profiles/openaireplus/workflows/dm/stats.prepare.public.xml
40 40
				</PARAMETERS>
41 41
				<ARCS>
42 42
					<ARC name="YES" to="backupCache" />
43
					<ARC name="NO" to="goWithRefresh" />
43
					<ARC name="NO" to="SELECT_MIGRATION" />
44 44
				</ARCS>
45 45
			</NODE>
46 46
			<NODE name="backupCache" type="BackupStatsCache">
......
50 50
					<PARAM managedBy="system" name="portalParam" required="true" type="string">portal</PARAM>
51 51
				</PARAMETERS>
52 52
				<ARCS>
53
					<ARC to="goWithRefresh" />
53
					<ARC to="SELECT_MIGRATION" />
54 54
				</ARCS>
55 55
			</NODE>
56
			<NODE name="goWithRefresh">
57
				<DESCRIPTION>Wait for one branch from SELECT_BACKUP_CACHE</DESCRIPTION>
58
				<PARAMETERS/>
56
			<NODE name="SELECT_MIGRATION" type="Selection">
57
				<DESCRIPTION>Can we migrate the cache from another portal?</DESCRIPTION>
58
				<PARAMETERS>
59
					<PARAM function="validValues(['YES', 'NO'])" managedBy="user" name="selection" required="true" type="string">YES</PARAM>
60
				</PARAMETERS>
59 61
				<ARCS>
60
					<ARC to="refreshShadowCache" />
62
					<ARC name="YES" to="migrateCache" />
63
					<ARC name="NO" to="refreshShadowCache" />
61 64
				</ARCS>
62 65
			</NODE>
66
			<NODE name="migrateCache" type="MigrateStatsCache">
67
				<DESCRIPTION>Migrate the cache from another portal</DESCRIPTION>
68
				<PARAMETERS>
69
					<PARAM name="xqueryForServiceIdParam" type="string" managedBy="system" required="true">xqueryForStatsManagerService</PARAM>
70
					<PARAM managedBy="system" name="portalParam" required="true" type="string">portal</PARAM>
71
					<PARAM function="validValues(['test', 'beta', 'production'])" managedBy="user" name="sourcePortal" required="true" type="string"/>
72
				</PARAMETERS>
73
				<ARCS>
74
					<ARC to="success" />
75
				</ARCS>
76
			</NODE>
63 77
			<NODE name="refreshShadowCache" type="RefreshShadowCache">
64 78
				<DESCRIPTION>Updates the shadow cache according to the shadow stats db.</DESCRIPTION>
65 79
				<PARAMETERS>
modules/dnet-openaireplus-workflows/branches/dnet-openaireplus-workflows-2.2.1/src/main/resources/eu/dnetlib/msro/openaireplus/workflows/applicationContext-msro-openaire-nodes.xml
289 289
		class="eu.dnetlib.msro.openaireplus.workflows.nodes.stats.PromoteShadowCacheStatsJobNode"
290 290
		scope="prototype" />
291 291
		
292
	<bean id="wfNodeMigrateStatsCache"
293
		class="eu.dnetlib.msro.openaireplus.workflows.nodes.stats.MigrateStatsCacheJobNode"
294
		scope="prototype" />
295
		
292 296
</beans>

Also available in: Unified diff