refactored; split enterprise from generic
This commit is contained in:
12
enterprise-module/.gitignore
vendored
Normal file
12
enterprise-module/.gitignore
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
# Maven
|
||||
target
|
||||
pom.xml.versionsBackup
|
||||
|
||||
# Eclipse
|
||||
.project
|
||||
.classpath
|
||||
.settings
|
||||
.vscode
|
||||
|
||||
# IDEA
|
||||
/.idea/
|
1
enterprise-module/README.md
Normal file
1
enterprise-module/README.md
Normal file
@@ -0,0 +1 @@
|
||||
# ASIE Platform Module Library
|
122
enterprise-module/pom.xml
Normal file
122
enterprise-module/pom.xml
Normal file
@@ -0,0 +1,122 @@
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<parent>
|
||||
<groupId>com.inteligr8.alfresco</groupId>
|
||||
<artifactId>asie-platform-module-parent</artifactId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
<relativePath>../</relativePath>
|
||||
</parent>
|
||||
|
||||
<artifactId>asie-enterprise-platform-module</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
|
||||
<name>ASIE Platform Module for ACS Enterprise</name>
|
||||
|
||||
<properties>
|
||||
<alfresco.sdk.version>5.2.0</alfresco.sdk.version>
|
||||
<alfresco.platform.version>23.3.0</alfresco.platform.version>
|
||||
</properties>
|
||||
|
||||
<dependencyManagement>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.alfresco</groupId>
|
||||
<artifactId>acs-community-packaging</artifactId>
|
||||
<version>${alfresco.platform.version}</version>
|
||||
<type>pom</type>
|
||||
<scope>import</scope>
|
||||
</dependency>
|
||||
|
||||
<!-- Provided by cxf-jaxrs-platform-module, but packaged due to shared -->
|
||||
<dependency>
|
||||
<groupId>com.inteligr8</groupId>
|
||||
<artifactId>common-rest-client</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
<!-- Provided by cxf-jaxrs-platform-module, but packaged due to solr-api -->
|
||||
<dependency>
|
||||
<groupId>jakarta.ws.rs</groupId>
|
||||
<artifactId>jakarta.ws.rs-api</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>jakarta.annotation</groupId>
|
||||
<artifactId>jakarta.annotation-api</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.fasterxml.jackson.datatype</groupId>
|
||||
<artifactId>jackson-datatype-jsr310</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.fasterxml.jackson.module</groupId>
|
||||
<artifactId>jackson-module-jakarta-xmlbind-annotations</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</dependencyManagement>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>com.inteligr8.alfresco</groupId>
|
||||
<artifactId>asie-shared</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
|
||||
<!-- Needed by this module, but provided by ACS -->
|
||||
<dependency>
|
||||
<groupId>org.alfresco</groupId>
|
||||
<artifactId>alfresco-repository</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
<!-- Alfresco Modules required to use this module -->
|
||||
<dependency>
|
||||
<groupId>com.inteligr8.alfresco</groupId>
|
||||
<artifactId>cxf-jaxrs-platform-module</artifactId>
|
||||
<version>1.3.1-acs-v23.3</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
<!-- Including for testing purposes only -->
|
||||
<dependency>
|
||||
<groupId>junit</groupId>
|
||||
<artifactId>junit</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.mockito</groupId>
|
||||
<artifactId>mockito-core</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>io.repaint.maven</groupId>
|
||||
<artifactId>tiles-maven-plugin</artifactId>
|
||||
<version>2.40</version>
|
||||
<extensions>true</extensions>
|
||||
<configuration>
|
||||
<tiles>
|
||||
<!-- Documentation: https://bitbucket.org/inteligr8/ootbee-beedk/src/stable/beedk-acs-platform-module-tile -->
|
||||
<tile>com.inteligr8.ootbee:beedk-acs-platform-module-tile:[1.1.6,2.0.0)</tile>
|
||||
</tiles>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
<repositories>
|
||||
<repository>
|
||||
<id>alfresco-public</id>
|
||||
<url>https://artifacts.alfresco.com/nexus/content/groups/public</url>
|
||||
</repository>
|
||||
</repositories>
|
||||
</project>
|
74
enterprise-module/rad.ps1
Normal file
74
enterprise-module/rad.ps1
Normal file
@@ -0,0 +1,74 @@
|
||||
|
||||
function discoverArtifactId {
|
||||
$script:ARTIFACT_ID=(mvn -q -Dexpression=project"."artifactId -DforceStdout help:evaluate)
|
||||
}
|
||||
|
||||
function rebuild {
|
||||
echo "Rebuilding project ..."
|
||||
mvn process-classes
|
||||
}
|
||||
|
||||
function start_ {
|
||||
echo "Rebuilding project and starting Docker containers to support rapid application development ..."
|
||||
mvn -Drad process-classes
|
||||
}
|
||||
|
||||
function start_log {
|
||||
echo "Rebuilding project and starting Docker containers to support rapid application development ..."
|
||||
mvn -Drad "-Ddocker.showLogs" process-classes
|
||||
}
|
||||
|
||||
function stop_ {
|
||||
discoverArtifactId
|
||||
echo "Stopping Docker containers that supported rapid application development ..."
|
||||
docker container ls --filter name=${ARTIFACT_ID}-*
|
||||
echo "Stopping containers ..."
|
||||
docker container stop (docker container ls -q --filter name=${ARTIFACT_ID}-*)
|
||||
echo "Removing containers ..."
|
||||
docker container rm (docker container ls -aq --filter name=${ARTIFACT_ID}-*)
|
||||
}
|
||||
|
||||
function tail_logs {
|
||||
param (
|
||||
$container
|
||||
)
|
||||
|
||||
discoverArtifactId
|
||||
docker container logs -f (docker container ls -q --filter name=${ARTIFACT_ID}-${container})
|
||||
}
|
||||
|
||||
function list {
|
||||
discoverArtifactId
|
||||
docker container ls --filter name=${ARTIFACT_ID}-*
|
||||
}
|
||||
|
||||
switch ($args[0]) {
|
||||
"start" {
|
||||
start_
|
||||
}
|
||||
"start_log" {
|
||||
start_log
|
||||
}
|
||||
"stop" {
|
||||
stop_
|
||||
}
|
||||
"restart" {
|
||||
stop_
|
||||
start_
|
||||
}
|
||||
"rebuild" {
|
||||
rebuild
|
||||
}
|
||||
"tail" {
|
||||
tail_logs $args[1]
|
||||
}
|
||||
"containers" {
|
||||
list
|
||||
}
|
||||
default {
|
||||
echo "Usage: .\rad.ps1 [ start | start_log | stop | restart | rebuild | tail {container} | containers ]"
|
||||
}
|
||||
}
|
||||
|
||||
echo "Completed!"
|
||||
|
71
enterprise-module/rad.sh
Normal file
71
enterprise-module/rad.sh
Normal file
@@ -0,0 +1,71 @@
|
||||
#!/bin/sh
|
||||
|
||||
discoverArtifactId() {
|
||||
ARTIFACT_ID=`mvn -q -Dexpression=project.artifactId -DforceStdout help:evaluate`
|
||||
}
|
||||
|
||||
rebuild() {
|
||||
echo "Rebuilding project ..."
|
||||
mvn process-classes
|
||||
}
|
||||
|
||||
start() {
|
||||
echo "Rebuilding project and starting Docker containers to support rapid application development ..."
|
||||
mvn -Drad process-classes
|
||||
}
|
||||
|
||||
start_log() {
|
||||
echo "Rebuilding project and starting Docker containers to support rapid application development ..."
|
||||
mvn -Drad -Ddocker.showLogs process-classes
|
||||
}
|
||||
|
||||
stop() {
|
||||
discoverArtifactId
|
||||
echo "Stopping Docker containers that supported rapid application development ..."
|
||||
docker container ls --filter name=${ARTIFACT_ID}-*
|
||||
echo "Stopping containers ..."
|
||||
docker container stop `docker container ls -q --filter name=${ARTIFACT_ID}-*`
|
||||
echo "Removing containers ..."
|
||||
docker container rm `docker container ls -aq --filter name=${ARTIFACT_ID}-*`
|
||||
}
|
||||
|
||||
tail_logs() {
|
||||
discoverArtifactId
|
||||
docker container logs -f `docker container ls -q --filter name=${ARTIFACT_ID}-$1`
|
||||
}
|
||||
|
||||
list() {
|
||||
discoverArtifactId
|
||||
docker container ls --filter name=${ARTIFACT_ID}-*
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
start
|
||||
;;
|
||||
start_log)
|
||||
start_log
|
||||
;;
|
||||
stop)
|
||||
stop
|
||||
;;
|
||||
restart)
|
||||
stop
|
||||
start
|
||||
;;
|
||||
rebuild)
|
||||
rebuild
|
||||
;;
|
||||
tail)
|
||||
tail_logs $2
|
||||
;;
|
||||
containers)
|
||||
list
|
||||
;;
|
||||
*)
|
||||
echo "Usage: ./rad.sh [ start | start_log | stop | restart | rebuild | tail {container} | containers ]"
|
||||
exit 1
|
||||
esac
|
||||
|
||||
echo "Completed!"
|
||||
|
114
enterprise-module/research/acs-enterprise-shard-attributes.json
Normal file
114
enterprise-module/research/acs-enterprise-shard-attributes.json
Normal file
@@ -0,0 +1,114 @@
|
||||
{
|
||||
".SHARD_STATE": {
|
||||
"d2fda078-887c-46a3-bda0-78887c06a305": {
|
||||
"type": "ShardState",
|
||||
"shardInstance": {
|
||||
"type": "ShardInstance",
|
||||
"shard": {
|
||||
"type": "Shard",
|
||||
"floc": {
|
||||
"type": "Floc",
|
||||
"storeRefs": [
|
||||
"workspace://SpacesStore"
|
||||
],
|
||||
"numberOfShards": 32,
|
||||
"shardMethod": "PROPERTY",
|
||||
"template": "rerank",
|
||||
"hasContent": true,
|
||||
"propertyBag": {}
|
||||
},
|
||||
"instance": 29
|
||||
},
|
||||
"baseUrl": "/solr/alfresco-year-29",
|
||||
"port": 8983,
|
||||
"hostName": "localhost"
|
||||
},
|
||||
"isMaster": true,
|
||||
"lastUpdated": 1729099258001,
|
||||
"lastIndexedChangeSetId": 1189,
|
||||
"lastIndexedTxCommitTime": 1729098871726,
|
||||
"lastIndexedTxId": 524708,
|
||||
"lastIndexedChangeSetCommitTime": 1729010974050,
|
||||
"propertyBag": {
|
||||
"shard.key": "cm:created",
|
||||
"shard.regex": "^(\\d{4})",
|
||||
"coreName": "alfresco-year-29"
|
||||
}
|
||||
},
|
||||
"8cd7436d-787a-478a-9743-6d787a778a1f": {
|
||||
"type": "ShardState",
|
||||
"shardInstance": {
|
||||
"type": "ShardInstance",
|
||||
"shard": {
|
||||
"type": "Shard",
|
||||
"floc": {
|
||||
"type": "Floc",
|
||||
"storeRefs": [
|
||||
"workspace://SpacesStore"
|
||||
],
|
||||
"numberOfShards": 32,
|
||||
"shardMethod": "PROPERTY",
|
||||
"template": "rerank",
|
||||
"hasContent": true,
|
||||
"propertyBag": {}
|
||||
},
|
||||
"instance": 0
|
||||
},
|
||||
"baseUrl": "/solr/alfresco-year-0",
|
||||
"port": 8983,
|
||||
"hostName": "localhost"
|
||||
},
|
||||
"isMaster": true,
|
||||
"lastUpdated": 1729099258001,
|
||||
"lastIndexedChangeSetId": 1189,
|
||||
"lastIndexedTxCommitTime": 1729098871726,
|
||||
"lastIndexedTxId": 524708,
|
||||
"lastIndexedChangeSetCommitTime": 1729010974050,
|
||||
"propertyBag": {
|
||||
"shard.key": "cm:created",
|
||||
"shard.regex": "^(\\d{4})",
|
||||
"coreName": "alfresco-year-29"
|
||||
}
|
||||
},
|
||||
"ae5e918d-c602-4bb0-9e91-8dc6028bb088": {
|
||||
"type": "ShardState",
|
||||
"shardInstance": {
|
||||
"type": "ShardInstance",
|
||||
"shard": {
|
||||
"type": "Shard",
|
||||
"floc": {
|
||||
"type": "Floc",
|
||||
"storeRefs": [
|
||||
"workspace://SpacesStore"
|
||||
],
|
||||
"numberOfShards": 32,
|
||||
"shardMethod": "PROPERTY",
|
||||
"template": "rerank",
|
||||
"hasContent": true,
|
||||
"propertyBag": {}
|
||||
},
|
||||
"instance": 1
|
||||
},
|
||||
"baseUrl": "/solr/alfresco-year-1",
|
||||
"port": 8983,
|
||||
"hostName": "localhost"
|
||||
},
|
||||
"isMaster": true,
|
||||
"lastUpdated": 1729099258001,
|
||||
"lastIndexedChangeSetId": 1189,
|
||||
"lastIndexedTxCommitTime": 1729098871726,
|
||||
"lastIndexedTxId": 524708,
|
||||
"lastIndexedChangeSetCommitTime": 1729010974050,
|
||||
"propertyBag": {
|
||||
"shard.key": "cm:created",
|
||||
"shard.regex": "^(\\d{4})",
|
||||
"coreName": "alfresco-year-29"
|
||||
}
|
||||
}
|
||||
},
|
||||
".SHARD_SUBSCRIPTION": {
|
||||
"8cd7436d-787a-478a-9743-6d787a778a1f": "Shard #0 subscribed on Wed Oct 16 17:20:07 UTC 2024 (timestamp = 1729099207319)",
|
||||
"ae5e918d-c602-4bb0-9e91-8dc6028bb088": "Shard #1 subscribed on Wed Oct 16 17:20:08 UTC 2024 (timestamp = 1729099208026)"
|
||||
}
|
||||
}
|
||||
|
@@ -0,0 +1,10 @@
|
||||
package com.inteligr8.alfresco.asie.enterprise;
|
||||
|
||||
public interface EnterpriseConstants {
|
||||
|
||||
static final String BEAN_SHARD_REGISTRY = "search.ShardRegistry";
|
||||
|
||||
static final String ATTR_SHARD_STATE = ".SHARD_STATE";
|
||||
static final String ATTR_SHARD_SUBSCRIPTION = ".SHARD_SUBSCRIPTION";
|
||||
|
||||
}
|
@@ -0,0 +1,41 @@
|
||||
package com.inteligr8.alfresco.asie.enterprise.bootstrap;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.context.ApplicationEvent;
|
||||
import org.springframework.extensions.surf.util.AbstractLifecycleBean;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import com.inteligr8.alfresco.asie.spi.ShardStateService;
|
||||
|
||||
/**
|
||||
* This is a workaround to a bug with the Alfresco Enterprise Solr purge
|
||||
* functionality, letting it fail due to a concurrency exception. This skips
|
||||
* all the fancy stuff and just hard purges the shards.
|
||||
*/
|
||||
@Component
|
||||
public class ShardPurgeOnInitService extends AbstractLifecycleBean {
|
||||
|
||||
private final Logger logger = LoggerFactory.getLogger(this.getClass());
|
||||
|
||||
@Autowired
|
||||
private ShardStateService sss;
|
||||
|
||||
@Value("${search.solrShardRegistry.purgeOnInit}")
|
||||
private boolean enabled;
|
||||
|
||||
@Override
|
||||
protected void onBootstrap(ApplicationEvent event) {
|
||||
if (this.enabled) {
|
||||
this.logger.debug("Purge on initialization is enabled with 'search.solrShardRegistry.purgeOnInit'");
|
||||
this.sss.clear();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onShutdown(ApplicationEvent event) {
|
||||
}
|
||||
|
||||
}
|
@@ -0,0 +1,30 @@
|
||||
package com.inteligr8.alfresco.asie.enterprise.provider;
|
||||
|
||||
import org.alfresco.repo.index.shard.ShardRegistry;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.beans.factory.config.ConfigurableBeanFactory;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.context.annotation.Scope;
|
||||
|
||||
import com.inteligr8.alfresco.asie.Constants;
|
||||
import com.inteligr8.alfresco.asie.enterprise.EnterpriseConstants;
|
||||
import com.inteligr8.alfresco.asie.provider.AbstractProvider;
|
||||
|
||||
@Configuration
|
||||
public class ShardRegistryProvider extends AbstractProvider<ShardRegistry> {
|
||||
|
||||
/**
|
||||
* This allows for the selection of the primary or first ShardRegistry
|
||||
* registered in the Spring BeanFactory.
|
||||
*
|
||||
* @return A ShardRegistry.
|
||||
*/
|
||||
@Bean(Constants.BEAN_SHARD_REGISTRY)
|
||||
@Qualifier(Constants.QUALIFIER_ASIE)
|
||||
@Scope(ConfigurableBeanFactory.SCOPE_SINGLETON)
|
||||
public ShardRegistry selectBean() {
|
||||
return this.getPrimaryOrNamed(ShardRegistry.class, EnterpriseConstants.BEAN_SHARD_REGISTRY);
|
||||
}
|
||||
|
||||
}
|
@@ -0,0 +1,84 @@
|
||||
package com.inteligr8.alfresco.asie.enterprise.service;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Arrays;
|
||||
|
||||
import org.alfresco.repo.cache.SimpleCache;
|
||||
import org.alfresco.repo.index.shard.ShardInstance;
|
||||
import org.alfresco.repo.index.shard.ShardState;
|
||||
import org.alfresco.service.cmr.attributes.AttributeService;
|
||||
import org.alfresco.service.cmr.attributes.AttributeService.AttributeQueryCallback;
|
||||
import org.apache.commons.lang3.ArrayUtils;
|
||||
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.stereotype.Component;
|
||||
|
||||
import com.inteligr8.alfresco.asie.Constants;
|
||||
import com.inteligr8.alfresco.asie.enterprise.EnterpriseConstants;
|
||||
|
||||
@Component
|
||||
public class ShardStateService implements com.inteligr8.alfresco.asie.spi.ShardStateService {
|
||||
|
||||
private final Logger logger = LoggerFactory.getLogger(this.getClass());
|
||||
|
||||
@Autowired
|
||||
@Qualifier(Constants.QUALIFIER_ASIE)
|
||||
private AttributeService attrService;
|
||||
|
||||
@Autowired
|
||||
@Qualifier(Constants.BEAN_SHARD_STATE_CACHE)
|
||||
private SimpleCache<ShardInstance, ShardState> shardStateCache;
|
||||
|
||||
@Autowired
|
||||
@Qualifier(Constants.BEAN_SHARD_GUID_CACHE)
|
||||
private SimpleCache<ShardInstance, String> shardToGuidCache;
|
||||
|
||||
public void clear() {
|
||||
this.logger.info("Removing all nodes/shards from the shard registry");
|
||||
|
||||
// this clears the state from the backend database
|
||||
this.attrService.removeAttributes(EnterpriseConstants.ATTR_SHARD_STATE);
|
||||
this.attrService.removeAttributes(EnterpriseConstants.ATTR_SHARD_SUBSCRIPTION);
|
||||
this.attrService.removeAttributes(Constants.ATTR_ASIE);
|
||||
|
||||
// this clears the state from Hazelcast
|
||||
this.shardStateCache.clear();
|
||||
this.shardToGuidCache.clear();
|
||||
}
|
||||
|
||||
public void remove(Serializable... keys) {
|
||||
if (keys.length == 0)
|
||||
throw new IllegalArgumentException();
|
||||
|
||||
this.logger.info("Removing from the shard registry: {}", Arrays.toString(keys));
|
||||
|
||||
Serializable[] shardStateKeys = keys;
|
||||
Serializable[] shardSubKeys;
|
||||
if (EnterpriseConstants.ATTR_SHARD_STATE.equals(keys[0])) {
|
||||
shardSubKeys = ArrayUtils.clone(keys);
|
||||
shardSubKeys[0] = EnterpriseConstants.ATTR_SHARD_SUBSCRIPTION;
|
||||
} else {
|
||||
shardStateKeys = ArrayUtils.addFirst(keys, EnterpriseConstants.ATTR_SHARD_STATE);
|
||||
shardSubKeys = ArrayUtils.addFirst(keys, EnterpriseConstants.ATTR_SHARD_SUBSCRIPTION);
|
||||
}
|
||||
|
||||
ShardState shardState = (ShardState) this.attrService.getAttribute(shardStateKeys);
|
||||
|
||||
// this clears the state from the backend database
|
||||
this.attrService.removeAttribute(shardStateKeys);
|
||||
this.attrService.removeAttribute(shardSubKeys);
|
||||
|
||||
// this clears the state from Hazelcast
|
||||
if (shardState != null) {
|
||||
this.shardStateCache.remove(shardState.getShardInstance());
|
||||
this.shardToGuidCache.remove(shardState.getShardInstance());
|
||||
}
|
||||
}
|
||||
|
||||
public void iterate(AttributeQueryCallback callback) {
|
||||
this.attrService.getAttributes(callback, EnterpriseConstants.ATTR_SHARD_STATE);
|
||||
}
|
||||
|
||||
}
|
@@ -0,0 +1,3 @@
|
||||
|
||||
logger.inteligr8-asie.name=com.inteligr8.alfresco.asie.enterprise
|
||||
logger.inteligr8-asie.level=INFO
|
@@ -0,0 +1,20 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
|
||||
<!-- Use this file for beans to be loaded in whatever order Alfresco/Spring decides -->
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns:context="http://www.springframework.org/schema/context"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
|
||||
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">
|
||||
|
||||
<bean id="search.ShardRegistry" class="org.alfresco.repo.management.subsystems.SubsystemProxyFactory">
|
||||
<property name="sourceApplicationContextFactory" ref="Search" />
|
||||
<property name="sourceBeanName" value="search.SolrShardRegistry" />
|
||||
<property name="interfaces">
|
||||
<list>
|
||||
<value>org.alfresco.repo.index.shard.ShardRegistry</value>
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
</beans>
|
@@ -0,0 +1,10 @@
|
||||
module.id=com_inteligr8_alfresco_${project.artifactId}
|
||||
module.aliases=
|
||||
module.title=${project.name}
|
||||
module.description=${project.description}
|
||||
module.version=${module.version}
|
||||
|
||||
module.repo.version.min=23.0
|
||||
|
||||
# this is creating all sorts of problems; probably because of the non-standard versioning
|
||||
module.depends.com.inteligr8.alfresco.cxf-jaxrs-platform-module=*
|
Reference in New Issue
Block a user