package test.quickstart.pages;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Date;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NameClassPair;
import javax.naming.NamingEnumeration;
import javax.naming.NamingException;
import javax.sql.DataSource;
import org.apache.tapestry5.SymbolConstants;
import org.apache.tapestry5.alerts.AlertManager;
import org.apache.tapestry5.annotations.InjectComponent;
import org.apache.tapestry5.annotations.Persist;
import org.apache.tapestry5.annotations.Property;
import org.apache.tapestry5.corelib.components.Zone;
import org.apache.tapestry5.ioc.annotations.Inject;
import org.apache.tapestry5.ioc.annotations.Symbol;
/**
* Start page of application quickstart.
*/
public class Index {
@Property
@Inject
@Symbol(SymbolConstants.TAPESTRY_VERSION)
private String tapestryVersion;
@InjectComponent
private Zone zone;
@Persist
@Property
private int clickCount;
@Inject
private AlertManager alertManager;
public Date getCurrentTime() {
return new Date();
}
public String getLala() throws NamingException, SQLException {
StringBuilder result = new StringBuilder();
InitialContext ic = new InitialContext();
NamingEnumeration<NameClassPair> list = ic.list("java:comp");
while (list.hasMore()) {
result.append(list.next().getName()).append(", ");
}
Context iic = (Context)ic.lookup("java:comp/env");
DataSource myDS = (DataSource) iic.lookup("jdbc/DSTest");
Connection connection = myDS.getConnection();
try {
Statement statement = connection.createStatement();
try {
ResultSet resultSet = statement
.executeQuery("SELECT * FROM dual");
try {
while (resultSet.next()) {
if (result.length() > 0) {
result.append(", ");
}
result.append(resultSet.getString(1));
}
} finally {
resultSet.close();
}
} finally {
statement.close();
}
} finally {
connection.close();
}
return result.toString();
}
void onActionFromIncrement() {
alertManager.info("Increment clicked");
clickCount++;
}
Object onActionFromIncrementAjax() {
clickCount++;
alertManager.info("Increment (via Ajax) clicked");
return zone;
}
}