@Override protected void processElement(final Element<IProcessedElement> element) throws Exception { if (element.getData() instanceof CatalogElement) { chunk.getItems().add((CatalogElement)element.getData()); } else if (element.getData() instanceof WriteStatusRequest) { chunk.getWriteStatusRequests().add((WriteStatusRequest)element.getData()); } final boolean flush = element.getData() instanceof FlushRequest || chunk.getItems().size() >= batchSize; if (flush) { if (target != null) { try { target.process(chunk); } catch (final Exception e) { if (context != null) { context.getListener().notifyEvent("chunkProcessing", new String[]{chunk.getId()}, EventResultCode.ERROR, StackTraceUtil.getStackTrace(e)); } log.error("Exception during processing a chunk " + chunk.getId(), e); } } chunk = new Chunk(UUID.randomUUID().toString(), new LinkedList<CatalogElement>()); } }
@Override protected Chunk doProcessChunk(final Chunk data, final Map<String, Serializable> context, final IProcessListener processListener, final ProcessingStats stats) throws Exception { final ComplexEditorStorageBatchHolder batchHolder = new ComplexEditorStorageBatchHolder(); for (final CatalogElement e : data.getItems()) { try { if (e.getElement() != null || e.getNonElement()!=null) { processElement(e, context, batchHolder); } } catch (final Exception ex) { if (processListener != null) { processListener.notifyEvent("licenceResolver.process", new String[]{e.getExtId()}, EventResultCode.ERROR, StackTraceUtil.getStackTrace(ex)); } log.error("Exception processing licenses for element" + e.getExtId(), ex); throw ex; } } data.getCustomEditorOperations().addAll(batchHolder.getEditorBatchToRead()); data.getCustomStorageOperations().addAll(batchHolder.getStorageBatchToRead()); return data; }
final Date cutoffDate = (Date) context.get(Constants.PARAM_FORCE_CUTOFF_DATE); for (final CatalogElement ce : data.getItems()) { if (!data.getObjectsToWrite().containsKey(item.getKey())) { data.getObjectsToWrite().put(item.getKey(), new CatalogObject<String>(new YaddaObjectID(item.getKey()))); data.getObjectsToWrite().get(item.getKey()).addPart(ancestorsPart);
@Override protected Chunk doProcessChunk(final Chunk data, final Map<String, Serializable> context, final IProcessListener processListener, final ProcessingStats stats) throws Exception { final List<EditorOperation> buffer = new LinkedList<EditorOperation>(); //TODO Implement soft-lock support for (final CatalogObject<String> object : data.getObjectsToWrite().values()) { final SaveOperation<String> so = new SaveOperation<String>(object, null, true); buffer.add(so); } buffer.addAll(data.getCustomEditorOperations()); if (!buffer.isEmpty()) { editorFacade.batch(buffer, EXECUTION_MODE.TRANSACTIONAL); } return data; }
final int chunkSize = data.getItems().size(); final Chunk result = doProcessChunk(data, context, processListener, stats); final long stop = new Date().getTime(); processListener.notifyEvent("chunkProcessing", new String[]{data.getId()}, EventResultCode.ERROR, StackTraceUtil.getStackTrace(e)); for (final CatalogElement item : data.getItems()) { processListener.notifyEvent("chunkProcessing.item", new String[]{data.getId(), item.getExtId()}, EventResultCode.ERROR, null); new ChunkErrorDump(data, e, new HashMap<String, Serializable>())); log.error("Error dump stored with id: " + dumpId); processListener.notifyEvent("chunkProcessing.storeDump", new String[]{data.getId(), dumpId}, EventResultCode.SUCCESS, null);
@Override protected Chunk doProcessChunk(Chunk data, Map<String, Serializable> context, IProcessListener processListener, ProcessingStats stats) throws Exception { for (CatalogElement element : data.getItems()) { String extId = element.getExtId(); metadataImporter.cleanMetadata(extId); } return data; }
@Override protected Chunk doProcessChunk(Chunk data, Map<String, Serializable> context, IProcessListener processListener, ProcessingStats stats) throws Exception { for (WriteStatusRequest ce : data.getWriteStatusRequests()) { String serializedElementStatus = xStream.toXML(ce.getNewStatus()); YaddaObjectID id = new YaddaObjectID(ce.getExtId().getId()); if (!data.getObjectsToWrite().containsKey(ce.getExtId().getId())) { data.getObjectsToWrite().put(ce.getExtId().getId(), new CatalogObject<String>(id)); } CatalogObjectPart<String> elementStatusPart = new CatalogObjectPart<String>( CatalogParamConstants.TYPE_ELEMENT_PROCESSING_STATUS, serializedElementStatus); data.getObjectsToWrite().get(ce.getExtId().getId()).addPart(elementStatusPart); } return data; }
@Override protected Chunk doProcessChunk(final Chunk data, final Map<String, Serializable> context, final IProcessListener processListener, final ProcessingStats stats) throws Exception { storageFacade.batch(data.getCustomStorageOperations(), IStorage.EXECUTION_MODE.TRANSACTIONAL); return data; }
@Override protected void finishTargets() { try { if (target != null) { target.process(chunk); } } catch (final Exception e) { if (context != null) { context.getListener().notifyEvent("chunkProcessing", new String[]{chunk.getId()}, EventResultCode.ERROR, StackTraceUtil.getStackTrace(e)); } log.error("Exception during processing a chunk " + chunk.getId(), e); } super.finishTargets(); }
@Override protected Chunk doProcessChunk(Chunk data, Map<String, Serializable> context, IProcessListener processListener, ProcessingStats stats) throws Exception { List<Element> elementList = new ArrayList<Element>(); List<Ancestors> ancestorsList = new ArrayList<Ancestors>(); for (CatalogElement item : data.getItems()) { if (item == null || item.getElement() == null) continue; Ancestors ancestors = new Ancestors(); for (Entry<String, List<Ancestor>> hierarchyData : item.getRelations().entrySet()) ancestors.setAncestorsOfHierarchy(hierarchyData.getKey(), hierarchyData.getValue()); elementList.add(item.getElement()); ancestorsList.add(ancestors); } if (! elementList.isEmpty()) metadataImporter.importDesklightMetadata(elementList, ancestorsList); return data; }
@Override protected Chunk doProcessChunk(Chunk data, Map<String, Serializable> context, IProcessListener processListener, ProcessingStats stats) throws Exception { List<Element> elementList = new ArrayList<Element>(); List<Ancestors> ancestorsList = new ArrayList<Ancestors>(); for (CatalogElement item : data.getItems()) { if (item == null || item.getElement() == null) continue; Ancestors ancestors = new Ancestors(); for (Entry<String, List<Ancestor>> hierarchyData : item.getRelations().entrySet()) ancestors.setAncestorsOfHierarchy(hierarchyData.getKey(), hierarchyData.getValue()); elementList.add(item.getElement()); ancestorsList.add(ancestors); } if (! elementList.isEmpty()) metadataImporter.matchDesklightMetadata(elementList, ancestorsList); return data; }
for (CatalogElement ce : data.getItems()) { if (!data.getObjectsToWrite().containsKey(parentExtId)) { data.getObjectsToWrite().put(parentExtId, new CatalogObject<String>(new YaddaObjectID(parentExtId))); data.getObjectsToWrite().get(parentExtId).addPart(ancestorsPart);
int newCount = 0; for (final CatalogElement celement : data.getItems()) { final Element element = celement.getElement(); if (element != null) {
@Override protected Chunk doProcessChunk(Chunk data, Map<String, Serializable> context, IProcessListener processListener, ProcessingStats stats) throws Exception { final Batch batch = browserFacade.relation(ElementPublisherView.ELEMENT_PUBLISHER_VIEW_NAME).batch(); for (final CatalogElement catalogElement : data.getItems()) { try { batch.delete(Condition.eq(ElementPublisherView.FIELD_PUBLISHED_ELEMENT_EXTID, catalogElement.getExtId())); if (!catalogElement.isDeleted() && catalogElement.getElement() != null && hasRelatedPublisher(catalogElement)) { final List<Serializable[]> tuples = ElementPublisherView.asTuples(catalogElement, contributorInfoBuilder, bwmetaSource); for (final Serializable[] tuple : tuples) { batch.add(tuple); } } } catch (final Exception e) { if (context.containsKey(Constants.PARAM_DISABLE_AGGREGATIONS_DURING_REBUILD)) { browserFacade.relation(ElementPublisherView.ELEMENT_PUBLISHER_VIEW_NAME).setAggregatingEnabled(false, false); } if (processListener != null) { processListener.notifyEvent("elementPublisherViewGenerator.process", new String[]{catalogElement.getExtId()}, EventResultCode.ERROR, StackTraceUtil.getStackTrace(e)); } log.error("Exception processing element " + catalogElement.getExtId()); throw e; } } batch.run(); return data; }
@Override protected Chunk doProcessChunk(final Chunk data, final Map<String, Serializable> context, final IProcessListener processListener, final ProcessingStats stats) throws Exception { final Batch batch = browserFacade.relation(ContributorView.CONTRIBUTOR_VIEW_NAME).batch(); for (final CatalogElement ce : data.getItems()) { try { batch.delete(Condition.eq(ContributorView.FIELD_ELEMENT_ID, ce.getExtId())); if (!ce.isDeleted() && ce.getElement() != null) { final Serializable[][] tuples=ContributorView.asTuples(ce.getElement(), contributorInfoBuilder); for (final Serializable[] tuple : tuples) { batch.add(tuple); } } } catch (final Exception e) { if (context.containsKey(Constants.PARAM_DISABLE_AGGREGATIONS_DURING_REBUILD)) { browserFacade.relation(ContributorView.CONTRIBUTOR_VIEW_NAME).setAggregatingEnabled(false, false); } if (processListener != null) { processListener.notifyEvent("contributorViewGenerator.process", new String[]{ce.getExtId()}, EventResultCode.ERROR, StackTraceUtil.getStackTrace(e)); } log.error("Exception processing element " + ce.getExtId()); throw e; } } batch.run(); return data; }
@Override protected Chunk doProcessChunk(final Chunk data, final Map<String, Serializable> context, final IProcessListener processListener, final ProcessingStats stats) throws Exception { final Batch batch = browserFacade.relation(SubscriberView.VIEW_NAME).batch(); for (final CatalogElement ce : data.getItems()) { try { batch.delete(Condition.eq(SubscriberView.FIELD_ELEMENT_ID, ce.getExtId())); if (!ce.isDeleted() && ce.getElement() != null) { final Serializable[][] tuples=SubscriberView.asTuples(ce); for (final Serializable[] tuple : tuples) { batch.add(tuple); } } } catch (final Exception e) { if (processListener != null) { processListener.notifyEvent("subscriberViewGenerator.process", new String[]{ce.getExtId()}, EventResultCode.ERROR, StackTraceUtil.getStackTrace(e)); } log.error("Exception processing element " + ce.getExtId()); throw e; } } batch.run(); return data; }
browserFacade.relation(CategoryView.CATEGORY_VIEW_NAME).batch(); for (final CatalogElement ce : data.getItems()) { try {
for (final CatalogElement ce : data.getItems()) { if (ce.isDeleted()) {