This is a lisener that automatically approve a static file when created / updated.
import com.vignette.as.client.exception.ApplicationException;
import com.vignette.as.client.exception.AuthorizationException;
import com.vignette.as.client.exception.ValidationException;
import com.vignette.as.config.ConfigUtil;
import com.vignette.as.config.component.AppSvcsComponent;
import com.vignette.as.server.event.AsDeploymentEvent;
import com.vignette.as.server.event.AsEvent;
import com.vignette.as.server.event.AsFileDeploymentEvent;
import com.vignette.as.server.event.IAsEventListener;
import com.vignette.config.client.common.ConfigException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class StaticFileApprover implements IAsEventListener {
private final static String APPROVED = "approved";
private final static String APPSVCS_DATASOURCE = AppSvcsComponent.APPSVCS_RESOURCE_MNEMONIC;
/**
* Constructor StaticFileApprover.
*/
public StaticFileApprover() {
}
/**
* Processes, or consumes, events of interest.
*
* @param event the event.
* @throws ApplicationException thrown if application errors occur when an
* AsEvent is processed.
* @throws AuthorizationException thrown if security errors occur when an
* AsEvent is processed.
* @throws ValidationException thrown if validation errors occur when an
* AsEvent is processed.
*/
public void consume(AsEvent event) throws ApplicationException, AuthorizationException, ValidationException {
try {
if (event.getClass() == com.vignette.as.server.event.AsFileDeploymentEvent.class) {
if (event.getType().equals(AsDeploymentEvent.FILE_CREATE)) {
System.out.println("*******StaticFileApprover - Post Persistence Create Event is triggered.");
processEvent((AsFileDeploymentEvent)event);
} else if (event.getType().equals(AsDeploymentEvent.FILE_UPDATE)) {
processEvent((AsFileDeploymentEvent)event);
}
}
} catch (Exception e) {
System.out.println(e.toString());
}
}
private void processEvent(AsFileDeploymentEvent event) throws ApplicationException, AuthorizationException, ValidationException {
Connection conn = null;
PreparedStatement stmt = null;
try {
StringBuffer sql = new StringBuffer();
sql.append("UPDATE vgnAsMoMetaData SET status= ?");
sql.append(" WHERE contentMgmtId = ?");
conn = ConfigUtil.getJDBCConnection(APPSVCS_DATASOURCE);
stmt = conn.prepareStatement(sql.toString());
stmt.setString(1, APPROVED);
stmt.setString(2, event.getManagedObjectVCMRef().getId());
stmt.executeUpdate();
System.out.println(new java.util.Date() + "*******StaticFileApprover - File Approved. File Path = '" + event.getFilePath() + "'.");
} catch (ConfigException configExc) {
System.out.println(new java.util.Date() + " **********StaticFileApprover: ConfigException: " + configExc);
} catch (SQLException sqlExc) {
System.out.println("*******StaticFileApprover: SQLException: "+sqlExc.toString());
System.out.println(new java.util.Date() + "******** StaticFileApprover: SQLException: " + sqlExc);
} finally {
if (stmt != null) {
try {
stmt.close();
} catch (Throwable t) {
System.out.println("********StaticFileApprover: SQLException: "+t);
System.out.println(new java.util.Date() + " *******StaticFileApprover: Error closing PreparedStatement: " + t);
}
}
if (conn != null) {
try {
conn.close();
} catch (Throwable t) {
System.out.println(new java.util.Date() + " **********StaticFileApprover: Error closing Connection: " + t);
}
}
}
}
/**
* Returns the priority of the event handler.
*
* @return Integer number representing the event handler priority.
* @see com.vignette.as.server.event.IAsEventListener
*/
public int getPriority() {
return IAsEventListener.HIGH_PRIORITY;
}
}