Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ import org.apache.ofbiz.entity.condition.EntityCondition
import org.apache.ofbiz.entity.condition.EntityJoinOperator
import org.apache.ofbiz.entity.model.ModelViewEntity
import org.apache.ofbiz.entity.transaction.TransactionUtil
import org.apache.ofbiz.entity.util.EntityFindOptions
import org.apache.ofbiz.entity.util.EntityQuery

outpath = parameters.outpath
filename = parameters.filename
Expand Down Expand Up @@ -188,7 +188,6 @@ if (passedEntityNames) {
session.setAttribute('xmlrawdump_entitylist', passedEntityNames)
session.setAttribute('entityDateCond', entityDateCond)
} else {
efo = new EntityFindOptions(true, EntityFindOptions.TYPE_SCROLL_INSENSITIVE, EntityFindOptions.CONCUR_READ_ONLY, false)
numberOfEntities = passedEntityNames?.size() ?: 0
context.numberOfEntities = numberOfEntities
numberWritten = 0
Expand All @@ -213,22 +212,22 @@ if (passedEntityNames) {
beganTransaction = TransactionUtil.begin(3600)
try {
me = reader.getModelEntity(curEntityName)
if (me.getNoAutoStamp() || me instanceof ModelViewEntity) {
values = delegator.find(curEntityName, null, null, null, null, efo)
} else {
values = delegator.find(curEntityName, entityDateCond, null, null, null, efo)
entityQuery = EntityQuery.use(delegator).from(curEntityName).cursorScrollInsensitive()
if (!me.getNoAutoStamp() && !(me instanceof ModelViewEntity) && entityDateCond) {
entityQuery.where(entityDateCond)
}

curNumberWritten = 0
while ((value = values.next()) != null) {
value.writeXmlText(writer, '')
numberWritten++
curNumberWritten++
if (curNumberWritten % 500 == 0 || curNumberWritten == 1) {
Debug.log("Records written [$curEntityName]: $curNumberWritten Total: $numberWritten")
entityQuery.queryIterator().withCloseable { values ->
while ((value = values.next()) != null) {
value.writeXmlText(writer, '')
numberWritten++
curNumberWritten++
if (curNumberWritten % 500 == 0 || curNumberWritten == 1) {
Debug.log("Records written [$curEntityName]: $curNumberWritten Total: $numberWritten")
}
}
}
values.close()
Debug.log("Wrote [$curNumberWritten] from entity : $curEntityName")
TransactionUtil.commit(beganTransaction)
} catch (Exception e) {
Expand Down Expand Up @@ -258,7 +257,6 @@ if (passedEntityNames) {
fileName = preConfiguredSetName ? UtilFormatOut.formatPaddedNumber((long) fileNumber, 3) + '_' : ''
fileName = fileName + curEntityName

values = null
beganTransaction = false
try {
beganTransaction = TransactionUtil.begin(3600)
Expand All @@ -268,47 +266,48 @@ if (passedEntityNames) {
results.add("[$fileNumber] [vvv] $curEntityName skipping view entity")
return
}
if (me.getNoAutoStamp() || me instanceof ModelViewEntity) {
values = delegator.find(curEntityName, null, null, null, null, efo)
} else {
values = delegator.find(curEntityName, entityDateCond, null, null, null, efo)
entityQuery = EntityQuery.use(delegator).from(curEntityName).cursorScrollInsensitive()
if (!me.getNoAutoStamp() && !(me instanceof ModelViewEntity) && entityDateCond) {
entityQuery.where(entityDateCond)
}
isFirst = true
writer = null
fileSplitNumber = 1
while ((value = values.next()) != null) {
//Don't bother writing the file if there's nothing
//to put into it
if (isFirst) {
writer = new PrintWriter(
new BufferedWriter(
new OutputStreamWriter(new FileOutputStream(new File(outdir, fileName + '.xml')), 'UTF-8')))
writer.println('<?xml version="1.0" encoding="UTF-8"?>')
writer.println('<entity-engine-xml>')
isFirst = false
}
value.writeXmlText(writer, '')
numberWritten++
entityQuery.queryIterator().withCloseable { values ->
while ((value = values.next()) != null) {
//Don't bother writing the file if there's nothing
//to put into it
if (isFirst) {
writer = new PrintWriter(
new BufferedWriter(
new OutputStreamWriter(new FileOutputStream(new File(outdir, fileName + '.xml')), 'UTF-8')))
writer.println('<?xml version="1.0" encoding="UTF-8"?>')
writer.println('<entity-engine-xml>')
isFirst = false
}
value.writeXmlText(writer, '')
numberWritten++

// split into small files
if (maxRecordsPerFile > 0 && (numberWritten % maxRecordsPerFile == 0)) {
fileSplitNumber++
// close the file
writer.println('</entity-engine-xml>')
writer.close()
// split into small files
if (maxRecordsPerFile > 0 && (numberWritten % maxRecordsPerFile == 0)) {
fileSplitNumber++
// close the file
writer.println('</entity-engine-xml>')
writer.close()

// create a new file
splitNumStr = UtilFormatOut.formatPaddedNumber((long) fileSplitNumber, 3)
writer = new PrintWriter(
new BufferedWriter(
new OutputStreamWriter(
new FileOutputStream(new File(outdir, fileName + '_' + splitNumStr + '.xml')), 'UTF-8')))
writer.println('<?xml version="1.0" encoding="UTF-8"?>')
writer.println('<entity-engine-xml>')
}
// create a new file
splitNumStr = UtilFormatOut.formatPaddedNumber((long) fileSplitNumber, 3)
writer = new PrintWriter(
new BufferedWriter(
new OutputStreamWriter(
new FileOutputStream(new File(outdir, fileName + '_' + splitNumStr + '.xml')), 'UTF-8')))
writer.println('<?xml version="1.0" encoding="UTF-8"?>')
writer.println('<entity-engine-xml>')
}

if (numberWritten % 500 == 0 || numberWritten == 1) {
Debug.log("Records written [$curEntityName]: $numberWritten")
if (numberWritten % 500 == 0 || numberWritten == 1) {
Debug.log("Records written [$curEntityName]: $numberWritten")
}
}
}
if (writer) {
Expand All @@ -322,11 +321,7 @@ if (passedEntityNames) {
Debug.log(thisResult)
results.add(thisResult)
}
values.close()
} catch (Exception ex) {
if (values != null) {
values.close()
}
thisResult = "[$fileNumber] [xxx] Error when writing $curEntityName: $ex"
Debug.log(thisResult)
results.add(thisResult)
Expand Down
Loading