Search in sources :

Example 1 with AggregatedIntervalConfig

use of org.apereo.portal.events.aggr.AggregatedIntervalConfig in project uPortal by Jasig.

the class JpaEventAggregationManagementDaoTest method testAggregatedIntervalConfig.

@Test
public void testAggregatedIntervalConfig() throws Exception {
    this.execute(new CallableWithoutResult() {

        @Override
        protected void callWithoutResult() {
            final AggregatedIntervalConfig defaultAggregatedIntervalConfig = eventAggregationManagementDao.getDefaultAggregatedIntervalConfig();
            assertNotNull(defaultAggregatedIntervalConfig);
            assertEquals(0, defaultAggregatedIntervalConfig.getExcluded().size());
            assertEquals(0, defaultAggregatedIntervalConfig.getIncluded().size());
            AggregatedIntervalConfig loginAggregatedIntervalConfig = eventAggregationManagementDao.getAggregatedIntervalConfig(LoginPortalEventAggregator.class);
            assertNull(loginAggregatedIntervalConfig);
            loginAggregatedIntervalConfig = eventAggregationManagementDao.createAggregatedIntervalConfig(LoginPortalEventAggregator.class);
            assertNotNull(loginAggregatedIntervalConfig);
            assertEquals(0, loginAggregatedIntervalConfig.getExcluded().size());
            assertEquals(0, loginAggregatedIntervalConfig.getIncluded().size());
            defaultAggregatedIntervalConfig.getIncluded().add(AggregationInterval.MINUTE);
            loginAggregatedIntervalConfig.getExcluded().add(AggregationInterval.MINUTE);
            eventAggregationManagementDao.updateAggregatedIntervalConfig(defaultAggregatedIntervalConfig);
            eventAggregationManagementDao.updateAggregatedIntervalConfig(loginAggregatedIntervalConfig);
        }
    });
    this.execute(new CallableWithoutResult() {

        @Override
        protected void callWithoutResult() {
            final AggregatedIntervalConfig defaultAggregatedIntervalConfig = eventAggregationManagementDao.getDefaultAggregatedIntervalConfig();
            assertNotNull(defaultAggregatedIntervalConfig);
            assertEquals(0, defaultAggregatedIntervalConfig.getExcluded().size());
            assertEquals(1, defaultAggregatedIntervalConfig.getIncluded().size());
            AggregatedIntervalConfig loginAggregatedIntervalConfig = eventAggregationManagementDao.getAggregatedIntervalConfig(LoginPortalEventAggregator.class);
            assertNotNull(loginAggregatedIntervalConfig);
            assertEquals(1, loginAggregatedIntervalConfig.getExcluded().size());
            assertEquals(0, loginAggregatedIntervalConfig.getIncluded().size());
            eventAggregationManagementDao.deleteAggregatedIntervalConfig(defaultAggregatedIntervalConfig);
            eventAggregationManagementDao.deleteAggregatedIntervalConfig(loginAggregatedIntervalConfig);
        }
    });
    this.execute(new CallableWithoutResult() {

        @Override
        protected void callWithoutResult() {
            final AggregatedIntervalConfig defaultAggregatedIntervalConfig = eventAggregationManagementDao.getDefaultAggregatedIntervalConfig();
            assertNotNull(defaultAggregatedIntervalConfig);
            assertEquals(0, defaultAggregatedIntervalConfig.getExcluded().size());
            assertEquals(0, defaultAggregatedIntervalConfig.getIncluded().size());
            AggregatedIntervalConfig loginAggregatedIntervalConfig = eventAggregationManagementDao.getAggregatedIntervalConfig(LoginPortalEventAggregator.class);
            assertNull(loginAggregatedIntervalConfig);
        }
    });
}
Also used : AggregatedIntervalConfig(org.apereo.portal.events.aggr.AggregatedIntervalConfig) LoginPortalEventAggregator(org.apereo.portal.events.aggr.login.LoginPortalEventAggregator) CallableWithoutResult(org.apereo.portal.concurrency.CallableWithoutResult) Test(org.junit.Test) BaseAggrEventsJpaDaoTest(org.apereo.portal.test.BaseAggrEventsJpaDaoTest)

Example 2 with AggregatedIntervalConfig

use of org.apereo.portal.events.aggr.AggregatedIntervalConfig in project uPortal by Jasig.

the class EventAggregationConfigurationImporterExporter method deleteData.

/*
     * (non-Javadoc)
     * @see org.apereo.portal.io.xml.IDataImporterExporter#deleteData(java.lang.String)
     */
@Transactional("aggrEventsTransactionManager")
@Override
public ExternalEventAggregationConfiguration deleteData(String id) {
    final ExternalEventAggregationConfiguration data = this.exportData(id);
    for (final AggregatedIntervalConfig aggregatedIntervalConfig : this.aggregationManagementDao.getAggregatedIntervalConfigs()) {
        this.aggregationManagementDao.deleteAggregatedIntervalConfig(aggregatedIntervalConfig);
    }
    for (final AggregatedGroupConfig aggregatedGroupConfig : this.aggregationManagementDao.getAggregatedGroupConfigs()) {
        this.aggregationManagementDao.deleteAggregatedGroupConfig(aggregatedGroupConfig);
    }
    this.aggregationManagementDao.setAcademicTermDetails(Collections.<AcademicTermDetail>emptyList());
    this.aggregationManagementDao.setQuarterDetails(EventDateTimeUtils.createStandardQuarters());
    return data;
}
Also used : AggregatedIntervalConfig(org.apereo.portal.events.aggr.AggregatedIntervalConfig) AggregatedGroupConfig(org.apereo.portal.events.aggr.AggregatedGroupConfig) Transactional(org.springframework.transaction.annotation.Transactional)

Example 3 with AggregatedIntervalConfig

use of org.apereo.portal.events.aggr.AggregatedIntervalConfig in project uPortal by Jasig.

the class EventAggregationConfigurationImporterExporter method importData.

@Transactional("aggrEventsTransactionManager")
@Override
public void importData(ExternalEventAggregationConfiguration data) {
    //Import interval configs
    final Set<AggregatedIntervalConfig> oldAggregatedIntervalConfigs = new HashSet<AggregatedIntervalConfig>(this.aggregationManagementDao.getAggregatedIntervalConfigs());
    for (final ExternalAggregatedIntervalConfig extAggregatedIntervalConfig : data.getAggregatedIntervalConfigs()) {
        final String aggregatorTypeName = extAggregatedIntervalConfig.getAggregatorType();
        final Class<? extends IPortalEventAggregator> aggregatorType = getAggregatorType(aggregatorTypeName);
        AggregatedIntervalConfig aggregatedIntervalConfig = this.aggregationManagementDao.getAggregatedIntervalConfig(aggregatorType);
        if (aggregatedIntervalConfig == null) {
            aggregatedIntervalConfig = this.aggregationManagementDao.createAggregatedIntervalConfig(aggregatorType);
        }
        //Remove the config from the old configs set, marking it as updated
        oldAggregatedIntervalConfigs.remove(aggregatedIntervalConfig);
        //Copy over excludes
        final Set<AggregationInterval> excluded = aggregatedIntervalConfig.getExcluded();
        excluded.clear();
        for (final ExternalAggregationInterval extInterval : extAggregatedIntervalConfig.getExcludes()) {
            excluded.add(convert(extInterval));
        }
        //Copy over includes
        final Set<AggregationInterval> included = aggregatedIntervalConfig.getIncluded();
        included.clear();
        for (final ExternalAggregationInterval extInterval : extAggregatedIntervalConfig.getIncludes()) {
            included.add(convert(extInterval));
        }
        this.aggregationManagementDao.updateAggregatedIntervalConfig(aggregatedIntervalConfig);
    }
    //Delete interval configs that were not updated
    for (final AggregatedIntervalConfig aggregatedIntervalConfig : oldAggregatedIntervalConfigs) {
        this.aggregationManagementDao.deleteAggregatedIntervalConfig(aggregatedIntervalConfig);
    }
    //Import Group configs
    final Set<AggregatedGroupConfig> oldAggregatedGroupConfigs = new HashSet<AggregatedGroupConfig>(this.aggregationManagementDao.getAggregatedGroupConfigs());
    for (final ExternalAggregatedGroupConfig extAggregatedGroupConfig : data.getAggregatedGroupConfigs()) {
        final String aggregatorTypeName = extAggregatedGroupConfig.getAggregatorType();
        final Class<? extends IPortalEventAggregator> aggregatorType = getAggregatorType(aggregatorTypeName);
        AggregatedGroupConfig aggregatedGroupConfig = this.aggregationManagementDao.getAggregatedGroupConfig(aggregatorType);
        if (aggregatedGroupConfig == null) {
            aggregatedGroupConfig = this.aggregationManagementDao.createAggregatedGroupConfig(aggregatorType);
        }
        //Remove the config from the old configs set, marking it as updated
        oldAggregatedGroupConfigs.remove(aggregatedGroupConfig);
        //Copy over excludes
        final Set<AggregatedGroupMapping> excluded = aggregatedGroupConfig.getExcluded();
        excluded.clear();
        for (final ExternalAggregatedGroupMapping extGroup : extAggregatedGroupConfig.getExcludes()) {
            excluded.add(convert(extGroup));
        }
        //Copy over includes
        final Set<AggregatedGroupMapping> included = aggregatedGroupConfig.getIncluded();
        included.clear();
        for (final ExternalAggregatedGroupMapping extGroup : extAggregatedGroupConfig.getIncludes()) {
            included.add(convert(extGroup));
        }
        this.aggregationManagementDao.updateAggregatedGroupConfig(aggregatedGroupConfig);
    }
    //Delete interval configs that were not updated
    for (final AggregatedGroupConfig aggregatedGroupConfig : oldAggregatedGroupConfigs) {
        this.aggregationManagementDao.deleteAggregatedGroupConfig(aggregatedGroupConfig);
    }
    //Set quarter details if configured or set default quarters
    final List<ExternalQuarterDetail> extQuarterDetails = data.getQuarterDetails();
    final List<QuarterDetail> quarterDetails;
    if (!extQuarterDetails.isEmpty()) {
        quarterDetails = convertQuarterDetail(extQuarterDetails);
    } else {
        quarterDetails = EventDateTimeUtils.createStandardQuarters();
    }
    this.aggregationManagementDao.setQuarterDetails(quarterDetails);
    //Set academic term if configured
    final List<AcademicTermDetail> academicTerms = Lists.transform(data.getTermDetails(), new Function<ExternalTermDetail, AcademicTermDetail>() {

        public AcademicTermDetail apply(ExternalTermDetail externalTermDetail) {
            return new AcademicTermDetailImpl(new DateMidnight(externalTermDetail.getStart()), new DateMidnight(externalTermDetail.getEnd()), externalTermDetail.getName());
        }
    });
    this.aggregationManagementDao.setAcademicTermDetails(academicTerms);
}
Also used : AggregatedGroupConfig(org.apereo.portal.events.aggr.AggregatedGroupConfig) QuarterDetail(org.apereo.portal.events.aggr.QuarterDetail) DateMidnight(org.joda.time.DateMidnight) HashSet(java.util.HashSet) AcademicTermDetailImpl(org.apereo.portal.events.aggr.dao.jpa.AcademicTermDetailImpl) AggregatedIntervalConfig(org.apereo.portal.events.aggr.AggregatedIntervalConfig) AcademicTermDetail(org.apereo.portal.events.aggr.AcademicTermDetail) AggregatedGroupMapping(org.apereo.portal.events.aggr.groups.AggregatedGroupMapping) AggregationInterval(org.apereo.portal.events.aggr.AggregationInterval) Transactional(org.springframework.transaction.annotation.Transactional)

Example 4 with AggregatedIntervalConfig

use of org.apereo.portal.events.aggr.AggregatedIntervalConfig in project uPortal by Jasig.

the class EventAggregationConfigurationImporterExporter method exportData.

/*
     * (non-Javadoc)
     * @see org.apereo.portal.io.xml.IDataImporterExporter#exportData(java.lang.String)
     */
@Override
public ExternalEventAggregationConfiguration exportData(String id) {
    final ExternalEventAggregationConfiguration externalData = new ExternalEventAggregationConfiguration();
    //Copy interval configs
    final List<ExternalAggregatedIntervalConfig> aggregatedIntervalConfigs = externalData.getAggregatedIntervalConfigs();
    for (final AggregatedIntervalConfig aggregatedIntervalConfig : this.aggregationManagementDao.getAggregatedIntervalConfigs()) {
        final ExternalAggregatedIntervalConfig externalIntervalConfig = new ExternalAggregatedIntervalConfig();
        externalIntervalConfig.setAggregatorType(aggregatedIntervalConfig.getAggregatorType().getName());
        final List<ExternalAggregationInterval> extIncludes = externalIntervalConfig.getIncludes();
        for (final AggregationInterval interval : aggregatedIntervalConfig.getIncluded()) {
            extIncludes.add(convert(interval));
        }
        Collections.sort(extIncludes, EnumNameComparator.INSTANCE);
        final List<ExternalAggregationInterval> extExcludes = externalIntervalConfig.getExcludes();
        for (final AggregationInterval interval : aggregatedIntervalConfig.getExcluded()) {
            extExcludes.add(convert(interval));
        }
        Collections.sort(extExcludes, EnumNameComparator.INSTANCE);
        aggregatedIntervalConfigs.add(externalIntervalConfig);
    }
    Collections.sort(aggregatedIntervalConfigs, ExternalAggregatedDimensionConfigComparator.INSTANCE);
    //Copy group configs
    final List<ExternalAggregatedGroupConfig> aggregatedGroupConfigs = externalData.getAggregatedGroupConfigs();
    for (final AggregatedGroupConfig aggregatedGroupConfig : this.aggregationManagementDao.getAggregatedGroupConfigs()) {
        final ExternalAggregatedGroupConfig externalGroupConfig = new ExternalAggregatedGroupConfig();
        externalGroupConfig.setAggregatorType(aggregatedGroupConfig.getAggregatorType().getName());
        final List<ExternalAggregatedGroupMapping> extIncludes = externalGroupConfig.getIncludes();
        for (final AggregatedGroupMapping Group : aggregatedGroupConfig.getIncluded()) {
            extIncludes.add(convert(Group));
        }
        Collections.sort(extIncludes, ExternalAggregatedGroupMappingComparator.INSTANCE);
        final List<ExternalAggregatedGroupMapping> extExcludes = externalGroupConfig.getExcludes();
        for (final AggregatedGroupMapping Group : aggregatedGroupConfig.getExcluded()) {
            extExcludes.add(convert(Group));
        }
        Collections.sort(extExcludes, ExternalAggregatedGroupMappingComparator.INSTANCE);
        aggregatedGroupConfigs.add(externalGroupConfig);
    }
    Collections.sort(aggregatedGroupConfigs, ExternalAggregatedDimensionConfigComparator.INSTANCE);
    //Copy term details
    final List<ExternalTermDetail> externalTermDetails = externalData.getTermDetails();
    for (final AcademicTermDetail academicTermDetail : this.aggregationManagementDao.getAcademicTermDetails()) {
        final ExternalTermDetail externalTermDetail = new ExternalTermDetail();
        externalTermDetail.setName(academicTermDetail.getTermName());
        externalTermDetail.setStart(academicTermDetail.getStart().toGregorianCalendar());
        externalTermDetail.setEnd(academicTermDetail.getEnd().toGregorianCalendar());
        externalTermDetails.add(externalTermDetail);
    }
    Collections.sort(externalTermDetails, ExternalTermDetailComparator.INSTANCE);
    //Copy quarter details
    final List<ExternalQuarterDetail> quarterDetails = externalData.getQuarterDetails();
    for (final QuarterDetail quarterDetail : this.aggregationManagementDao.getQuartersDetails()) {
        final ExternalQuarterDetail externalQuarterDetail = new ExternalQuarterDetail();
        externalQuarterDetail.setId(quarterDetail.getQuarterId());
        externalQuarterDetail.setStart(quarterDetail.getStart().toString());
        externalQuarterDetail.setEnd(quarterDetail.getEnd().toString());
        quarterDetails.add(externalQuarterDetail);
    }
    Collections.sort(quarterDetails, ExternalQuarterDetailComparator.INSTANCE);
    return externalData;
}
Also used : AggregatedIntervalConfig(org.apereo.portal.events.aggr.AggregatedIntervalConfig) AggregatedGroupConfig(org.apereo.portal.events.aggr.AggregatedGroupConfig) AcademicTermDetail(org.apereo.portal.events.aggr.AcademicTermDetail) QuarterDetail(org.apereo.portal.events.aggr.QuarterDetail) AggregatedGroupMapping(org.apereo.portal.events.aggr.groups.AggregatedGroupMapping) AggregationInterval(org.apereo.portal.events.aggr.AggregationInterval)

Example 5 with AggregatedIntervalConfig

use of org.apereo.portal.events.aggr.AggregatedIntervalConfig in project uPortal by Jasig.

the class JpaEventAggregationManagementDao method createAggregatedIntervalConfig.

@Override
@AggrEventsTransactional
public AggregatedIntervalConfig createAggregatedIntervalConfig(Class<? extends IPortalEventAggregator> aggregatorType) {
    final AggregatedIntervalConfig aggregatedIntervalConfig = new AggregatedIntervalConfigImpl(aggregatorType);
    this.getEntityManager().persist(aggregatedIntervalConfig);
    return aggregatedIntervalConfig;
}
Also used : AggregatedIntervalConfig(org.apereo.portal.events.aggr.AggregatedIntervalConfig)

Aggregations

AggregatedIntervalConfig (org.apereo.portal.events.aggr.AggregatedIntervalConfig)5 AggregatedGroupConfig (org.apereo.portal.events.aggr.AggregatedGroupConfig)3 AcademicTermDetail (org.apereo.portal.events.aggr.AcademicTermDetail)2 AggregationInterval (org.apereo.portal.events.aggr.AggregationInterval)2 QuarterDetail (org.apereo.portal.events.aggr.QuarterDetail)2 AggregatedGroupMapping (org.apereo.portal.events.aggr.groups.AggregatedGroupMapping)2 Transactional (org.springframework.transaction.annotation.Transactional)2 HashSet (java.util.HashSet)1 CallableWithoutResult (org.apereo.portal.concurrency.CallableWithoutResult)1 AcademicTermDetailImpl (org.apereo.portal.events.aggr.dao.jpa.AcademicTermDetailImpl)1 LoginPortalEventAggregator (org.apereo.portal.events.aggr.login.LoginPortalEventAggregator)1 BaseAggrEventsJpaDaoTest (org.apereo.portal.test.BaseAggrEventsJpaDaoTest)1 DateMidnight (org.joda.time.DateMidnight)1 Test (org.junit.Test)1