/hostadmiral/trunk/src/ak/hostadmiral/core/listener/file/UserCreatedFileListener.java |
---|
0,0 → 1,22 |
package ak.hostadmiral.core.listener.file; |
import ak.hostadmiral.util.ModelException; |
import ak.hostadmiral.core.model.User; |
import ak.hostadmiral.core.model.UserCreatedListener; |
import org.apache.log4j.Logger; |
public class UserCreatedFileListener |
implements UserCreatedListener |
{ |
private static final Logger logger = Logger.getLogger(UserCreatedFileListener.class); |
public void userCreated(User editor, User user) |
throws ModelException |
{ |
InterfaceFile.send("user\tcreate\t" + InterfaceFile.escape(user.getLogin()) + "\t" |
+ InterfaceFile.escape(/* FIXME user.getPassword() */ "") + "\t" |
+ user.getEnabled() + "\t" |
+ InterfaceFile.escape(user.getComment())); |
} |
} |
/hostadmiral/trunk/src/ak/hostadmiral/core/listener/file/InterfaceFile.java |
---|
0,0 → 1,68 |
package ak.hostadmiral.core.listener.file; |
import java.io.Writer; |
import java.io.BufferedWriter; |
import java.io.FileWriter; |
import ak.hostadmiral.util.ModelException; |
import ak.hostadmiral.core.model.User; |
import ak.hostadmiral.core.model.UserModifiedListener; |
import org.apache.log4j.Logger; |
public class InterfaceFile |
{ |
private static final Logger logger = Logger.getLogger(InterfaceFile.class); |
private static String fileName; |
protected static Object lock = new Object(); |
public static final String PROTOCOL_NAME = "HostAdmiral_FileInterface"; |
public static final String PROTOCOL_VERSION = "0.1"; |
public static String getFileName() |
{ |
return fileName; |
} |
public static void setFileName(String fileName_) |
{ |
fileName = fileName_; |
} |
protected static String escape(String s) |
{ |
// FIXME: any other problem characters? optimize it? |
s = s.replaceAll("\0", "\\\\0"); |
s = s.replaceAll("\\\\", "\\\\\\\\"); |
s = s.replaceAll("\t", "\\\\t"); |
s = s.replaceAll("\n", "\\\\n"); |
return s; |
} |
protected static void send(String message) |
throws ModelException |
{ |
synchronized(lock) { |
try { |
Writer out = new BufferedWriter(new FileWriter(fileName)); |
if(PROTOCOL_NAME != null) { |
out.write(PROTOCOL_NAME); |
out.write(" "); |
} |
if(PROTOCOL_VERSION != null) { |
out.write(PROTOCOL_VERSION); |
out.write("\n"); |
} |
out.write(message); |
out.write("\n\n"); |
out.close(); |
} |
catch(Exception ex) { |
logger.error("Cannot save message to file", ex); |
throw new ModelException("Cannot save message to file:" + ex.getMessage()); |
// FIMXE: or just throw "internal server error" message? |
} |
} |
} |
} |
/hostadmiral/trunk/src/ak/hostadmiral/core/listener/file/UserModifiedFileListener.java |
---|
0,0 → 1,23 |
package ak.hostadmiral.core.listener.file; |
import ak.hostadmiral.util.ModelException; |
import ak.hostadmiral.core.model.User; |
import ak.hostadmiral.core.model.UserModifiedListener; |
import org.apache.log4j.Logger; |
public class UserModifiedFileListener |
implements UserModifiedListener |
{ |
private static final Logger logger = Logger.getLogger(UserModifiedFileListener.class); |
public void userModified(User editor, User user, User oldUser) |
throws ModelException |
{ |
InterfaceFile.send("user\tmodify\t" + InterfaceFile.escape(oldUser.getLogin()) + "\t" |
+ InterfaceFile.escape(user.getLogin()) + "\t" |
+ InterfaceFile.escape(/* FIXME user.getPassword() */ "") + "\t" |
+ user.getEnabled() + "\t" |
+ InterfaceFile.escape(user.getComment())); |
} |
} |
/hostadmiral/trunk/src/ak/hostadmiral/core/listener/file/ConfigServlet.java |
---|
0,0 → 1,26 |
package ak.hostadmiral.core.listener.file; |
import java.io.IOException; |
import javax.servlet.ServletRequest; |
import javax.servlet.ServletResponse; |
import javax.servlet.GenericServlet; |
import javax.servlet.ServletException; |
import org.apache.log4j.Logger; |
public class ConfigServlet |
extends GenericServlet |
{ |
private static final Logger logger = Logger.getLogger(ConfigServlet.class); |
public void init() |
throws ServletException |
{ |
InterfaceFile.setFileName(getInitParameter("fileName")); |
} |
public void service(ServletRequest req, ServletResponse res) |
throws ServletException, IOException |
{ |
} |
} |
/hostadmiral/trunk/src/ak/hostadmiral/core/listener/file/UserDeletedFileListener.java |
---|
0,0 → 1,19 |
package ak.hostadmiral.core.listener.file; |
import ak.hostadmiral.util.ModelException; |
import ak.hostadmiral.core.model.User; |
import ak.hostadmiral.core.model.UserDeletedListener; |
import org.apache.log4j.Logger; |
public class UserDeletedFileListener |
implements UserDeletedListener |
{ |
private static final Logger logger = Logger.getLogger(UserCreatedFileListener.class); |
public void userDeleted(User editor, User user) |
throws ModelException |
{ |
InterfaceFile.send("user\tdelete\t" + InterfaceFile.escape(user.getLogin())); |
} |
} |