Merge branch 'develop' into feature/community
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
package com.inteligr8.alfresco.asie.rest;
|
||||
package com.inteligr8.alfresco.asie.enterprise.rest;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.Serializable;
|
||||
@@ -17,7 +17,6 @@ import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.extensions.webscripts.WebScriptException;
|
||||
import org.springframework.extensions.webscripts.WebScriptRequest;
|
||||
import org.springframework.extensions.webscripts.WebScriptResponse;
|
||||
import org.springframework.http.HttpStatus;
|
||||
@@ -25,6 +24,7 @@ import org.springframework.http.HttpStatus;
|
||||
import com.inteligr8.alfresco.asie.Constants;
|
||||
import com.inteligr8.alfresco.asie.api.CoreAdminApi;
|
||||
import com.inteligr8.alfresco.asie.model.NodeParameterSet;
|
||||
import com.inteligr8.alfresco.asie.rest.AbstractAsieNodeWebScript;
|
||||
import com.inteligr8.alfresco.asie.service.ShardBackupService;
|
||||
import com.inteligr8.alfresco.asie.spi.ShardStateService;
|
||||
import com.inteligr8.solr.model.CoreMetadata;
|
||||
@@ -84,9 +84,11 @@ public abstract class AbstractUnregisterNodeWebScript<T extends NodeParameterSet
|
||||
ShardState shardNode = matchingCore.getValue();
|
||||
String core = shardNode.getPropertyBag().get("coreName");
|
||||
|
||||
try {
|
||||
StatusResponse status = this.getCoreStatus(nodeHostname, nodePort, core);
|
||||
if (status == null)
|
||||
throw new WebScriptException(HttpStatus.INTERNAL_SERVER_ERROR.value(), "This should never happen");
|
||||
if (status == null) {
|
||||
this.logger.warn("Registered host/core status could not be retrieved: {}:{}/solr/{}", nodeHostname, nodePort, core);
|
||||
} else {
|
||||
CoreMetadata coreMetadata = status.getStatus().getCores().get(core);
|
||||
if (coreMetadata == null || coreMetadata.getName() == null) {
|
||||
this.logger.warn("Registered core does not actually exist on the node host; could be a DNS issue: {}:{}/solr/{}", nodeHostname, nodePort, core);
|
||||
@@ -94,10 +96,12 @@ public abstract class AbstractUnregisterNodeWebScript<T extends NodeParameterSet
|
||||
this.unloadCore(nodeHostname, nodePort, core);
|
||||
cores.put(core, coreMetadata.getInstancePath());
|
||||
}
|
||||
|
||||
}
|
||||
} finally {
|
||||
this.sss.remove(matchingCore.getKey());
|
||||
this.sbs.forget(shardNode);
|
||||
}
|
||||
}
|
||||
} finally {
|
||||
// FIXME maybe a separate tx?
|
||||
this.attrService.setAttribute((Serializable) cores, keys);
|
@@ -1,4 +1,4 @@
|
||||
package com.inteligr8.alfresco.asie.rest;
|
||||
package com.inteligr8.alfresco.asie.enterprise.rest;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.Serializable;
|
||||
@@ -21,6 +21,7 @@ import org.springframework.stereotype.Component;
|
||||
|
||||
import com.inteligr8.alfresco.asie.Constants;
|
||||
import com.inteligr8.alfresco.asie.api.CoreAdminApi;
|
||||
import com.inteligr8.alfresco.asie.rest.AbstractAsieNodeWebScript;
|
||||
import com.inteligr8.solr.model.ExceptionResponse;
|
||||
import com.inteligr8.solr.model.core.CreateRequest;
|
||||
import com.inteligr8.solr.model.core.ReloadRequest;
|
@@ -1,4 +1,4 @@
|
||||
package com.inteligr8.alfresco.asie.rest;
|
||||
package com.inteligr8.alfresco.asie.enterprise.rest;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.Serializable;
|
||||
@@ -23,6 +23,7 @@ import org.springframework.stereotype.Component;
|
||||
|
||||
import com.inteligr8.alfresco.asie.Constants;
|
||||
import com.inteligr8.alfresco.asie.api.CoreAdminApi;
|
||||
import com.inteligr8.alfresco.asie.rest.AbstractAsieNodeWebScript;
|
||||
import com.inteligr8.solr.model.ExceptionResponse;
|
||||
import com.inteligr8.solr.model.core.CreateRequest;
|
||||
import com.inteligr8.solr.model.core.ReloadRequest;
|
@@ -1,4 +1,4 @@
|
||||
package com.inteligr8.alfresco.asie.rest;
|
||||
package com.inteligr8.alfresco.asie.enterprise.rest;
|
||||
|
||||
import org.alfresco.repo.index.shard.ShardState;
|
||||
import org.springframework.extensions.webscripts.WebScriptRequest;
|
@@ -1,4 +1,4 @@
|
||||
package com.inteligr8.alfresco.asie.rest;
|
||||
package com.inteligr8.alfresco.asie.enterprise.rest;
|
||||
|
||||
import org.springframework.extensions.webscripts.WebScriptRequest;
|
||||
import org.springframework.stereotype.Component;
|
@@ -1,3 +1,3 @@
|
||||
|
||||
logger.inteligr8-asie.name=com.inteligr8.alfresco.asie.enterprise
|
||||
logger.inteligr8-asie.level=INFO
|
||||
logger.inteligr8-asie-ent.name=com.inteligr8.alfresco.asie.enterprise
|
||||
logger.inteligr8-asie-ent.level=INFO
|
||||
|
4
shared/src/main/java/com/inteligr8/alfresco/asie/Constants.java
Normal file → Executable file
4
shared/src/main/java/com/inteligr8/alfresco/asie/Constants.java
Normal file → Executable file
@@ -2,6 +2,8 @@ package com.inteligr8.alfresco.asie;
|
||||
|
||||
public interface Constants {
|
||||
|
||||
static final String NAMESPACE_ASIE = "http://inteligr8.com/alfresco/asie";
|
||||
|
||||
static final String QUALIFIER_ASIE = "asie";
|
||||
|
||||
// OOTB
|
||||
@@ -15,7 +17,7 @@ public interface Constants {
|
||||
static final String BEAN_SHARD_REGISTRY = "asie.ShardRegistry";
|
||||
|
||||
static final String ATTR_ASIE = "inteligr8.asie";
|
||||
static final String ATTR_ASIE_NODES = "inteligr8.asie.nodes";
|
||||
static final String ATTR_ASIE_NODE_SHARD = "inteligr8.asie.nodeShard";
|
||||
static final String ATTR_STATE = "state";
|
||||
static final String ATTR_ONLINE = "online";
|
||||
static final String ATTR_UNLOADED = "unloadedNode.cores";
|
||||
|
@@ -1,5 +1,6 @@
|
||||
package com.inteligr8.alfresco.asie.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
@@ -11,7 +12,9 @@ import org.alfresco.repo.index.shard.ShardMethodEnum;
|
||||
import org.alfresco.repo.index.shard.ShardState;
|
||||
import org.apache.commons.lang3.builder.HashCodeBuilder;
|
||||
|
||||
public class ShardSet {
|
||||
public class ShardSet implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = -8891094367429601316L;
|
||||
|
||||
/**
|
||||
* Examples:
|
||||
@@ -24,12 +27,12 @@ public class ShardSet {
|
||||
* DATE;key:cm:created;date.grouping:3
|
||||
* PROPERTY;key:cm:created;regex:^d{4}
|
||||
*/
|
||||
private final Pattern shardSetPattern = Pattern.compile("([A-Z]+)(;fulltext)?(;([a-z]+):([^;]+))?(;([a-z]+):([^;]+))?");
|
||||
private static final Pattern shardSetPattern = Pattern.compile("([A-Z]+)(;fulltext)?(;([a-z]+):([^;]+))?(;([a-z]+):([^;]+))?");
|
||||
|
||||
private final ShardMethodEnum method;
|
||||
private final boolean hasContent;
|
||||
private final Map<String, String> config;
|
||||
private Integer hash;
|
||||
private transient Integer hash;
|
||||
|
||||
public ShardSet(Floc floc, ShardState anyShardNode) {
|
||||
this.method = floc.getShardMethod();
|
||||
@@ -38,7 +41,7 @@ public class ShardSet {
|
||||
}
|
||||
|
||||
public ShardSet(String shardSetSpec) {
|
||||
Matcher matcher = this.shardSetPattern.matcher(shardSetSpec);
|
||||
Matcher matcher = shardSetPattern.matcher(shardSetSpec);
|
||||
if (!matcher.find())
|
||||
throw new IllegalArgumentException("The shard set '" + shardSetSpec + "' is not properly formatted");
|
||||
|
||||
|
@@ -6,17 +6,3 @@ inteligr8.asie.allowedAuthorities=ALFRESCO_ADMINISTRATORS
|
||||
|
||||
# same as solr.baseUrl, but that property is private to the Search subsystem
|
||||
inteligr8.asie.basePath=/solr
|
||||
|
||||
|
||||
|
||||
# Overrides of alfresco-repository.jar/alfresco/caches.properties
|
||||
cache.shardStateSharedCache.tx.maxItems=0
|
||||
cache.shardStateSharedCache.tx.statsEnabled=${caches.tx.statsEnabled}
|
||||
cache.shardStateSharedCache.maxItems=0
|
||||
cache.shardStateSharedCache.timeToLiveSeconds=1800
|
||||
cache.shardStateSharedCache.maxIdleSeconds=0
|
||||
cache.shardStateSharedCache.cluster.type=fully-distributed
|
||||
cache.shardStateSharedCache.backup-count=1
|
||||
cache.shardStateSharedCache.eviction-policy=LRU
|
||||
cache.shardStateSharedCache.merge-policy=com.hazelcast.spi.merge.PutIfAbsentMergePolicy
|
||||
cache.shardStateSharedCache.readBackupData=false
|
||||
|
Reference in New Issue
Block a user