Commit 1230a07a authored by Brian Long's avatar Brian Long
Browse files

added transaction wrapper to REST declaration

parent 47835d85
Loading
Loading
Loading
Loading
+1 −35
Original line number Diff line number Diff line
package com.inteligr8.alfresco.asie.service;

import org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransactionCallback;
import org.alfresco.service.cmr.attributes.AttributeService;
import org.alfresco.service.transaction.TransactionService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -25,22 +23,10 @@ public class ShardBackupService implements com.inteligr8.alfresco.asie.spi.Shard
	@Qualifier(Constants.QUALIFIER_ASIE)
	private AttributeService attributeService;
	
	@Autowired
	private TransactionService txService;
	
	@Value("${inteligr8.asie.backup.persistTimeMinutes}")
	private int persistTimeMinutes;
	
	public SolrHost selectNode(ShardSet shardSet, int shardId, SolrHost node) {
		return this.txService.getRetryingTransactionHelper().doInTransaction(new RetryingTransactionCallback<SolrHost>() {
			@Override
			public SolrHost execute() {
				return selectNodeTx(shardSet, shardId, node);
			}
		}, false, false);
	}
	
	protected SolrHost selectNodeTx(ShardSet shardSet, int shardId, SolrHost node) {
		String shardKey = shardSet.getCore() + "-" + shardId;
		
		PersistedNode backupNode = (PersistedNode) this.attributeService.getAttribute(Constants.ATTR_ASIE, ATTR_BACKUP_NODE, shardKey);
@@ -55,30 +41,10 @@ public class ShardBackupService implements com.inteligr8.alfresco.asie.spi.Shard
	}
	
	public void forget() {
		this.txService.getRetryingTransactionHelper().doInTransaction(new RetryingTransactionCallback<Void>() {
			@Override
			public Void execute() {
				forgetTx();
				return null;
			}
		}, false, false);
	}
	
	protected void forgetTx() {
		this.attributeService.removeAttribute(Constants.ATTR_ASIE, ATTR_BACKUP_NODE);
	}
	
	public void forget(final ShardSet shardSet, final int shardId) {
		this.txService.getRetryingTransactionHelper().doInTransaction(new RetryingTransactionCallback<Void>() {
			@Override
			public Void execute() {
				forgetTx(shardSet, shardId);
				return null;
			}
		}, false, false);
	}
	
	public void forgetTx(ShardSet shardSet, int shardId) {
	public void forget(ShardSet shardSet, int shardId) {
		String shardKey = shardSet.getCore() + "-" + shardId;
		this.attributeService.removeAttribute(Constants.ATTR_ASIE, ATTR_BACKUP_NODE, shardKey);
	}
+3 −0
Original line number Diff line number Diff line
@@ -38,6 +38,9 @@
	<!-- Security -->
	<authentication>none</authentication>
	
	<!-- Transaction -->
	<transaction>required</transaction>
	
	<!-- Functionality -->
	<cache>
		<never>false</never>
+3 −0
Original line number Diff line number Diff line
@@ -34,6 +34,9 @@
	<!-- Security -->
	<authentication>none</authentication>
	
	<!-- Transaction -->
	<transaction>required</transaction>
	
	<!-- Functionality -->
	<cache>
		<never>false</never>
+3 −0
Original line number Diff line number Diff line
@@ -31,6 +31,9 @@
	<!-- Security -->
	<authentication>admin</authentication>
	
	<!-- Transaction -->
	<transaction>required</transaction>
	
	<!-- Functionality -->
	<cache>
		<never>false</never>
+3 −0
Original line number Diff line number Diff line
@@ -34,6 +34,9 @@
	<!-- Security -->
	<authentication>admin</authentication>
	
	<!-- Transaction -->
	<transaction>required</transaction>
	
	<!-- Functionality -->
	<cache>
		<never>false</never>
Loading