Loading asie-api/src/main/java/com/inteligr8/alfresco/asie/api/CoreAdminApi.java +5 −0 Original line number Diff line number Diff line Loading @@ -7,6 +7,7 @@ import com.inteligr8.alfresco.asie.model.core.DisableIndexingRequest; import com.inteligr8.alfresco.asie.model.core.EnableIndexingRequest; import com.inteligr8.alfresco.asie.model.core.FixAction; import com.inteligr8.alfresco.asie.model.core.FixRequest; import com.inteligr8.alfresco.asie.model.core.IndexRequest; import com.inteligr8.alfresco.asie.model.core.IndexingStatusAction; import com.inteligr8.alfresco.asie.model.core.NewCoreRequest; import com.inteligr8.alfresco.asie.model.core.NewDefaultIndexRequest; Loading Loading @@ -61,6 +62,10 @@ public interface CoreAdminApi extends com.inteligr8.solr.api.CoreAdminApi { @Produces(MediaType.APPLICATION_JSON) ActionCoreResponse<Action> purge(@BeanParam PurgeRequest request); @GET @Produces(MediaType.APPLICATION_JSON) ActionCoreResponse<Action> index(@BeanParam IndexRequest request); @GET @Produces(MediaType.APPLICATION_JSON) ActionCoreResponse<Action> reindex(@BeanParam ReindexRequest request); Loading asie-api/src/main/java/com/inteligr8/alfresco/asie/model/core/IndexRequest.java 0 → 100644 +106 −0 Original line number Diff line number Diff line package com.inteligr8.alfresco.asie.model.core; import com.inteligr8.solr.model.JsonFormattedResponseRequest; import jakarta.annotation.Nonnull; import jakarta.ws.rs.DefaultValue; import jakarta.ws.rs.QueryParam; public class IndexRequest extends JsonFormattedResponseRequest<IndexRequest> { private static final String ACTION = "index"; @QueryParam("action") @DefaultValue(ACTION) @Nonnull private String action = ACTION; @QueryParam("core") private String core; @QueryParam("txid") private Long transactionId; @QueryParam("acltxid") private Long aclTransactionId; @QueryParam("nodeId") private Long nodeId; @QueryParam("aclid") private Long aclId; public String getAction() { return action; } public void setAction(String action) { this.action = action; } public String getCore() { return core; } public void setCore(String core) { this.core = core; } public IndexRequest withCore(String core) { this.core = core; return this; } public Long getTransactionId() { return transactionId; } public void setTransactionId(Long transactionId) { this.transactionId = transactionId; } public IndexRequest withTransactionId(Long transactionId) { this.transactionId = transactionId; return this; } public Long getAclTransactionId() { return aclTransactionId; } public void setAclTransactionId(Long aclTransactionId) { this.aclTransactionId = aclTransactionId; } public IndexRequest withAclTransactionId(Long aclTransactionId) { this.aclTransactionId = aclTransactionId; return this; } public Long getNodeId() { return nodeId; } public void setNodeId(Long nodeId) { this.nodeId = nodeId; } public IndexRequest withNodeId(Long nodeId) { this.nodeId = nodeId; return this; } public Long getAclId() { return aclId; } public void setAclId(Long aclId) { this.aclId = aclId; } public IndexRequest withAclId(Long aclId) { this.aclId = aclId; return this; } } enterprise-module/src/main/java/com/inteligr8/alfresco/asie/enterprise/service/ShardDiscoveryService.java +10 −3 Original line number Diff line number Diff line Loading @@ -50,12 +50,15 @@ public class ShardDiscoveryService implements com.inteligr8.alfresco.asie.spi.Sh for (Entry<Shard, Set<ShardState>> flocShard : floc.getValue().entrySet()) { for (ShardState shardState : flocShard.getValue()) { ShardSet shardSet = ShardSet.from(floc.getKey(), shardState); if (shardSet.getCore().equals(core)) if (shardSet.getCore().equals(core)) { this.logger.debug("Found matching shard set: {}: {}", core, shardSet); return shardSet; } } } } this.logger.trace("Did not find matching shard set: {}", core); return null; } Loading Loading @@ -97,6 +100,7 @@ public class ShardDiscoveryService implements com.inteligr8.alfresco.asie.spi.Sh } } this.logger.trace("Did not find matching node: {}:{}", nodeHostname, nodePort); return null; } Loading Loading @@ -127,6 +131,7 @@ public class ShardDiscoveryService implements com.inteligr8.alfresco.asie.spi.Sh ShardInstance shardInstance = shardState.getShardInstance(); if (node.equals(SolrHost.from(shardInstance))) { this.logger.trace("Found shard on node: {}: {}", node, shardInstance.getShard().getInstance()); Map<Integer, ShardInstanceState> shardStates = setShardStates.get(shardSet); if (shardStates == null) setShardStates.put(shardSet, shardStates = new HashMap<>()); Loading @@ -152,7 +157,9 @@ public class ShardDiscoveryService implements com.inteligr8.alfresco.asie.spi.Sh for (Entry<Floc, Map<Shard, Set<ShardState>>> floc : flocs.entrySet()) { if (shardMethodSet.contains(floc.getKey().getShardMethod())) { this.logger.trace("Found qualifying shard method: {}", floc.getKey().getShardMethod()); ShardState shardState = this.extractAnyShardState(floc.getValue()); this.logger.trace("Found single shard state representing shard method: {}: {}", floc.getKey().getShardMethod(), shardState); shardSets.add(ShardSet.from(floc.getKey(), shardState)); } } Loading shared/src/main/java/com/inteligr8/alfresco/asie/rest/IndexAcsNodeWebScript.java 0 → 100644 +24 −0 Original line number Diff line number Diff line package com.inteligr8.alfresco.asie.rest; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import com.inteligr8.alfresco.asie.service.IndexService; import com.inteligr8.alfresco.asie.spi.ActionCallback; @Component(value = "webscript.com.inteligr8.alfresco.asie.indexAcsNode.post") public class IndexAcsNodeWebScript extends AbstractAcsNodeActionWebScript { @Autowired private IndexService indexSerivce; @Override protected void executeAction(long nodeDbId, ActionCallback callback, long fullQueueTimeout, TimeUnit fullQueueUnit, long execTimeout, TimeUnit execUnit) throws TimeoutException, InterruptedException { this.indexSerivce.index(nodeDbId, callback, 10L, TimeUnit.SECONDS, 30L, TimeUnit.SECONDS); } } shared/src/main/java/com/inteligr8/alfresco/asie/rest/ReconcileAcsNodesWebScript.java +2 −1 Original line number Diff line number Diff line Loading @@ -32,6 +32,7 @@ public class ReconcileAcsNodesWebScript extends AbstractAsieWebScript { public void executeAuthorized(WebScriptRequest request, WebScriptResponse response) throws IOException { final int fromDbId = this.getRequestTemplateIntegerVariable(request, "fromDbId"); final int toDbId = this.getRequestTemplateIntegerVariable(request, "toDbId"); final boolean index = Boolean.TRUE.equals(this.getOptionalQueryParameter(request, "index", Boolean.class)); final boolean reindex = Boolean.TRUE.equals(this.getOptionalQueryParameter(request, "reindex", Boolean.class)); final boolean includeReconciled = Boolean.TRUE.equals(this.getOptionalQueryParameter(request, "includeReconciled", Boolean.class)); Loading Loading @@ -101,7 +102,7 @@ public class ReconcileAcsNodesWebScript extends AbstractAsieWebScript { }; try { this.reconcileService.reconcile(fromDbId, toDbId, null, reindex, callback, 1L, TimeUnit.HOURS, 2L, TimeUnit.MINUTES); this.reconcileService.reconcile(fromDbId, toDbId, null, index, reindex, callback, 1L, TimeUnit.HOURS, 2L, TimeUnit.MINUTES); if (responseMap.containsKey("error")) { response.setStatus(HttpStatus.INTERNAL_SERVER_ERROR.value()); Loading Loading
asie-api/src/main/java/com/inteligr8/alfresco/asie/api/CoreAdminApi.java +5 −0 Original line number Diff line number Diff line Loading @@ -7,6 +7,7 @@ import com.inteligr8.alfresco.asie.model.core.DisableIndexingRequest; import com.inteligr8.alfresco.asie.model.core.EnableIndexingRequest; import com.inteligr8.alfresco.asie.model.core.FixAction; import com.inteligr8.alfresco.asie.model.core.FixRequest; import com.inteligr8.alfresco.asie.model.core.IndexRequest; import com.inteligr8.alfresco.asie.model.core.IndexingStatusAction; import com.inteligr8.alfresco.asie.model.core.NewCoreRequest; import com.inteligr8.alfresco.asie.model.core.NewDefaultIndexRequest; Loading Loading @@ -61,6 +62,10 @@ public interface CoreAdminApi extends com.inteligr8.solr.api.CoreAdminApi { @Produces(MediaType.APPLICATION_JSON) ActionCoreResponse<Action> purge(@BeanParam PurgeRequest request); @GET @Produces(MediaType.APPLICATION_JSON) ActionCoreResponse<Action> index(@BeanParam IndexRequest request); @GET @Produces(MediaType.APPLICATION_JSON) ActionCoreResponse<Action> reindex(@BeanParam ReindexRequest request); Loading
asie-api/src/main/java/com/inteligr8/alfresco/asie/model/core/IndexRequest.java 0 → 100644 +106 −0 Original line number Diff line number Diff line package com.inteligr8.alfresco.asie.model.core; import com.inteligr8.solr.model.JsonFormattedResponseRequest; import jakarta.annotation.Nonnull; import jakarta.ws.rs.DefaultValue; import jakarta.ws.rs.QueryParam; public class IndexRequest extends JsonFormattedResponseRequest<IndexRequest> { private static final String ACTION = "index"; @QueryParam("action") @DefaultValue(ACTION) @Nonnull private String action = ACTION; @QueryParam("core") private String core; @QueryParam("txid") private Long transactionId; @QueryParam("acltxid") private Long aclTransactionId; @QueryParam("nodeId") private Long nodeId; @QueryParam("aclid") private Long aclId; public String getAction() { return action; } public void setAction(String action) { this.action = action; } public String getCore() { return core; } public void setCore(String core) { this.core = core; } public IndexRequest withCore(String core) { this.core = core; return this; } public Long getTransactionId() { return transactionId; } public void setTransactionId(Long transactionId) { this.transactionId = transactionId; } public IndexRequest withTransactionId(Long transactionId) { this.transactionId = transactionId; return this; } public Long getAclTransactionId() { return aclTransactionId; } public void setAclTransactionId(Long aclTransactionId) { this.aclTransactionId = aclTransactionId; } public IndexRequest withAclTransactionId(Long aclTransactionId) { this.aclTransactionId = aclTransactionId; return this; } public Long getNodeId() { return nodeId; } public void setNodeId(Long nodeId) { this.nodeId = nodeId; } public IndexRequest withNodeId(Long nodeId) { this.nodeId = nodeId; return this; } public Long getAclId() { return aclId; } public void setAclId(Long aclId) { this.aclId = aclId; } public IndexRequest withAclId(Long aclId) { this.aclId = aclId; return this; } }
enterprise-module/src/main/java/com/inteligr8/alfresco/asie/enterprise/service/ShardDiscoveryService.java +10 −3 Original line number Diff line number Diff line Loading @@ -50,12 +50,15 @@ public class ShardDiscoveryService implements com.inteligr8.alfresco.asie.spi.Sh for (Entry<Shard, Set<ShardState>> flocShard : floc.getValue().entrySet()) { for (ShardState shardState : flocShard.getValue()) { ShardSet shardSet = ShardSet.from(floc.getKey(), shardState); if (shardSet.getCore().equals(core)) if (shardSet.getCore().equals(core)) { this.logger.debug("Found matching shard set: {}: {}", core, shardSet); return shardSet; } } } } this.logger.trace("Did not find matching shard set: {}", core); return null; } Loading Loading @@ -97,6 +100,7 @@ public class ShardDiscoveryService implements com.inteligr8.alfresco.asie.spi.Sh } } this.logger.trace("Did not find matching node: {}:{}", nodeHostname, nodePort); return null; } Loading Loading @@ -127,6 +131,7 @@ public class ShardDiscoveryService implements com.inteligr8.alfresco.asie.spi.Sh ShardInstance shardInstance = shardState.getShardInstance(); if (node.equals(SolrHost.from(shardInstance))) { this.logger.trace("Found shard on node: {}: {}", node, shardInstance.getShard().getInstance()); Map<Integer, ShardInstanceState> shardStates = setShardStates.get(shardSet); if (shardStates == null) setShardStates.put(shardSet, shardStates = new HashMap<>()); Loading @@ -152,7 +157,9 @@ public class ShardDiscoveryService implements com.inteligr8.alfresco.asie.spi.Sh for (Entry<Floc, Map<Shard, Set<ShardState>>> floc : flocs.entrySet()) { if (shardMethodSet.contains(floc.getKey().getShardMethod())) { this.logger.trace("Found qualifying shard method: {}", floc.getKey().getShardMethod()); ShardState shardState = this.extractAnyShardState(floc.getValue()); this.logger.trace("Found single shard state representing shard method: {}: {}", floc.getKey().getShardMethod(), shardState); shardSets.add(ShardSet.from(floc.getKey(), shardState)); } } Loading
shared/src/main/java/com/inteligr8/alfresco/asie/rest/IndexAcsNodeWebScript.java 0 → 100644 +24 −0 Original line number Diff line number Diff line package com.inteligr8.alfresco.asie.rest; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import com.inteligr8.alfresco.asie.service.IndexService; import com.inteligr8.alfresco.asie.spi.ActionCallback; @Component(value = "webscript.com.inteligr8.alfresco.asie.indexAcsNode.post") public class IndexAcsNodeWebScript extends AbstractAcsNodeActionWebScript { @Autowired private IndexService indexSerivce; @Override protected void executeAction(long nodeDbId, ActionCallback callback, long fullQueueTimeout, TimeUnit fullQueueUnit, long execTimeout, TimeUnit execUnit) throws TimeoutException, InterruptedException { this.indexSerivce.index(nodeDbId, callback, 10L, TimeUnit.SECONDS, 30L, TimeUnit.SECONDS); } }
shared/src/main/java/com/inteligr8/alfresco/asie/rest/ReconcileAcsNodesWebScript.java +2 −1 Original line number Diff line number Diff line Loading @@ -32,6 +32,7 @@ public class ReconcileAcsNodesWebScript extends AbstractAsieWebScript { public void executeAuthorized(WebScriptRequest request, WebScriptResponse response) throws IOException { final int fromDbId = this.getRequestTemplateIntegerVariable(request, "fromDbId"); final int toDbId = this.getRequestTemplateIntegerVariable(request, "toDbId"); final boolean index = Boolean.TRUE.equals(this.getOptionalQueryParameter(request, "index", Boolean.class)); final boolean reindex = Boolean.TRUE.equals(this.getOptionalQueryParameter(request, "reindex", Boolean.class)); final boolean includeReconciled = Boolean.TRUE.equals(this.getOptionalQueryParameter(request, "includeReconciled", Boolean.class)); Loading Loading @@ -101,7 +102,7 @@ public class ReconcileAcsNodesWebScript extends AbstractAsieWebScript { }; try { this.reconcileService.reconcile(fromDbId, toDbId, null, reindex, callback, 1L, TimeUnit.HOURS, 2L, TimeUnit.MINUTES); this.reconcileService.reconcile(fromDbId, toDbId, null, index, reindex, callback, 1L, TimeUnit.HOURS, 2L, TimeUnit.MINUTES); if (responseMap.containsKey("error")) { response.setStatus(HttpStatus.INTERNAL_SERVER_ERROR.value()); Loading