fixed ASIE shard model parsing

This commit is contained in:
2025-02-28 17:48:43 -05:00
parent 3cd8c91f93
commit 0ed41a39e4
3 changed files with 17 additions and 11 deletions

View File

@@ -19,7 +19,7 @@ public class Shard implements Serializable {
private final String spec; private final String spec;
protected Shard(ShardSet shardSet, int shardId) { protected Shard(ShardSet shardSet, int shardId) {
this.spec = shardSet.getCore() + "~" + shardId; this.spec = shardSet.getCore() + "-" + shardId;
} }
protected Shard(String spec) { protected Shard(String spec) {
@@ -34,16 +34,20 @@ public class Shard implements Serializable {
} }
public String getSpec() { public String getSpec() {
return spec; return this.spec;
}
public String getCoreName() {
return this.spec;
} }
public String extractShardSetCore() { public String extractShardSetCore() {
int pos = this.spec.indexOf('~'); int pos = this.spec.lastIndexOf('-');
return this.spec.substring(0, pos); return this.spec.substring(0, pos);
} }
public int extractShardId() { public int extractShardId() {
int pos = this.spec.indexOf('~'); int pos = this.spec.lastIndexOf('-');
return Integer.parseInt(this.spec.substring(pos+1)); return Integer.parseInt(this.spec.substring(pos+1));
} }

View File

@@ -13,7 +13,7 @@ public class ShardInstance implements Serializable {
private final String spec; private final String spec;
protected ShardInstance(Shard shard, SolrHost node) { protected ShardInstance(Shard shard, SolrHost node) {
this.spec = shard.getSpec() + "~" + node.getSpec(); this.spec = node.getSpec() + "~" + shard.getSpec();
} }
public org.alfresco.repo.index.shard.ShardInstance toAlfrescoModel(org.alfresco.repo.index.shard.Shard shard) { public org.alfresco.repo.index.shard.ShardInstance toAlfrescoModel(org.alfresco.repo.index.shard.Shard shard) {
@@ -33,14 +33,14 @@ public class ShardInstance implements Serializable {
return spec; return spec;
} }
public Shard extractShard() {
int pos = this.spec.indexOf('~');
return Shard.from(this.spec.substring(0, pos));
}
public SolrHost extractNode() { public SolrHost extractNode() {
int pos = this.spec.indexOf('~'); int pos = this.spec.indexOf('~');
return SolrHost.from(this.spec.substring(pos+1)); return SolrHost.from(this.spec.substring(0, pos));
}
public Shard extractShard() {
int pos = this.spec.indexOf('~');
return Shard.from(this.spec.substring(pos+1));
} }
@Override @Override

View File

@@ -41,6 +41,8 @@ public class SolrHost implements Serializable {
this.spec = spec; this.spec = spec;
Matcher matcher = PATTERN.matcher(spec); Matcher matcher = PATTERN.matcher(spec);
if (!matcher.find())
throw new IllegalArgumentException();
this.hostname = matcher.group(1); this.hostname = matcher.group(1);
this.port = Integer.parseInt(matcher.group(2)); this.port = Integer.parseInt(matcher.group(2));
this.path = matcher.group(3); this.path = matcher.group(3);