removed unused servlets

This commit is contained in:
erik 2008-03-17 05:17:05 +00:00
parent 62e9aa2eeb
commit c99838b0ec
3 changed files with 0 additions and 408 deletions

View file

@ -1,225 +0,0 @@
package org.forkalsrud.album.web;
import java.io.*;
import java.util.*;
import java.awt.*;
import java.awt.image.*;
import javax.imageio.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class BitmapServlet
extends HttpServlet
implements ImageObserver
{
File baseDir = new File("photos");
File cacheDir = new File("/var/org.forkalsrud.album");
final static int BUF_SIZE = 1024;
protected volatile boolean complete = false;
protected int size;
@Override
public void init()
throws ServletException
{
System.out.println("in init of Bitmap");
}
File cacheFile(String filename, int size) {
return new File(cacheDir, filename + "-" + size + ".png");
}
@Override
public void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException
{
res.setContentType("image/png");
// Determine which file to show
String filename = req.getServletPath();
filename = filename.substring(
"/".length(),
filename.length() - ".bitmap".length());
System.out.println("file: " + filename);
File file = new File(baseDir, filename);
if (file == null) {
res.setStatus(HttpServletResponse.SC_NOT_FOUND);
return;
}
if (!file.isFile()) {
res.setStatus(HttpServletResponse.SC_NOT_FOUND);
return;
}
if (!file.canRead()) {
res.setStatus(HttpServletResponse.SC_FORBIDDEN);
return;
}
int size = Integer.parseInt(req.getParameter("size"));
File cacheFile = cacheFile(filename, size);
if (!cacheFile.exists()) {
writeJpegImage(file, size, cacheFile);
}
try {
OutputStream out = res.getOutputStream();
FileInputStream infile = new FileInputStream(cacheFile);
byte[] buf = new byte[BUF_SIZE];
int chunksize;
do {
chunksize = infile.read(buf);
if (chunksize > 0)
out.write(buf, 0, chunksize);
} while (!(chunksize < 0));
infile.close();
} catch (FileNotFoundException e1) {
System.err.println("File creation error! " + e1.getMessage());
} catch (IOException e2) {
System.err.println("IO error! " + e2.getMessage());
}
}
static int DONE = (ABORT | ALLBITS | ERROR | FRAMEBITS);
int previousInfoFlags = 0;
// HEIGHT PROPERTIES SOMEBITS WIDTH
public boolean imageUpdate(Image img, int infoflags,
int x, int y, int width, int height)
{
if (infoflags != previousInfoFlags) {
/* StringBuffer b = new StringBuffer("Flags:");
if ((infoflags & ABORT) != 0)
b.append(" ABORT");
if ((infoflags & ALLBITS) != 0)
b.append(" ALLBITS");
if ((infoflags & ERROR) != 0)
b.append(" ERROR");
if ((infoflags & FRAMEBITS) != 0)
b.append(" FRAMEBITS");
if ((infoflags & HEIGHT) != 0)
b.append(" HEIGHT");
if ((infoflags & WIDTH) != 0)
b.append(" WIDTH");
if ((infoflags & PROPERTIES) != 0)
b.append(" PROPERTIES");
if ((infoflags & SOMEBITS) != 0)
b.append(" SOMEBITS");
System.err.println(b.toString());
*/
previousInfoFlags = infoflags;
}
if ((infoflags & DONE) != 0) {
synchronized (this) {
this.complete = true;
// new Throwable().printStackTrace(System.err);
notify();
// System.err.println("Wakeup! " + this.complete + " " + this);
}
return false;
} else {
return true;
}
}
protected Dimension scaleMaxExtent(int extent, Dimension in)
{
Dimension original = new Dimension(in);
if (extent > 0) {
if (original.width > original.height && original.width > extent) {
original.height *= extent;
original.height /= original.width;
original.width = extent;
} else if (original.height > extent) {
original.width *= extent;
original.width /= original.height;
original.height = extent;
}
}
return original;
}
protected void writeJpegImage(File source, int size, File destination)
throws IOException
{
BufferedImage img = ImageIO.read(source);
Dimension dim = scaleMaxExtent(size, new Dimension(
img.getWidth(), img.getHeight()));
Toolkit tk = Toolkit.getDefaultToolkit();
synchronized (this) {
complete = false;
boolean alreadyDone = tk.prepareImage(img, -1, -1, this);
complete = complete || alreadyDone;
// Suspend until the image is rendered completely
for (int i = 0; !this.complete && i < 10; ++i)
try {
// System.err.println("Waiting 1: " + this.complete + " " + this);
wait(2000);
} catch (InterruptedException e) {
// ignore
}
}
BufferedImage buff = new BufferedImage(
dim.width, dim.height, BufferedImage.TYPE_INT_RGB);
Graphics g = buff.createGraphics();
synchronized (this) {
complete = false;
boolean alreadyDone = g.drawImage(img, 0, 0, dim.width, dim.height, this);
complete = complete || alreadyDone;
// Suspend until the image is rendered completely
for (int i = 0; !complete && i < 10; ++i)
try {
// System.err.println("Waiting 2: " + this.complete);
wait(2000);
} catch (InterruptedException e) {
// ignore
}
}
if (size > 120 || size == 0) {
g.setColor(Color.cyan);
int lineHeight = g.getFontMetrics().getHeight();
int year = Calendar.getInstance().get(Calendar.YEAR);
g.drawString("<EFBFBD> " + year + " forkalsrud.org", 5, 5 + lineHeight);
}
try {
destination.getParentFile().mkdirs();
FileOutputStream out = new FileOutputStream(destination);
ImageIO.write(buff, "png", out);
out.close();
/* System.err.println("OK: " + ok
+ " Writers : "
+ Arrays.asList(ImageIO.getWriterFormatNames()));
*/
} catch (FileNotFoundException e1) {
System.err.println("File creation error! " + e1.getMessage());
} catch (IOException e2) {
System.err.println("IO error! " + e2.getMessage());
}
}
}
// eof

View file

@ -1,173 +0,0 @@
package org.forkalsrud.album.web;
import java.io.*;
import java.util.*;
import java.awt.*;
import java.awt.image.*;
import javax.imageio.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class PhotoServlet
extends HttpServlet
implements ImageObserver
{
File baseDir = new File("/home/knut");
File cacheDir = new File("/var/org.forkalsrud.album");
final static int BUF_SIZE = 1024;
protected volatile boolean complete = false;
protected int size;
@Override
public void init()
throws ServletException
{
System.out.println("in init of Bitmap");
}
File cacheFile(String filename, int size) {
return new File(cacheDir, filename + "-" + size + ".jpeg");
}
@Override
public void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException
{
res.setContentType("text/plain");
// Determine which file to show
String filename = req.getServletPath();
filename = filename.substring(
"/".length(),
filename.length() - ".photo".length());
System.out.println("file: " + filename);
File file = new File(baseDir, filename);
if (file == null) {
res.setStatus(HttpServletResponse.SC_NOT_FOUND);
return;
}
if (!file.isFile()) {
res.setStatus(HttpServletResponse.SC_NOT_FOUND);
return;
}
if (!file.canRead()) {
res.setStatus(HttpServletResponse.SC_FORBIDDEN);
return;
}
PrintWriter out = res.getWriter();
String[] formats = ImageIO.getReaderFormatNames();
out.println(Arrays.asList(formats).toString());
Iterator ii = ImageIO.getImageReadersByFormatName("jpeg");
while (ii.hasNext()) {
ImageReader ir = (ImageReader)ii.next();
Class[] inputs = ir.getOriginatingProvider().getInputTypes();
out.println(" inputs: " + Arrays.asList(inputs).toString());
ir.setInput(ImageIO.createImageInputStream(file));
int cnt = ir.getNumImages(true);
int thCnt = ir.getNumThumbnails(0);
out.println("Num images: " + cnt + " thumbnails: " + thCnt);
// BufferedImage th = ir.readThumbnail(0, 0);
// out.println(" Thumbnail size: " + th.getWidth() + "x" + th.getWidth());
ir.dispose();
}
/*
EXIFInfo info = new EXIFInfo(file);
Map props = info.getEXIFMetaData();
Set s = props.entrySet();
Iterator i = s.iterator();
while (i.hasNext()) {
Map.Entry e = (Map.Entry)i.next();
out.println(e.getKey() + ": " + e.getValue());
}
*/
}
static int DONE = (ABORT | ALLBITS | ERROR | FRAMEBITS);
int previousInfoFlags = 0;
// HEIGHT PROPERTIES SOMEBITS WIDTH
public boolean imageUpdate(Image img, int infoflags,
int x, int y, int width, int height)
{
if (infoflags != previousInfoFlags) {
/* StringBuffer b = new StringBuffer("Flags:");
if ((infoflags & ABORT) != 0)
b.append(" ABORT");
if ((infoflags & ALLBITS) != 0)
b.append(" ALLBITS");
if ((infoflags & ERROR) != 0)
b.append(" ERROR");
if ((infoflags & FRAMEBITS) != 0)
b.append(" FRAMEBITS");
if ((infoflags & HEIGHT) != 0)
b.append(" HEIGHT");
if ((infoflags & WIDTH) != 0)
b.append(" WIDTH");
if ((infoflags & PROPERTIES) != 0)
b.append(" PROPERTIES");
if ((infoflags & SOMEBITS) != 0)
b.append(" SOMEBITS");
System.err.println(b.toString());
*/
previousInfoFlags = infoflags;
}
if ((infoflags & DONE) != 0) {
synchronized (this) {
this.complete = true;
// new Throwable().printStackTrace(System.err);
notify();
// System.err.println("Wakeup! " + this.complete + " " + this);
}
return false;
} else {
return true;
}
}
protected Dimension scaleMaxExtent(int extent, Dimension in)
{
Dimension original = new Dimension(in);
if (extent > 0) {
if (original.width > original.height && original.width > extent) {
original.height *= extent;
original.height /= original.width;
original.width = extent;
} else if (original.height > extent) {
original.width *= extent;
original.width /= original.height;
original.height = extent;
}
}
return original;
}
}
// eof

View file

@ -5,16 +5,6 @@
<servlet-class>org.forkalsrud.album.web.AlbumServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>photo</servlet-name>
<servlet-class>org.forkalsrud.album.web.PhotoServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>bitmap</servlet-name>
<servlet-class>org.forkalsrud.album.web.BitmapServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>velocity</servlet-name>
<servlet-class>org.apache.velocity.tools.view.servlet.VelocityViewServlet</servlet-class>