5 Commits

Author SHA1 Message Date
f29a0e6e3f moved shardState cache override to community 2024-11-06 13:24:13 -05:00
4f8d6ad4a0 make ShardSet serializable 2024-11-06 13:23:42 -05:00
22e05986b3 fix log4j logger name 2024-11-06 13:23:17 -05:00
20d9ce299a moved unload from shared to enterprise 2024-11-06 13:22:52 -05:00
57293c6efe fix v1.1.x poms 2024-11-01 08:34:57 -04:00
13 changed files with 40 additions and 43 deletions

View File

@@ -6,7 +6,7 @@
<parent>
<groupId>com.inteligr8.alfresco</groupId>
<artifactId>asie-platform-module-parent</artifactId>
<version>1.0-SNAPSHOT</version>
<version>1.1-SNAPSHOT</version>
<relativePath>../</relativePath>
</parent>

View File

@@ -6,7 +6,7 @@
<parent>
<groupId>com.inteligr8.alfresco</groupId>
<artifactId>asie-platform-module-parent</artifactId>
<version>1.0-SNAPSHOT</version>
<version>1.1-SNAPSHOT</version>
<relativePath>../</relativePath>
</parent>

View File

@@ -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,19 +84,23 @@ public abstract class AbstractUnregisterNodeWebScript<T extends NodeParameterSet
ShardState shardNode = matchingCore.getValue();
String core = shardNode.getPropertyBag().get("coreName");
StatusResponse status = this.getCoreStatus(nodeHostname, nodePort, core);
if (status == null)
throw new WebScriptException(HttpStatus.INTERNAL_SERVER_ERROR.value(), "This should never happen");
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);
} else {
this.unloadCore(nodeHostname, nodePort, core);
cores.put(core, coreMetadata.getInstancePath());
try {
StatusResponse status = this.getCoreStatus(nodeHostname, nodePort, core);
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);
} else {
this.unloadCore(nodeHostname, nodePort, core);
cores.put(core, coreMetadata.getInstancePath());
}
}
} finally {
this.sss.remove(matchingCore.getKey());
this.sbs.forget(shardNode);
}
this.sss.remove(matchingCore.getKey());
this.sbs.forget(shardNode);
}
} finally {
// FIXME maybe a separate tx?

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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

View File

@@ -6,7 +6,7 @@
<parent>
<groupId>com.inteligr8.alfresco</groupId>
<artifactId>asie-platform-module-parent</artifactId>
<version>1.0-SNAPSHOT</version>
<version>1.1-SNAPSHOT</version>
<relativePath>../</relativePath>
</parent>

View 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";

View File

@@ -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,8 +12,10 @@ 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");

View File

@@ -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

View File

@@ -6,7 +6,7 @@
<parent>
<groupId>com.inteligr8.alfresco</groupId>
<artifactId>asie-platform-module-parent</artifactId>
<version>1.0-SNAPSHOT</version>
<version>1.1-SNAPSHOT</version>
<relativePath>../</relativePath>
</parent>