Skip to content
This repository has been archived by the owner on Sep 28, 2019. It is now read-only.

Created a jsp tag for helping the usage of jgravatar #3

Open
wants to merge 8 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,13 @@ jgravatar is a tiny Java library for accessing avatar images from gravatar.com
String url = gravatar.getUrl("[email protected]");
byte[] jpg = gravatar.download("[email protected]");

<%@ taglib uri="http://kindelbit.com/jgravatar" prefix="g" %>
<g:gravatar email="[email protected]" size="50" />
<g:gravatar email="[email protected]" size="200" defaultImage="mm" rating="g" />
<g:gravatar email="[email protected]" size="50" />
<g:gravatar email="[email protected]" defaultImage="mm" size="50" />


## License

Copyright (c) 2010, Ralf Ebert
Expand Down
5 changes: 5 additions & 0 deletions jgravatar/.classpath
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,10 @@
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="lib" path="lib/commons-codec-1.5.jar"/>
<classpathentry kind="lib" path="lib/commons-fileupload-1.2.2.jar"/>
<classpathentry kind="lib" path="lib/commons-io-2.0.1.jar"/>
<classpathentry kind="lib" path="lib/commons-lang-2.6.jar"/>
<classpathentry kind="lib" path="lib/javax.servlet.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>
Binary file added jgravatar/lib/commons-codec-1.5.jar
Binary file not shown.
Binary file added jgravatar/lib/commons-fileupload-1.2.2.jar
Binary file not shown.
Binary file added jgravatar/lib/commons-io-2.0.1.jar
Binary file not shown.
Binary file added jgravatar/lib/commons-lang-2.6.jar
Binary file not shown.
Binary file added jgravatar/lib/javax.servlet.jar
Binary file not shown.
41 changes: 41 additions & 0 deletions jgravatar/src/META-INF/jgravatar.tld
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
<?xml version="1.0" encoding="iso-8859-1" ?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN"
" http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
<taglib>
<tlibversion>1.0</tlibversion>
<jspversion>1.2</jspversion>
<shortname>Gravatar</shortname>
<uri>http://kindelbit.com/jgravatar</uri>

<tag>
<name>gravatar</name>
<tagclass>jgravatar.jsp.GravatarTag</tagclass>
<bodycontent>empty</bodycontent>
<info>Get an avatar from gravatar.com for the given email</info>
<attribute>
<name>email</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>alt</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>size</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>defaultImage</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>rating</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
</taglib>
69 changes: 69 additions & 0 deletions jgravatar/src/jgravatar/jsp/GravatarTag.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
package jgravatar.jsp;

import java.io.IOException;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.TagSupport;

/**
*
* @author Josemar da Costa Magalhaes
* @since 09/06/2011
*/
public class GravatarTag extends TagSupport {

private static final long serialVersionUID = 2766493961169800616L;
private static final String GRAVATAR_URL = "http://www.gravatar.com/avatar/";
private String email;
private String size = "80";
private String rating = "g";
private String defaultImage = "";
private String alt = "";

public void setEmail(Object email) {
this.email = (String) email;
}

public void setSize(Object size) {
this.size = (String) size;
}

public void setRating(Object rating) {
this.rating = (String) rating;
}

public void setDefaultImage(String defaultImage) {
this.defaultImage = defaultImage;
}

public void setAlt(Object alt) {
this.alt = (String) alt;
}

/**
* create the img html tag
*/
@Override
public int doStartTag() throws JspException {
try {
String hash = MD5Util.md5Hex(email.toLowerCase().trim());
String avatar_url = GRAVATAR_URL + "" + hash;
StringBuilder img = new StringBuilder("<img src=\"");
img.append(avatar_url);

img.append("?size=" + size);

img.append("&d=" + defaultImage);

img.append("&r=" + rating + "\"");

img.append(" alt=\"" + alt + "\"");
img.append("/>");
pageContext.getOut().print(img.toString());
} catch (IOException e) {
throw new JspException(e.getMessage());
}

return SKIP_BODY;
}
}
24 changes: 24 additions & 0 deletions jgravatar/src/jgravatar/jsp/MD5Util.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package jgravatar.jsp;
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class MD5Util {
public static String hex(byte[] array) {
StringBuffer sb = new StringBuffer();
for (int i = 0; i < array.length; ++i) {
sb.append(Integer.toHexString((array[i]
& 0xFF) | 0x100).substring(1,3));
}
return sb.toString();
}
public static String md5Hex (String message) {
try {
MessageDigest md =
MessageDigest.getInstance("MD5");
return hex (md.digest(message.getBytes("CP1252")));
} catch (NoSuchAlgorithmException e) {
} catch (UnsupportedEncodingException e) {
}
return null;
}
}