/**
* Deploys an element (zip file). Deployment consists in creating or updating it in database
*/
protected void deployZippedElement(File zipFile, String elementId) throws Exception {
log.debug("Deploying " + classToHandleName + " " + zipFile);
final GraphicElement existingElement = getElement(elementId, null, null, null);
log.debug("Existing element with id " + elementId + " = " + existingElement);
if (existingElement != null) {
log.debug("Updating file " + zipFile + ". (Already deployed in db)");
existingElement.setZipFile(zipFile);
existingElement.setLastModified(new Date());
} else {
log.info("Deploying to database " + classToHandleName + " " + zipFile);
Constructor c = classToHandle.getConstructor(new Class[]{String.class, File.class});
final GraphicElement element = (GraphicElement) c.newInstance(new Object[]{elementId, zipFile});
HibernateTxFragment txFragment = new HibernateTxFragment() {
protected void txFragment(Session session) throws Exception {
element.setLastModified(new Date());
session.save(element);
}
};
txFragment.execute();