mirror of
https://github.com/Alfresco/alfresco-transform-core.git
synced 2025-08-14 17:58:27 +00:00
Save point
Allow an 'e' in the ref, so that it can be used for t-router tests. Dynamically add a HttpDispatch, so a test transform is sync
This commit is contained in:
@@ -33,6 +33,7 @@ public class RepositoryClientData {
|
||||
public static final String DEBUG_SEPARATOR = "\u23D1";
|
||||
public static final String REPO_ID = "Repo";
|
||||
public static final String DEBUG = "debug:";
|
||||
private static final String NO_DEBUG = "nodebug:";
|
||||
|
||||
private static final int REPO_INDEX = 0;
|
||||
private static final int RENDITION_INDEX = 2;
|
||||
@@ -60,13 +61,9 @@ public class RepositoryClientData {
|
||||
return isRepositoryClientData() ? split[REPO_INDEX].substring(REPO_ID.length()) : "";
|
||||
}
|
||||
|
||||
public int getRequestId()
|
||||
public String getRequestId()
|
||||
{
|
||||
try {
|
||||
return isRepositoryClientData() ? Integer.parseInt(split[REQUEST_ID_INDEX]) : -1;
|
||||
} catch (NumberFormatException e) {
|
||||
return -1;
|
||||
}
|
||||
return isRepositoryClientData() ? split[REQUEST_ID_INDEX] : "";
|
||||
}
|
||||
|
||||
public String getRenditionName() {
|
||||
@@ -107,11 +104,13 @@ public class RepositoryClientData {
|
||||
|
||||
private static String emptyClientData()
|
||||
{
|
||||
StringJoiner sj = new StringJoiner(CLIENT_DATA_SEPARATOR, REPO_ID+"ACS1234"+CLIENT_DATA_SEPARATOR, "");
|
||||
for (int i=1; i<EXPECTED_ELEMENTS; i++)
|
||||
StringJoiner sj = new StringJoiner(CLIENT_DATA_SEPARATOR);
|
||||
sj.add(REPO_ID+"ACS1234");
|
||||
for (int i=0; i<EXPECTED_ELEMENTS-2; i++)
|
||||
{
|
||||
sj.add(Integer.toString(i));
|
||||
sj.add("");
|
||||
}
|
||||
sj.add(NO_DEBUG);
|
||||
return sj.toString();
|
||||
}
|
||||
|
||||
@@ -121,9 +120,9 @@ public class RepositoryClientData {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder withRequestId(final int requestId)
|
||||
public Builder withRequestId(final String requestId)
|
||||
{
|
||||
clientData.split[REQUEST_ID_INDEX] = Integer.toString(requestId);
|
||||
clientData.split[REQUEST_ID_INDEX] = requestId;
|
||||
return this;
|
||||
}
|
||||
|
||||
|
@@ -231,14 +231,14 @@ public class TransformStack
|
||||
levels(internalContext).add(levelBuilder.build());
|
||||
}
|
||||
|
||||
public static void setReference(InternalContext internalContext, int requestCountOrClientRequestId)
|
||||
public static void setReference(InternalContext internalContext, String requestCountOrClientRequestId)
|
||||
{
|
||||
setHeaderField(internalContext, REFERENCE_INDEX, requestCountOrClientRequestId);
|
||||
}
|
||||
|
||||
public static void incrementReference(InternalContext internalContext)
|
||||
{
|
||||
setHeaderField(internalContext, REFERENCE_INDEX, getReferenceCounter(internalContext)+1);
|
||||
setHeaderField(internalContext, REFERENCE_INDEX, Integer.toString(getReferenceCounter(internalContext)+1));
|
||||
}
|
||||
|
||||
public static void resetAttemptedRetries(InternalContext internalContext)
|
||||
@@ -257,6 +257,11 @@ public class TransformStack
|
||||
}
|
||||
|
||||
private static void setHeaderField(InternalContext internalContext, int index, long value)
|
||||
{
|
||||
setHeaderField(internalContext, index, Long.toString(value));
|
||||
}
|
||||
|
||||
private static void setHeaderField(InternalContext internalContext, int index, String value)
|
||||
{
|
||||
List<String> levels = levels(internalContext);
|
||||
int size = levels.size();
|
||||
@@ -272,14 +277,14 @@ public class TransformStack
|
||||
List<String> levels = levels(internalContext);
|
||||
for (int i=TOP_STACK_LEVEL; i<levels.size(); i++)
|
||||
{
|
||||
ref.add(getHeaderField(levels.get(i), REFERENCE_INDEX).toString());
|
||||
ref.add(getHeaderFieldString(levels.get(i), REFERENCE_INDEX));
|
||||
}
|
||||
return ref.toString();
|
||||
}
|
||||
|
||||
public static void setReferenceInADummyTopLevelIfUnset(InternalContext internalContext, int reference)
|
||||
public static void setReferenceInADummyTopLevelIfUnset(InternalContext internalContext, String reference)
|
||||
{
|
||||
if (reference != -1 && getReference(internalContext).isBlank() ) // When top transform level not set
|
||||
if (!reference.isBlank() && getReference(internalContext).isBlank() ) // When top transform level not set
|
||||
{
|
||||
init(internalContext);
|
||||
addTransformLevel(internalContext, levelBuilder(PIPELINE_FLAG));
|
||||
@@ -309,7 +314,12 @@ public class TransformStack
|
||||
|
||||
private static Long getHeaderField(String level, int index)
|
||||
{
|
||||
return Long.valueOf(level.split(SEPARATOR_REGEX)[index]);
|
||||
return Long.valueOf(getHeaderFieldString(level, index));
|
||||
}
|
||||
|
||||
private static String getHeaderFieldString(String level, int index)
|
||||
{
|
||||
return level.split(SEPARATOR_REGEX)[index];
|
||||
}
|
||||
|
||||
public static void removeTransformLevel(InternalContext internalContext)
|
||||
@@ -504,7 +514,7 @@ public class TransformStack
|
||||
(split.length-FIELDS_IN_HEADER)%FIELDS_PER_STEP != 0 ||
|
||||
(!PIPELINE_FLAG.equals(split[FLAG_INDEX]) &&
|
||||
!FAILOVER_FLAG.equals(split[FLAG_INDEX])) ||
|
||||
!aPositiveInt(split[REFERENCE_INDEX]) ||
|
||||
!aValidReference(split[REFERENCE_INDEX]) ||
|
||||
!aPositiveLong(split[START_INDEX]) ||
|
||||
!aPositiveInt(split[RETRY_INDEX]))
|
||||
{
|
||||
@@ -522,6 +532,12 @@ public class TransformStack
|
||||
return true;
|
||||
}
|
||||
|
||||
private static boolean aValidReference(String string)
|
||||
{
|
||||
string = string.startsWith("e") ? string.substring(1) : string;
|
||||
return aPositiveInt(string);
|
||||
}
|
||||
|
||||
private static boolean aPositiveInt(String string)
|
||||
{
|
||||
try
|
||||
|
@@ -43,14 +43,14 @@ public class RepositoryClientDataTest
|
||||
repositoryClientData = RepositoryClientData.builder()
|
||||
.withRepoId("ACS1234")
|
||||
.withRenditionName("renditionName")
|
||||
.withRequestId(54321)
|
||||
.withRequestId("e123")
|
||||
.withDebug()
|
||||
.build();
|
||||
String clientData = repositoryClientData.toString();
|
||||
|
||||
assertEquals("ACS1234", repositoryClientData.getAcsVersion());
|
||||
assertEquals("renditionName", repositoryClientData.getRenditionName());
|
||||
assertEquals(54321, repositoryClientData.getRequestId());
|
||||
assertEquals("e123", repositoryClientData.getRequestId());
|
||||
assertTrue(repositoryClientData.isDebugRequested());
|
||||
assertEquals(clientData, repositoryClientData.toString());
|
||||
}
|
||||
@@ -74,7 +74,7 @@ public class RepositoryClientDataTest
|
||||
|
||||
assertEquals("ACS1234", repositoryClientData.getAcsVersion());
|
||||
assertEquals("renditionName", repositoryClientData.getRenditionName());
|
||||
assertEquals(54321, repositoryClientData.getRequestId());
|
||||
assertEquals("54321", repositoryClientData.getRequestId());
|
||||
assertFalse(repositoryClientData.isDebugRequested());
|
||||
assertEquals(clientData, repositoryClientData.toString());
|
||||
}
|
||||
@@ -98,7 +98,7 @@ public class RepositoryClientDataTest
|
||||
|
||||
assertEquals("", repositoryClientData.getAcsVersion());
|
||||
assertEquals("", repositoryClientData.getRenditionName());
|
||||
assertEquals(-1, repositoryClientData.getRequestId());
|
||||
assertEquals("", repositoryClientData.getRequestId());
|
||||
assertFalse(repositoryClientData.isDebugRequested());
|
||||
assertEquals(clientData, repositoryClientData.toString());
|
||||
}
|
||||
@@ -121,7 +121,7 @@ public class RepositoryClientDataTest
|
||||
|
||||
assertEquals("", repositoryClientData.getAcsVersion());
|
||||
assertEquals("", repositoryClientData.getRenditionName());
|
||||
assertEquals(-1, repositoryClientData.getRequestId());
|
||||
assertEquals("", repositoryClientData.getRequestId());
|
||||
assertFalse(repositoryClientData.isDebugRequested());
|
||||
assertEquals(clientData, repositoryClientData.toString());
|
||||
}
|
||||
@@ -145,7 +145,7 @@ public class RepositoryClientDataTest
|
||||
repositoryClientData = new RepositoryClientData(clientData);
|
||||
assertEquals("", repositoryClientData.getAcsVersion());
|
||||
assertEquals("", repositoryClientData.getRenditionName());
|
||||
assertEquals(-1, repositoryClientData.getRequestId());
|
||||
assertEquals("", repositoryClientData.getRequestId());
|
||||
assertFalse(repositoryClientData.isDebugRequested());
|
||||
assertEquals(clientData, repositoryClientData.toString());
|
||||
}
|
||||
@@ -192,25 +192,4 @@ public class RepositoryClientDataTest
|
||||
assertEquals(clientData+DEBUG_SEPARATOR+"Some debug"+DEBUG_SEPARATOR+"Some other debug",
|
||||
repositoryClientData.toString());
|
||||
}
|
||||
|
||||
@Test
|
||||
void invalidRequestIdTest()
|
||||
{
|
||||
String clientData = new StringJoiner(CLIENT_DATA_SEPARATOR)
|
||||
.add(REPO_ID + "ACS1234")
|
||||
.add("1")
|
||||
.add("renditionName")
|
||||
.add("3")
|
||||
.add("4")
|
||||
.add("5")
|
||||
.add("abc")
|
||||
.add("7")
|
||||
.add("8")
|
||||
.add(DEBUG)
|
||||
.toString();
|
||||
repositoryClientData = new RepositoryClientData(clientData);
|
||||
|
||||
assertEquals(-1, repositoryClientData.getRequestId());
|
||||
assertEquals(clientData, repositoryClientData.toString());
|
||||
}
|
||||
}
|
||||
|
@@ -170,7 +170,7 @@ class TransformStackTest
|
||||
TransformStack.addTransformLevel(internalContext, TEST_LEVELS.get("top"));
|
||||
assertEquals("1", TransformStack.getReference(internalContext));
|
||||
|
||||
TransformStack.setReference(internalContext, 123);
|
||||
TransformStack.setReference(internalContext, "123");
|
||||
assertEquals("123", TransformStack.getReference(internalContext));
|
||||
|
||||
TransformStack.addTransformLevel(internalContext, TEST_LEVELS.get("pipeline 1-N"));
|
||||
@@ -198,7 +198,7 @@ class TransformStackTest
|
||||
// Undo setup()
|
||||
internalContext.getMultiStep().setTransformsToBeDone(new ArrayList<>());
|
||||
|
||||
TransformStack.setReferenceInADummyTopLevelIfUnset(internalContext, 23);
|
||||
TransformStack.setReferenceInADummyTopLevelIfUnset(internalContext, "23");
|
||||
assertEquals("23", TransformStack.getReference(internalContext));
|
||||
}
|
||||
|
||||
@@ -502,6 +502,35 @@ class TransformStackTest
|
||||
};
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCheckStructureStackLevelsOkWithLeadingE()
|
||||
{
|
||||
TransformStack.addTransformLevel(internalContext, TEST_LEVELS.get("top"));
|
||||
|
||||
for (String value : Arrays.asList(
|
||||
"P" + SEPARATOR + "e20" + SEPARATOR + START + SEPARATOR + "1" + STEP))
|
||||
{
|
||||
System.out.println("TransformLevel value: " + value);
|
||||
internalContext.getMultiStep().getTransformsToBeDone().set(TOP_STACK_LEVEL, value);
|
||||
Assertions.assertNull(TransformStack.checkStructure(internalContext, "T-Reply"));
|
||||
};
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCheckStructureStackLevelsFailWithLeadingX()
|
||||
{
|
||||
TransformStack.addTransformLevel(internalContext, TEST_LEVELS.get("top"));
|
||||
|
||||
for (String value : Arrays.asList(
|
||||
"P" + SEPARATOR + "x20" + SEPARATOR + START + SEPARATOR + "1" + STEP))
|
||||
{
|
||||
System.out.println("TransformLevel value: " + value);
|
||||
internalContext.getMultiStep().getTransformsToBeDone().set(TOP_STACK_LEVEL, value);
|
||||
assertEquals("T-Reply InternalContext did not have levels set correctly",
|
||||
TransformStack.checkStructure(internalContext, "T-Reply"));
|
||||
};
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCheckStructureStackLevelsBad()
|
||||
{
|
||||
|
Reference in New Issue
Block a user