[Yanel-commits] rev 58897 - public/yanel/trunk/src/contributions/resources/contact-form/src/java/org/wyona/yanel/impl/resources/contactform
michi at wyona.com
michi at wyona.com
Fri Jun 24 14:38:08 CEST 2011
Author: michi
Date: 2011-06-24 14:38:07 +0200 (Fri, 24 Jun 2011)
New Revision: 58897
Modified:
public/yanel/trunk/src/contributions/resources/contact-form/src/java/org/wyona/yanel/impl/resources/contactform/ContactResource.java
Log:
trackable interface implemented and got rid of double logging
Modified: public/yanel/trunk/src/contributions/resources/contact-form/src/java/org/wyona/yanel/impl/resources/contactform/ContactResource.java
===================================================================
--- public/yanel/trunk/src/contributions/resources/contact-form/src/java/org/wyona/yanel/impl/resources/contactform/ContactResource.java 2011-06-24 12:32:00 UTC (rev 58896)
+++ public/yanel/trunk/src/contributions/resources/contact-form/src/java/org/wyona/yanel/impl/resources/contactform/ContactResource.java 2011-06-24 12:38:07 UTC (rev 58897)
@@ -22,6 +22,7 @@
import java.io.ByteArrayOutputStream;
import java.util.regex.Pattern;
import java.util.regex.Matcher;
+
import javax.servlet.http.HttpServletRequest;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
@@ -38,16 +39,17 @@
import org.wyona.yanel.core.Path;
import org.wyona.yanel.core.Resource;
+import org.wyona.yanel.core.api.attributes.TrackableV1;
import org.wyona.yanel.core.api.attributes.ViewableV1;
import org.wyona.yanel.core.attributes.viewable.View;
import org.wyona.yanel.core.attributes.viewable.ViewDescriptor;
+import org.wyona.yanel.core.attributes.tracking.TrackingInformationV1;
import org.wyona.yanel.core.serialization.SerializerFactory;
import org.wyona.yanel.core.source.ResourceResolver;
import org.wyona.yanel.core.source.SourceResolver;
import org.wyona.yanel.core.transformation.I18nTransformer2;
import org.wyona.yanel.core.transformation.XIncludeTransformer;
import org.wyona.yanel.core.util.PathUtil;
-import org.wyona.yanel.servlet.AccessLog;
import org.wyona.yarep.core.NoSuchNodeException;
import org.wyona.yarep.core.RepositoryException;
@@ -60,10 +62,12 @@
//XXX: This resource-type should rather be implemented with BasicXMLResource really...
-public class ContactResource extends Resource implements ViewableV1 {
+/**
+ *
+ */
+public class ContactResource extends Resource implements ViewableV1, TrackableV1 {
private static Logger log = Logger.getLogger(ContactResource.class);
- private static Logger logAccess = Logger.getLogger(AccessLog.CATEGORY);
private static final String SMTP_HOST = "smtpHost";
private static final String SMTP_PORT = "smtpPort";
@@ -80,6 +84,11 @@
private String defaultEmailRegEx = "(\\w+)@(\\w+\\.)(\\w+)(\\.\\w+)*";
+ private TrackingInformationV1 trackInfo;
+
+ /**
+ * @see
+ */
public ViewDescriptor[] getViewDescriptors() {
return null;
}
@@ -92,6 +101,13 @@
* @see org.wyona.yanel.core.api.attributes.ViewableV1#getView(HttpServletRequest, String)
*/
public View getView(HttpServletRequest request, String viewId) throws Exception {
+ if (trackInfo != null) {
+ trackInfo.addTag("contact");
+ trackInfo.setPageType("contact");
+ } else {
+ log.warn("Tracking information bean is null! Check life cycle of resource!");
+ }
+
path = new Path(request.getServletPath());
File xmlFile = org.wyona.commons.io.FileUtil.file(rtd.getConfigFile().getParentFile().getAbsolutePath(), "xml" + File.separator + "contact-form.xml");
@@ -112,16 +128,28 @@
TransformerHandler xsltHandler1 = tf.newTransformerHandler(getBodyXSLTStreamSource());
Transformer transformer = xsltHandler1.getTransformer();
- boolean submit = request.getParameter("email") != null;
+ String email = request.getParameter("email");
+ boolean submit = email != null;
if(submit) {
if (request.getParameter("spamblock_hidden") == null || request.getParameter("spamblock_input") == null) {
throw new Exception("there is no spamblock implemented in the form.");
}
if (request.getParameter("spamblock_hidden").equals("TRyAg41n") && request.getParameter("spamblock_input").equals("8989890")) {
+ String message = request.getParameter("message");
// TODO: Maybe add contact subject, etc. to tags?!
String[] tags = new String[1];
- tags[0] = "Contact";
- logAccess.info(AccessLog.getLogMessage(request, getRealm().getID(), tags) + AccessLog.encodeLogField("e-mail", request.getParameter("email")) + AccessLog.encodeLogField("pt", "contact") + AccessLog.encodeLogField("ra", "submit"));
+ tags[0] = "contact";
+ if (trackInfo != null) {
+ log.warn("DEBUG: Message: " + message);
+ if (message != null) {
+ trackInfo.addTag(message);
+ }
+ trackInfo.addCustomField("e-mail", email);
+ trackInfo.setRequestAction("submit");
+ } else {
+ log.warn("Tracking information bean is null! Check life cycle of resource!");
+ }
+
javax.servlet.http.Cookie cookie = org.wyona.yanel.servlet.AccessLog.getYanelAnalyticsCookie(request);
String cookieValue = null;
if (cookie != null) {
@@ -135,17 +163,21 @@
if (request.getParameter("company") != null) transformer.setParameter("company", request.getParameter("company"));
if (request.getParameter("firstName") != null) transformer.setParameter("firstName", request.getParameter("firstName"));
if (request.getParameter("lastName") != null) transformer.setParameter("lastName", request.getParameter("lastName"));
- if (request.getParameter("email") != null) transformer.setParameter("email", request.getParameter("email"));
+ if (request.getParameter("email") != null) transformer.setParameter("email", email);
if (request.getParameter("address") != null) transformer.setParameter("address", request.getParameter("address"));
if (request.getParameter("zipCity") != null) transformer.setParameter("zipCity", request.getParameter("zipCity"));
- if (request.getParameter("message") != null) transformer.setParameter("message", request.getParameter("message"));
+ if (request.getParameter("message") != null) transformer.setParameter("message", message);
}
} else {
log.debug("Form not submitted yet!");
if (request.getParameter("message") != null) transformer.setParameter("message", request.getParameter("message"));
String[] tags = new String[1];
- tags[0] = "Contact";
- logAccess.info(AccessLog.getLogMessage(request, getRealm().getID(), tags) + AccessLog.encodeLogField("pt", "contact") + AccessLog.encodeLogField("ra", "view"));
+ tags[0] = "contact";
+ if (trackInfo != null) {
+ trackInfo.setRequestAction("view");
+ } else {
+ log.warn("Tracking information bean is null! Check life cycle of resource!");
+ }
}
@@ -337,4 +369,11 @@
if (getResourceConfigProperty("email-validation-regex") != null) return getResourceConfigProperty("email-validation-regex");
return defaultEmailRegEx;
}
+
+ /**
+ * @see org.wyona.yanel.core.api.attributes.TrackableV1#doTrack(TrackingInformationV1)
+ */
+ public void doTrack(org.wyona.yanel.core.attributes.tracking.TrackingInformationV1 trackInfo) {
+ this.trackInfo = trackInfo;
+ }
}
More information about the Yanel-commits
mailing list