Example usage for org.apache.commons.logging Log info

List of usage examples for org.apache.commons.logging Log info

Introduction

In this page you can find the example usage for org.apache.commons.logging Log info.

Prototype

void info(Object message);

Source Link

Document

Logs a message with info log level.

Usage

From source file:org.opendatakit.aggregate.task.PurgeOlderSubmissionsWorkerImpl.java

public final void purgeOlderSubmissions()
        throws ODKDatastoreException, ODKFormNotFoundException, ODKExternalServiceDependencyException {

    Log logger = LogFactory.getLog(PurgeOlderSubmissionsWorkerImpl.class);
    logger.info("Beginning Submissions Purge: " + miscTasksKey.toString() + " form " + form.getFormId());

    MiscTasks t;// www  . ja  v a  2s. c om
    try {
        t = new MiscTasks(miscTasksKey, cc);
    } catch (Exception e) {
        return;
    }
    // gain lock on the formId itself...
    // the locked resource should be the formId, but for testing
    // it is useful to have the external services collide using
    // formId. Prefix with MT: to indicate that it is a miscellaneousTask
    // lock.
    Datastore ds = cc.getDatastore();
    User user = cc.getCurrentUser();
    String lockedResourceName = t.getMiscTaskLockName();
    TaskLock formIdTaskLock = ds.createTaskLock(user);

    boolean locked = false;
    try {
        if (formIdTaskLock.obtainLock(pFormIdLockId, lockedResourceName, TaskLockType.FORM_DELETION)) {
            locked = true;
        }
        formIdTaskLock = null;
    } catch (ODKTaskLockException e1) {
        e1.printStackTrace();
    }

    if (!locked) {
        return;
    }

    try {
        if (t.getRequestDate().before(form.getCreationDate())) {
            // form is newer, so the task must not refer to this form definition...
            doMarkAsComplete(t);
        } else {
            // purge request should have been created after the form...
            doPurgeOlderSubmissions(t);
        }
    } catch (Exception e2) {
        e2.printStackTrace();
    } finally {
        formIdTaskLock = ds.createTaskLock(user);
        try {
            for (int i = 0; i < 10; i++) {
                if (formIdTaskLock.releaseLock(pFormIdLockId, lockedResourceName, TaskLockType.FORM_DELETION))
                    break;
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    // just move on, this retry mechanism
                    // is to make things nice
                }
            }
        } catch (ODKTaskLockException e) {
            e.printStackTrace();
        }
    }
}

From source file:org.opendatakit.aggregate.task.PurgeOlderSubmissionsWorkerImpl.java

private void doMarkAsComplete(MiscTasks t) throws ODKEntityPersistException, ODKOverQuotaException {

    Log logger = LogFactory.getLog(PurgeOlderSubmissionsWorkerImpl.class);
    logger.info("Submissions Purge: " + miscTasksKey.toString() + " form " + form.getFormId()
            + " doMarkAsComplete");

    // and mark us as completed... (don't delete for audit..).
    t.setCompletionDate(new Date());
    t.setStatus(FormActionStatus.SUCCESSFUL);
    t.persist(cc);/*from   w w w  .ja v a 2 s .c o m*/
}

From source file:org.opendatakit.aggregate.task.PurgeOlderSubmissionsWorkerImpl.java

/**
 * we have gained a lock on the form. Now go through and try to delete all
 * submissions older than the given date under this form.
 * /*ww  w .  jav  a2  s  . c  o m*/
 * @return true if form is fully deleted...
 * @throws ODKDatastoreException
 * @throws ODKTaskLockException
 */
private boolean doPurgeOlderSubmissions(MiscTasks t) throws Exception {

    CommonFieldsBase relation = null;
    Datastore ds = cc.getDatastore();
    User user = cc.getCurrentUser();

    Log logger = LogFactory.getLog(PurgeOlderSubmissionsWorkerImpl.class);

    Map<String, String> rp = t.getRequestParameters();
    String purgeBeforeDateString = rp.get(PurgeOlderSubmissions.PURGE_DATE);
    Date purgeBeforeDate = WebUtils.parsePurgeDateString(purgeBeforeDateString);

    logger.info("Submissions Purge: " + miscTasksKey.toString() + " form " + form.getFormId()
            + " doPurgeOlderSubmissions date: " + purgeBeforeDateString);

    // it is possible to have a FormInfo entry without any information
    // on the backing object (no records in FormDataModel). In that
    // case, the formDefinition will be null, causing getTLGE() to throw
    // an exception.
    try {
        relation = form.getTopLevelGroupElement().getFormDataModel().getBackingObjectPrototype();
    } catch (Exception e) {
        relation = null;
    }

    if (relation != null) {

        for (;;) {
            // retrieve submissions
            // for large data sets, this might fail?
            Date startDate = BasicConsts.EPOCH;
            List<TopLevelDynamicBase> topLevelEntities = querySubmissionsDateRange(startDate, purgeBeforeDate);

            logger.info("retrieved " + topLevelEntities.size() + " submissions.");
            if (topLevelEntities.size() == 0)
                break;

            List<SubmissionKey> keys = new ArrayList<SubmissionKey>();
            for (TopLevelDynamicBase tld : topLevelEntities) {
                keys.add(new SubmissionKey(form.getFormId(), form.getTopLevelGroupElement().getElementName(),
                        tld.getEntityKey().getKey()));
            }

            DeleteSubmissions delete;
            delete = new DeleteSubmissions(keys);
            delete.deleteSubmissions(cc);

            logger.info("successfully deleted " + topLevelEntities.size() + " submissions");
            t.setLastActivityDate(new Date());
            t.persist(cc);
            // renew lock

            TaskLock taskLock = ds.createTaskLock(user);
            // TODO: figure out what to do if this returns false
            taskLock.renewLock(pFormIdLockId, t.getMiscTaskLockName(), t.getTaskType().getLockType());
            taskLock = null;
        }
    }
    doMarkAsComplete(t);
    return true;
}

From source file:org.opendatakit.aggregate.task.WorksheetCreatorWorkerImpl.java

public final void worksheetCreator() {

    Log logger = LogFactory.getLog(WorksheetCreatorWorkerImpl.class);
    logger.info("Beginning Worksheet Creator: " + miscTasksKey.toString() + " form " + form.getFormId());

    MiscTasks t;/*from ww  w .  j  a v  a 2s.c om*/
    try {
        t = new MiscTasks(miscTasksKey, cc);
    } catch (Exception e) {
        logger.error("worksheetCreator: " + miscTasksKey.toString() + " form " + form.getFormId()
                + " MiscTasks retrieval exception: " + e.toString());
        return;
    }
    // gain lock on the formId itself...
    // the locked resource should be the formId, but for testing
    // it is useful to have the external services collide using
    // formId.  Prefix with MT: to indicate that it is a miscellaneousTask
    // lock.
    Datastore ds = cc.getDatastore();
    User user = cc.getCurrentUser();
    String lockedResourceName = t.getMiscTaskLockName();
    TaskLock formIdTaskLock = ds.createTaskLock(user);

    boolean locked = false;
    try {
        if (formIdTaskLock.obtainLock(pFormIdLockId, lockedResourceName, TaskLockType.WORKSHEET_CREATION)) {
            locked = true;
        }
        formIdTaskLock = null;
    } catch (ODKTaskLockException e1) {
        e1.printStackTrace(); // Occasionally expected...
    }

    if (!locked) {
        return;
    }

    try {
        if (t.getRequestDate().before(form.getCreationDate())) {
            // form is newer, so the task must not refer to this form definition...
            doMarkAsComplete(t);
        } else {
            // worksheet creation request should have been created after the form...
            doWorksheetCreator(logger);
        }
    } catch (Exception e2) {
        // some other unexpected exception...
        logger.error("worksheetCreator: " + miscTasksKey.toString() + " form " + form.getFormId()
                + " Unexpected exception from work body: " + e2.toString());
        e2.printStackTrace();
    } finally {
        formIdTaskLock = ds.createTaskLock(user);
        try {
            for (int i = 0; i < 10; i++) {
                if (formIdTaskLock.releaseLock(pFormIdLockId, lockedResourceName,
                        TaskLockType.WORKSHEET_CREATION))
                    break;
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    // just move on, this retry mechanism
                    // is to make things nice
                }
            }
        } catch (ODKTaskLockException e) {
            e.printStackTrace();
        }
    }
}

From source file:org.opendatakit.aggregate.task.WorksheetCreatorWorkerImpl.java

public final void doWorksheetCreator(Log logger) {
    try {//from  ww w . ja v a 2 s  .c  om
        // get spreadsheet
        GoogleSpreadsheet spreadsheet = getGoogleSpreadsheetWithName();

        // verify form has a spreadsheet element
        if (spreadsheet == null) {
            throw new ODKExternalServiceException("unable to find spreadsheet");
        }

        // generate worksheets
        try {
            spreadsheet.generateWorksheets(cc);
            logger.info("doWorksheetCreator: " + miscTasksKey.toString() + " form " + form.getFormId()
                    + " Successful worksheet creation!");
        } catch (AuthenticationException e) {
            logger.error("doWorksheetCreator: " + miscTasksKey.toString() + " form " + form.getFormId()
                    + " Exception: " + e.toString());
            throw new ODKExternalServiceCredentialsException(e);
        } catch (ODKExternalServiceException e) {
            logger.error("doWorksheetCreator: " + miscTasksKey.toString() + " form " + form.getFormId()
                    + " Exception: " + e.toString());
            throw e;
        } catch (Exception e) {
            logger.error("doWorksheetCreator: " + miscTasksKey.toString() + " form " + form.getFormId()
                    + " Exception: " + e.toString());
            throw new ODKExternalServiceException(e);
        }

        // the above may have taken a while -- re-fetch the data to see if it has changed...
        MiscTasks r = new MiscTasks(miscTasksKey, cc);
        if (attemptCount.equals(r.getAttemptCount())) {
            // still the same attempt...
            // if we need to upload submissions, start a task to do so
            UploadSubmissions us = (UploadSubmissions) cc.getBean(BeanDefs.UPLOAD_TASK_BEAN);
            if (!esType.equals(ExternalServicePublicationOption.STREAM_ONLY)) {
                us.createFormUploadTask(spreadsheet.getFormServiceCursor(), true, cc);
            }

            doMarkAsComplete(r);
        }
    } catch (Exception e) {
        logger.error("doWorksheetCreator: " + miscTasksKey.toString() + " form " + form.getFormId()
                + " Initiating failure recovery: " + e.toString());
        failureRecovery(e);
    }
}

From source file:org.opendatakit.api.odktables.FileManifestService.java

/**
 *
 * @param httpHeaders//  w  w w.ja v a 2s .c o m
 * @param odkClientVersion
 * @return {@link OdkTablesFileManifest} of all the files meeting the filter criteria.
 * @throws ODKOverQuotaException
 * @throws ODKEntityNotFoundException
 * @throws ODKTaskLockException
 * @throws ODKDatastoreException
 * @throws PermissionDeniedException
 */
@GET
@ApiOperation(value = "Returns a list of application-level files.", response = OdkTablesFileManifest.class)
@Path("{odkClientVersion}")
@Produces({ MediaType.APPLICATION_JSON, ApiConstants.MEDIA_TEXT_XML_UTF8,
        ApiConstants.MEDIA_APPLICATION_XML_UTF8 })
public Response /* OdkTablesFileManifest */ getAppLevelFileManifest(@Context HttpHeaders httpHeaders,
        @PathParam("odkClientVersion") String odkClientVersion) throws ODKEntityNotFoundException,
        ODKOverQuotaException, PermissionDeniedException, ODKDatastoreException, ODKTaskLockException {

    FileManifestManager manifestManager = new FileManifestManager(appId, odkClientVersion, cc);
    OdkTablesFileManifest manifest = null;
    Log log = LogFactory.getLog(FileManifestService.class);

    // retrieve the incoming if-none-match eTag...
    List<String> eTags = httpHeaders.getRequestHeader(HttpHeaders.IF_NONE_MATCH);
    String eTag = (eTags == null || eTags.isEmpty()) ? null : eTags.get(0);
    DbManifestETagEntity eTagEntity = null;
    try {
        try {
            eTagEntity = DbManifestETags.getTableIdEntry(DbManifestETags.APP_LEVEL, cc);
        } catch (ODKEntityNotFoundException e) {
            // ignore...
        }
        if (eTag != null && eTagEntity != null && eTag.equals(eTagEntity.getManifestETag())) {
            log.info("The etag about to be returned for Not Modified is " + eTag);
            return Response.status(Status.NOT_MODIFIED).header(HttpHeaders.ETAG, eTag)
                    .header(ApiConstants.OPEN_DATA_KIT_VERSION_HEADER, ApiConstants.OPEN_DATA_KIT_VERSION)
                    .header("Access-Control-Allow-Origin", "*")
                    .header("Access-Control-Allow-Credentials", "true").build();
        }
        // we want just the app-level files.
        manifest = manifestManager.getManifestForAppLevelFiles();

    } catch (ODKDatastoreException e) {
        log.error("Datastore exception in getting the file manifest");
        e.printStackTrace();
    }
    if (manifest == null) {
        return Response.status(Status.INTERNAL_SERVER_ERROR).entity("Unable to retrieve manifest.")
                .header(ApiConstants.OPEN_DATA_KIT_VERSION_HEADER, ApiConstants.OPEN_DATA_KIT_VERSION)
                .header("Access-Control-Allow-Origin", "*").header("Access-Control-Allow-Credentials", "true")
                .build();
    } else {
        String newETag = Integer.toHexString(manifest.hashCode());
        // create a new eTagEntity if there isn't one already...
        if (eTagEntity == null) {
            eTagEntity = DbManifestETags.createNewEntity(DbManifestETags.APP_LEVEL, cc);
            eTagEntity.setManifestETag(newETag);
            eTagEntity.put(cc);
        } else if (!newETag.equals(eTagEntity.getManifestETag())) {
            log.error("App-level Manifest ETag does not match computed value!");
            eTagEntity.setManifestETag(newETag);
            eTagEntity.put(cc);
        }
        // and whatever the eTag is in that entity is the eTag we should return...
        eTag = eTagEntity.getManifestETag();
        UriBuilder uriBuilder = info.getBaseUriBuilder();
        uriBuilder.path(OdkTables.class);
        //UriBuilder uriBuilder = UriBuilder.fromResource(OdkTables.class);
        uriBuilder.path(OdkTables.class, "getFilesService");
        // now supply the downloadUrl...
        for (OdkTablesFileManifestEntry entry : manifest.getFiles()) {
            URI self = uriBuilder.clone().path(FileService.class, "getFile")
                    .build(ArrayUtils.toArray(appId, odkClientVersion, entry.filename), false);
            try {
                entry.downloadUrl = self.toURL().toExternalForm();
            } catch (MalformedURLException e) {
                e.printStackTrace();
                throw new IllegalArgumentException("Unable to convert to URL");
            }
        }

        log.info("The etag about to be returned for OK is " + eTag);
        return Response.ok(manifest).header(HttpHeaders.ETAG, eTag)
                .header(ApiConstants.OPEN_DATA_KIT_VERSION_HEADER, ApiConstants.OPEN_DATA_KIT_VERSION)
                .header("Access-Control-Allow-Origin", "*").header("Access-Control-Allow-Credentials", "true")
                .build();
    }
}

From source file:org.opendatakit.common.datamodel.DeleteHelper.java

public static void deleteDamagedSubmission(TopLevelDynamicBase tle, Set<DynamicCommonFieldsBase> backingObjects,
        CallingContext cc) throws ODKDatastoreException {

    Log logger = LogFactory.getLog(DeleteHelper.class);

    Set<DynamicDocumentBase> documents = new TreeSet<DynamicDocumentBase>(
            DynamicCommonFieldsBase.sameTableName);
    Set<DynamicAssociationBase> associations = new TreeSet<DynamicAssociationBase>(
            DynamicCommonFieldsBase.sameTableName);
    Set<DynamicBase> groups = new TreeSet<DynamicBase>(DynamicCommonFieldsBase.sameTableName);

    for (DynamicCommonFieldsBase dcb : backingObjects) {
        if (dcb instanceof DynamicDocumentBase) {
            documents.add((DynamicDocumentBase) dcb);
        } else if (dcb instanceof DynamicAssociationBase) {
            associations.add((DynamicAssociationBase) dcb);
        } else if (!(dcb instanceof TopLevelDynamicBase)) {
            groups.add((DynamicBase) dcb);
        }/*from w w  w. j a  v a  2 s . c  o m*/
    }

    logger.info("deleteDamagedSubmissions begin purging records for badTopLevelEntity: " + tle.getUri());

    // delete documents
    for (DynamicDocumentBase dd : documents) {
        Query q = cc.getDatastore().createQuery(dd, "purge(damaged) - documents", cc.getCurrentUser());
        q.addFilter(dd.topLevelAuri, FilterOperation.EQUAL, tle.getUri());
        List<? extends CommonFieldsBase> results = q.executeQuery();
        for (CommonFieldsBase c : results) {
            cc.getDatastore().deleteEntity(c.getEntityKey(), cc.getCurrentUser());
        }
    }

    // delete associations
    for (DynamicAssociationBase dd : associations) {
        Query q = cc.getDatastore().createQuery(dd, "purge(damaged) - associations", cc.getCurrentUser());
        q.addFilter(dd.topLevelAuri, FilterOperation.EQUAL, tle.getUri());
        List<? extends CommonFieldsBase> results = q.executeQuery();
        for (CommonFieldsBase c : results) {
            cc.getDatastore().deleteEntity(c.getEntityKey(), cc.getCurrentUser());
        }
    }

    // delete groups or choices
    for (DynamicBase dd : groups) {
        Query q = cc.getDatastore().createQuery(dd, "purge(damaged) - groups", cc.getCurrentUser());
        q.addFilter(dd.topLevelAuri, FilterOperation.EQUAL, tle.getUri());
        List<? extends CommonFieldsBase> results = q.executeQuery();
        for (CommonFieldsBase c : results) {
            cc.getDatastore().deleteEntity(c.getEntityKey(), cc.getCurrentUser());
        }
    }

    // delete top level entity
    cc.getDatastore().deleteEntity(tle.getEntityKey(), cc.getCurrentUser());
    logger.info("deleteDamagedSubmissions end purging records for badTopLevelEntity: " + tle.getUri());
}

From source file:org.opendatakit.common.security.Realm.java

@Override
public void afterPropertiesSet() throws Exception {
    if (realmString == null) {
        throw new IllegalStateException("realmString (e.g., mydomain.org ODK Aggregate 1.0) must be specified");
    }//w ww .  jav  a 2s .com
    Log log = LogFactory.getLog(Realm.class);
    log.info("Version: " + UIConsts.VERSION_STRING);
    log.info("Hostname: " + hostname);
    log.info("Port: " + Integer.toString(port));
    log.info("SecurePort: " + Integer.toString(securePort));
    log.info("SslIsRequired: " + (sslIsRequired ? "yes" : "no"));
    log.info("SslIsAvailable: " + (sslIsAvailable ? "yes" : "no"));
    log.info("RealmString: " + realmString);
    log.info("isGaeEnvironment: " + (isGaeEnvironment ? "yes" : "no"));
}

From source file:org.opendatakit.common.security.spring.UserServiceImpl.java

@Override
public void afterPropertiesSet() throws Exception {
    if (realm == null) {
        throw new IllegalStateException("realm must be configured");
    }//  w  w  w.ja v a2s . c o m
    if (datastore == null) {
        throw new IllegalStateException("datastore must be configured");
    }
    if (superUserEmail == null) {
        throw new IllegalStateException("superUserEmail must be configured");
    }
    if (superUserEmail.length() == 0) {
        superUserEmail = null;
    }
    if (superUserEmail != null && (!superUserEmail.startsWith(SecurityUtils.MAILTO_COLON)
            || !superUserEmail.contains(SecurityUtils.AT_SIGN))) {
        throw new IllegalStateException("superUserEmail is malformed. "
                + "Must be of the form 'mailto:user@gmail.com' or other supported OAuth2 provider.");
    }
    Log log = LogFactory.getLog(UserServiceImpl.class);
    log.info("superUserEmail: " + superUserEmail);
    log.info("superUserUsername: " + superUserUsername);

    reloadPermissions();
}

From source file:org.opendatakit.configuration.TestUserServiceConfiguration.java

@Bean
public RoleHierarchy hierarchicalRoleRelationships() throws ODKDatastoreException, PropertyVetoException {
    Log logger = LogFactory.getLog(TestUserServiceConfiguration.class);
    logger.info("Setting up hierarchicalRoleRelationships");
    RoleHierarchyImpl roleHierarchyImpl = new RoleHierarchyImpl();
    roleHierarchyImpl.setDatastore(testDataConfiguration.datastore());
    roleHierarchyImpl.setUserService(userService());
    return roleHierarchyImpl;
}