When running your own servlet, you eventually want to access the Domino environment. To do this, some changes has to be made to the HelloVaadin plug-in.
1. Open the „MANFIFEST.MF“ and open the „Dependencies“ tab
2. Add the plug-in „com.ibm.osgi.domino.core“ to the list of required plug-ins
Save the „MANIFEST.MF“
3. Now we can use „com.ibm.domino.osgi.core.context.ContextInfo“ to access the Domino environment in HelloVaadinUI
package ch.hasselba.vaadin;
import lotus.domino.Database;
import lotus.domino.NotesException;
import lotus.domino.Session;
import com.vaadin.server.VaadinRequest;
import com.vaadin.server.VaadinServlet;
import com.vaadin.shared.ui.label.ContentMode;
import com.vaadin.ui.Label;
import com.vaadin.ui.UI;
import com.vaadin.ui.VerticalLayout;
import com.ibm.domino.osgi.core.context.ContextInfo;
@SuppressWarnings("serial")
public class HelloVaadinUI extends UI {
public static class Servlet extends VaadinServlet {
}
@Override
protected void init(VaadinRequest request) {
VerticalLayout layout = new VerticalLayout();
setContent(layout);
layout.setSizeFull();
String dbPath = "";
String userName = "";
String queryString = "";
try {
// get the current database
Database db = ContextInfo.getUserDatabase();
if( db != null )
dbPath = db.getFilePath();
// get the current session
Session session = ContextInfo.getUserSession();
if( session != null )
userName = session.getEffectiveUserName();
// get the query string
queryString = ContextInfo.getServerVariable("QUERY_STRING");
} catch (NotesException e) {
e.printStackTrace();
}
Label label = new Label();
label.setValue("<h1>Hello " + userName + "!</h1>");
label.setContentMode(ContentMode.HTML);
Label labelDB = new Label();
labelDB.setValue("<p>DB Path: " + dbPath + "</p>");
labelDB.setContentMode(ContentMode.HTML);
Label labelQuery = new Label();
labelQuery.setValue("<p>Query: " + queryString + "</p>");
labelQuery.setContentMode(ContentMode.HTML);
layout.addComponents(label, labelDB, labelQuery);
}
}
4. When opening the application inside the names.nsf, the result looks like this: