{
logger.warn("Document-Bundle has no bundle-type declared.");
}
else
{
final ContentItem contentItem = RepositoryUtilities.createItem
(repository, RepositoryUtilities.splitPath("mimetype", "/"));
contentItem.setAttribute
(LibRepositoryBoot.ZIP_DOMAIN, LibRepositoryBoot.ZIP_METHOD_ATTRIBUTE, LibRepositoryBoot.ZIP_METHOD_STORED);
final byte[] rawData = bundleType.getBytes("ASCII");
final OutputStream outputStream = contentItem.getOutputStream();
try
{
outputStream.write(rawData);
}
finally
{
outputStream.close();
}
}
final DocumentMetaDataWriter metaDataWriter = new DocumentMetaDataWriter(bundle.getMetaData());
final ContentItem manifestItem = RepositoryUtilities.createItem
(repository, RepositoryUtilities.splitPath("META-INF/manifest.xml", "/"));
final OutputStream manifestStream = manifestItem.getOutputStream();
try
{
metaDataWriter.writeManifest(manifestStream);
}
finally
{
manifestStream.close();
}
final ContentItem metaDataItem = RepositoryUtilities.createItem
(repository, RepositoryUtilities.splitPath("meta.xml", "/"));
final OutputStream metaDataStream = metaDataItem.getOutputStream();
try
{
metaDataWriter.writeMetaData(metaDataStream);
}
finally
{
metaDataStream.close();
}
final DocumentMetaData bundleMetaData = bundle.getMetaData();
final String[] entryNames = bundleMetaData.getManifestEntryNames();
Arrays.sort(entryNames);
for (int i = 0; i < entryNames.length; i++)
{
final String entryName = entryNames[i];
if ("/".equals(entryName))
{
continue;
}
if ("mimetype".equals(entryName))
{
continue;
}
if ("META-DATA/manifest.xml".equals(entryName))
{
continue;
}
if ("meta.xml".equals(entryName))
{
continue;
}
logger.debug("Processing " + entryName);
final String[] entityNameArray = RepositoryUtilities.splitPath(entryName, "/");
if (entryName.length() > 0 && entryName.charAt(entryName.length() - 1) == '/')
{
if (RepositoryUtilities.isExistsEntity(repository, entityNameArray))
{
continue;
}
// Skip, it is a directory-entry.
RepositoryUtilities.createLocation(repository, entityNameArray);
continue;
}
final ContentItem dataItem = RepositoryUtilities.createItem
(repository, entityNameArray);
final OutputStream dataStream = dataItem.getOutputStream();
try
{
final InputStream inStream = bundle.getEntryAsStream(entryName);
try
{