Search in sources :

Example 1 with StreamCapableTransactionalOperationAdapter

use of org.broadleafcommerce.common.util.StreamCapableTransactionalOperationAdapter in project BroadleafCommerce by BroadleafCommerce.

the class StaticAssetStorageServiceImpl method readStaticAssetStorageByStaticAssetId.

@Override
public StaticAssetStorage readStaticAssetStorageByStaticAssetId(final Long id) {
    final StaticAssetStorage[] storage = new StaticAssetStorage[1];
    transUtil.runTransactionalOperation(new StreamCapableTransactionalOperationAdapter() {

        @Override
        public void execute() {
            storage[0] = staticAssetStorageDao.readStaticAssetStorageByStaticAssetId(id);
        }
    }, RuntimeException.class);
    return storage[0];
}
Also used : StaticAssetStorage(org.broadleafcommerce.cms.file.domain.StaticAssetStorage) StreamCapableTransactionalOperationAdapter(org.broadleafcommerce.common.util.StreamCapableTransactionalOperationAdapter)

Example 2 with StreamCapableTransactionalOperationAdapter

use of org.broadleafcommerce.common.util.StreamCapableTransactionalOperationAdapter in project BroadleafCommerce by BroadleafCommerce.

the class StaticAssetStorageServiceImpl method createBlob.

@Override
public Blob createBlob(final MultipartFile uploadedFile) throws IOException {
    final Blob[] blob = new Blob[1];
    transUtil.runTransactionalOperation(new StreamCapableTransactionalOperationAdapter() {

        @Override
        public void execute() {
            try {
                blob[0] = staticAssetStorageDao.createBlob(uploadedFile);
            } catch (IOException e) {
                LOG.error("Unable to create blob from MultipartFile.", e);
            }
        }
    }, RuntimeException.class);
    return blob[0];
}
Also used : Blob(java.sql.Blob) StreamCapableTransactionalOperationAdapter(org.broadleafcommerce.common.util.StreamCapableTransactionalOperationAdapter) IOException(java.io.IOException)

Example 3 with StreamCapableTransactionalOperationAdapter

use of org.broadleafcommerce.common.util.StreamCapableTransactionalOperationAdapter in project BroadleafCommerce by BroadleafCommerce.

the class StaticAssetStorageServiceImpl method findStaticAssetStorageById.

@Override
public StaticAssetStorage findStaticAssetStorageById(final Long id) {
    final StaticAssetStorage[] storage = new StaticAssetStorage[1];
    transUtil.runTransactionalOperation(new StreamCapableTransactionalOperationAdapter() {

        @Override
        public void execute() {
            storage[0] = staticAssetStorageDao.readStaticAssetStorageById(id);
        }
    }, RuntimeException.class);
    return storage[0];
}
Also used : StaticAssetStorage(org.broadleafcommerce.cms.file.domain.StaticAssetStorage) StreamCapableTransactionalOperationAdapter(org.broadleafcommerce.common.util.StreamCapableTransactionalOperationAdapter)

Example 4 with StreamCapableTransactionalOperationAdapter

use of org.broadleafcommerce.common.util.StreamCapableTransactionalOperationAdapter in project BroadleafCommerce by BroadleafCommerce.

the class StaticAssetStorageServiceImpl method save.

@Override
public StaticAssetStorage save(final StaticAssetStorage assetStorage) {
    final StaticAssetStorage[] storage = new StaticAssetStorage[1];
    transUtil.runTransactionalOperation(new StreamCapableTransactionalOperationAdapter() {

        @Override
        public void execute() {
            storage[0] = staticAssetStorageDao.save(assetStorage);
        }
    }, RuntimeException.class);
    return storage[0];
}
Also used : StaticAssetStorage(org.broadleafcommerce.cms.file.domain.StaticAssetStorage) StreamCapableTransactionalOperationAdapter(org.broadleafcommerce.common.util.StreamCapableTransactionalOperationAdapter)

Example 5 with StreamCapableTransactionalOperationAdapter

use of org.broadleafcommerce.common.util.StreamCapableTransactionalOperationAdapter in project BroadleafCommerce by BroadleafCommerce.

the class OfferServiceImpl method refreshOfferCodesIfApplicable.

/**
 * For enterprise installations, this will refresh any OfferCodes found to be out-of-date with
 * current sandbox status.
 *
 * @param order the order to check
 * @return the refreshed list of OfferCodes
 */
protected List<OfferCode> refreshOfferCodesIfApplicable(final Order order) {
    final List<OfferCode> orderOfferCodes = order.getAddedOfferCodes();
    transUtil.runTransactionalOperation(new StreamCapableTransactionalOperationAdapter() {

        @Override
        public void execute() {
            for (OfferCode offerCode : orderOfferCodes) {
                if (offerCode.getOffer() != null) {
                    Long sandBoxVersionId = sandBoxHelper.getSandBoxVersionId(OfferImpl.class, offerCode.getOffer().getId());
                    if (sandBoxVersionId != null && !Objects.equals(sandBoxVersionId, offerCode.getOffer().getId())) {
                        em.refresh(offerCode);
                    }
                }
            }
        }

        @Override
        public boolean shouldRetryOnTransactionLockAcquisitionFailure() {
            return true;
        }
    }, RuntimeException.class);
    return orderOfferCodes;
}
Also used : OfferCode(org.broadleafcommerce.core.offer.domain.OfferCode) OfferImpl(org.broadleafcommerce.core.offer.domain.OfferImpl) StreamCapableTransactionalOperationAdapter(org.broadleafcommerce.common.util.StreamCapableTransactionalOperationAdapter)

Aggregations

StreamCapableTransactionalOperationAdapter (org.broadleafcommerce.common.util.StreamCapableTransactionalOperationAdapter)16 ServiceException (org.broadleafcommerce.common.exception.ServiceException)6 PlatformTransactionManager (org.springframework.transaction.PlatformTransactionManager)6 PersistenceResponse (org.broadleafcommerce.openadmin.server.service.persistence.PersistenceResponse)5 StaticAssetStorage (org.broadleafcommerce.cms.file.domain.StaticAssetStorage)3 IOException (java.io.IOException)2 Blob (java.sql.Blob)2 Map (java.util.Map)2 Session (org.hibernate.Session)2 ArrayList (java.util.ArrayList)1 List (java.util.List)1 ConcurrentHashMap (java.util.concurrent.ConcurrentHashMap)1 EntityManager (javax.persistence.EntityManager)1 Site (org.broadleafcommerce.common.site.domain.Site)1 OfferCode (org.broadleafcommerce.core.offer.domain.OfferCode)1 OfferImpl (org.broadleafcommerce.core.offer.domain.OfferImpl)1