Search in sources :

Example 11 with Audit

use of org.alfresco.repo.audit.model._3.Audit in project atlasmap by atlasmap.

the class AtlasUtil method addAudit.

public static void addAudit(AtlasSession session, String docId, String message, String path, AuditStatus status, String value) {
    Audit audit = new Audit();
    audit.setDocId(docId);
    audit.setMessage(message);
    audit.setPath(path);
    audit.setStatus(status);
    audit.setValue(value);
    session.getAudits().getAudit().add(audit);
}
Also used : Audit(io.atlasmap.v2.Audit)

Example 12 with Audit

use of org.alfresco.repo.audit.model._3.Audit in project atlasmap by atlasmap.

the class AtlasEndpoint method onExchange.

@Override
protected void onExchange(Exchange exchange) throws Exception {
    Message incomingMessage = exchange.getIn();
    String newResourceUri = incomingMessage.getHeader(AtlasConstants.ATLAS_RESOURCE_URI, String.class);
    if (newResourceUri != null) {
        incomingMessage.removeHeader(AtlasConstants.ATLAS_RESOURCE_URI);
        log.debug("{} set to {} creating new endpoint to handle exchange", AtlasConstants.ATLAS_RESOURCE_URI, newResourceUri);
        AtlasEndpoint newEndpoint = findOrCreateEndpoint(getEndpointUri(), newResourceUri);
        newEndpoint.onExchange(exchange);
        return;
    }
    AtlasSession atlasSession = getOrCreateAtlasContext(incomingMessage).createSession();
    populateSourceDocuments(exchange, atlasSession);
    atlasSession.getAtlasContext().process(atlasSession);
    List<Audit> errors = new ArrayList<>();
    for (Audit audit : atlasSession.getAudits().getAudit()) {
        switch(audit.getStatus()) {
            case ERROR:
                errors.add(audit);
                break;
            case WARN:
                LOG.warn("{}: Document='{}(ID:{})', path='{}'", audit.getMessage(), audit.getDocName(), audit.getDocId(), audit.getPath());
                break;
            default:
                LOG.info("{}: Document='{}(ID:{})', path='{}'", audit.getMessage(), audit.getDocName(), audit.getDocId(), audit.getPath());
        }
    }
    if (!errors.isEmpty()) {
        StringBuilder buf = new StringBuilder("Errors: ");
        errors.stream().forEach(a -> buf.append(String.format("[%s: Document='%s(ID:%s)', path='%s'], ", a.getMessage(), a.getDocName(), a.getDocId(), a.getPath())));
        throw new AtlasException(buf.toString());
    }
    populateTargetDocuments(atlasSession, exchange);
}
Also used : Audit(io.atlasmap.v2.Audit) Message(org.apache.camel.Message) ArrayList(java.util.ArrayList) AtlasException(io.atlasmap.api.AtlasException) AtlasSession(io.atlasmap.api.AtlasSession)

Example 13 with Audit

use of org.alfresco.repo.audit.model._3.Audit in project atlasmap by atlasmap.

the class JavaXmlSeparateTest method testProcessSeparateNotEnoughSource.

@Test
public void testProcessSeparateNotEnoughSource() throws Exception {
    AtlasContext context = atlasContextFactory.createContext(new File("src/test/resources/javaToXml/atlasmapping-separate-inputshort.json").toURI());
    AtlasSession session = context.createSession();
    BaseContact sourceContact = AtlasTestUtil.generateContact(SourceContact.class);
    sourceContact.setFirstName("Dr. Mr. Ozzie");
    sourceContact.setLastName(null);
    session.setDefaultSourceDocument(sourceContact);
    context.process(session);
    Object object = session.getDefaultTargetDocument();
    assertNotNull(object);
    assertTrue(object instanceof String);
    assertThat(object).valueByXPath("/Contact/@firstName").isEqualTo("Ozzie");
    assertThat(object).valueByXPath("/Contact/@lastName").isNullOrEmpty();
    assertTrue(session.hasWarns());
    assertEquals(8, session.getAudits().getAudit().size(), printAudit(session));
    boolean found = false;
    for (Audit a : session.getAudits().getAudit()) {
        if ("Separate returned fewer segments count=3 when targetField.path=/Contact/@lastName requested index=3".equals(a.getMessage())) {
            found = true;
        }
    }
    assertTrue(found, printAudit(session));
}
Also used : BaseContact(io.atlasmap.java.test.BaseContact) Audit(io.atlasmap.v2.Audit) AtlasContext(io.atlasmap.api.AtlasContext) File(java.io.File) AtlasSession(io.atlasmap.api.AtlasSession) AtlasMappingBaseTest(io.atlasmap.itests.reference.AtlasMappingBaseTest) Test(org.junit.jupiter.api.Test)

Example 14 with Audit

use of org.alfresco.repo.audit.model._3.Audit in project atlasmap by atlasmap.

the class AtlasMappingBaseTest method printAudit.

protected String printAudit(AtlasSession session) {
    StringBuilder buf = new StringBuilder("Audits: ");
    for (Audit a : session.getAudits().getAudit()) {
        buf.append('[');
        buf.append(a.getStatus());
        buf.append(", message=");
        buf.append(a.getMessage());
        buf.append(", path=");
        buf.append(a.getPath());
        buf.append("], ");
    }
    return buf.toString();
}
Also used : Audit(io.atlasmap.v2.Audit)

Example 15 with Audit

use of org.alfresco.repo.audit.model._3.Audit in project atlasmap by atlasmap.

the class AtlasServiceTest method testJarUploadNoProcessorLoader.

@Test
public void testJarUploadNoProcessorLoader() throws Exception {
    assumeFalse(isWindowsJDK8());
    createJarFile(false, true);
    FileInputStream jarIn = new FileInputStream(TEST_JAR_PATH);
    Response resUL = service.uploadLibrary(jarIn);
    assertEquals(200, resUL.getStatus());
    Response resFA = service.listFieldActions(null);
    assertEquals(200, resFA.getStatus());
    String responseJson = new String((byte[]) resFA.getEntity());
    assertFalse(responseJson.contains("myCustomFieldAction"));
    BufferedInputStream in = new BufferedInputStream(new FileInputStream("src/test/resources/mappings/atlasmapping-custom-action.json"));
    AtlasMapping am = mapper.readValue(in, AtlasMapping.class);
    Mapping m = (Mapping) am.getMappings().getMapping().get(0);
    Field f = m.getInputField().get(0);
    f.setValue("foo");
    Action action = f.getActions().get(0);
    Method method = action.getClass().getDeclaredMethod("setParam", new Class[] { String.class });
    method.invoke(action, "param");
    ProcessMappingRequest request = new ProcessMappingRequest();
    request.setMapping(m);
    Response resMR = service.processMappingRequest(new ByteArrayInputStream(mapper.writeValueAsBytes(request)), null);
    assertEquals(200, resMR.getStatus());
    ProcessMappingResponse pmr = Json.mapper().readValue((byte[]) resMR.getEntity(), ProcessMappingResponse.class);
    assertEquals(1, pmr.getAudits().getAudit().size(), printAudit(pmr.getAudits()));
    Audit audit = pmr.getAudits().getAudit().get(0);
    assertEquals(AuditStatus.WARN, audit.getStatus());
    assertTrue(audit.getMessage().contains("Couldn't find metadata for a FieldAction 'MyFieldActionsModel'"));
    assertEquals("foo", pmr.getMapping().getOutputField().get(0).getValue());
}
Also used : Action(io.atlasmap.v2.Action) ProcessMappingResponse(io.atlasmap.v2.ProcessMappingResponse) BaseMapping(io.atlasmap.v2.BaseMapping) Mapping(io.atlasmap.v2.Mapping) AtlasMapping(io.atlasmap.v2.AtlasMapping) Method(java.lang.reflect.Method) FileInputStream(java.io.FileInputStream) ProcessMappingResponse(io.atlasmap.v2.ProcessMappingResponse) Response(javax.ws.rs.core.Response) Field(io.atlasmap.v2.Field) Audit(io.atlasmap.v2.Audit) AtlasMapping(io.atlasmap.v2.AtlasMapping) BufferedInputStream(java.io.BufferedInputStream) ByteArrayInputStream(java.io.ByteArrayInputStream) ProcessMappingRequest(io.atlasmap.v2.ProcessMappingRequest) Test(org.junit.jupiter.api.Test)

Aggregations

Audit (io.atlasmap.v2.Audit)19 Test (org.junit.jupiter.api.Test)7 AtlasSession (io.atlasmap.api.AtlasSession)4 AtlasContext (io.atlasmap.api.AtlasContext)3 AtlasMappingBaseTest (io.atlasmap.itests.reference.AtlasMappingBaseTest)3 BaseContact (io.atlasmap.java.test.BaseContact)3 File (java.io.File)3 AtlasException (io.atlasmap.api.AtlasException)1 TargetContact (io.atlasmap.java.test.TargetContact)1 AtlasJsonTestUnrootedMapper (io.atlasmap.json.test.AtlasJsonTestUnrootedMapper)1 Action (io.atlasmap.v2.Action)1 AtlasMapping (io.atlasmap.v2.AtlasMapping)1 Audits (io.atlasmap.v2.Audits)1 BaseMapping (io.atlasmap.v2.BaseMapping)1 Field (io.atlasmap.v2.Field)1 Mapping (io.atlasmap.v2.Mapping)1 ProcessMappingRequest (io.atlasmap.v2.ProcessMappingRequest)1 ProcessMappingResponse (io.atlasmap.v2.ProcessMappingResponse)1 BufferedInputStream (java.io.BufferedInputStream)1 ByteArrayInputStream (java.io.ByteArrayInputStream)1