📄 dbdataexport.java
字号:
e.printStackTrace();
}
}
buf.append("</MessageList>");
}
buf.append("</Message>");
}
private String getUserXML(User user, boolean IDFlag) throws UnauthorizedException {
StringBuffer buf = new StringBuffer(512);
if (!IDFlag) {
buf.append("<User>");
}
else {
buf.append("<User id=\"").append(user.getID()).append("\">");
}
buf.append("<Username>");
buf.append(StringUtils.escapeForXML(user.getUsername()));
buf.append("</Username><Password>");
buf.append(StringUtils.escapeForXML(user.getPasswordHash()));
boolean emailVisible = user.isEmailVisible();
boolean nameVisible = user.isNameVisible();
String name = user.getName();
buf.append("</Password><Email visible=\"" + emailVisible + "\">");
buf.append(StringUtils.escapeForXML(user.getEmail()));
buf.append("</Email>");
if (name != null) {
buf.append("<Name visible=\"" + nameVisible + "\">");
buf.append(StringUtils.escapeForXML(name));
buf.append("</Name>");
}
// creation date / modified date
buf.append("<CreationDate>").append(user.getCreationDate()).append("</CreationDate>");
buf.append("<ModifiedDate>").append(user.getModifiedDate()).append("</ModifiedDate>");
// Properties
Iterator userProps = user.propertyNames();
if (userProps.hasNext()) {
buf.append("<PropertyList>");
while (userProps.hasNext()) {
String propName = (String)userProps.next();
String propValue = StringUtils.escapeForXML(user.getProperty(propName));
if (propValue != null) {
// XML escape these sequences
propName = StringUtils.escapeForXML(propName);
buf.append("<Property name=\"").append(propName).append("\" ");
buf.append("value=\"").append(propValue).append("\"/>");
}
}
buf.append("</PropertyList>");
}
buf.append("</User>");
return buf.toString();
}
private String getGroupXML(Group group, boolean IDFlag) throws UnauthorizedException {
StringBuffer buf = new StringBuffer(512);
if (!IDFlag) {
buf.append("<Group>");
}
else {
buf.append("<Group id=\"").append(group.getID()).append("\">");
}
buf.append("<Name>");
buf.append(StringUtils.escapeForXML(group.getName()));
buf.append("</Name><Description>");
buf.append(StringUtils.escapeForXML(group.getDescription()));
buf.append("</Description>");
// creation date / modified date
buf.append("<CreationDate>").append(group.getCreationDate()).append("</CreationDate>");
buf.append("<ModifiedDate>").append(group.getModifiedDate()).append("</ModifiedDate>");
// Properties
Iterator groupProps = group.propertyNames();
if (groupProps.hasNext()) {
buf.append("<PropertyList>");
while (groupProps.hasNext()) {
String propName = (String)groupProps.next();
String propValue = StringUtils.escapeForXML(group.getProperty(propName));
if (propValue != null) {
// XML escape these sequences
propName = StringUtils.escapeForXML(propName);
buf.append("<Property name=\"").append(propName).append("\" ");
buf.append("value=\"").append(propValue).append("\"/>");
}
}
buf.append("</PropertyList>");
}
// Admin list
Iterator admins = group.administrators();
if (admins.hasNext()) {
buf.append("<AdministratorList>");
while (admins.hasNext()) {
String username = ((User)admins.next()).getUsername();
buf.append("<Username>").append(username).append("</Username>");
}
buf.append("</AdministratorList>");
}
// Member list
Iterator members = group.members();
if (members.hasNext()) {
buf.append("<MemberList>");
while (members.hasNext()) {
String username = ((User)members.next()).getUsername();
buf.append("<Username>").append(username).append("</Username>");
}
buf.append("</MemberList>");
}
buf.append("</Group>");
return buf.toString();
}
private void exportUsers(Writer out, boolean IDFlag) throws IOException,
UnauthorizedException
{
UserManager userManager = factory.getUserManager();
for (Iterator iter = userManager.users(); iter.hasNext(); ) {
User user = (User)iter.next();
out.write(getUserXML(user, IDFlag));
}
}
private void exportGroups(Writer out, boolean IDFlag) throws IOException,
UnauthorizedException
{
GroupManager groupManager = factory.getGroupManager();
for (Iterator iter = groupManager.groups(); iter.hasNext(); ) {
Group group = (Group)iter.next();
out.write(getGroupXML(group, IDFlag));
}
}
private void exportForums(Writer out, boolean IDFlag) throws IOException,
UnauthorizedException
{
Iterator forums = factory.forums();
while (forums.hasNext()) {
Forum forum = (Forum)forums.next();
String name = forum.getName();
StringBuffer buf = new StringBuffer(4096);
if (!IDFlag) {
buf.append("<Forum>");
}
else {
buf.append("<Forum id=\"").append(forum.getID()).append("\">");
}
buf.append("<Name>");
buf.append(StringUtils.escapeForXML(name));
buf.append("</Name><Description>");
buf.append(StringUtils.escapeForXML(forum.getDescription()));
buf.append("</Description><CreationDate>");
buf.append(dateFormatter.format(forum.getCreationDate()));
buf.append("</CreationDate><ModifiedDate>");
buf.append(dateFormatter.format(forum.getModifiedDate()));
buf.append("</ModifiedDate>");
// export forum permissions
PermissionsManager permManager = forum.getPermissionsManager();
buf.append("<PermissionList>");
// User List
buf.append("<UserPermissionList>");
for( int i=0; i<permNames.length; i++ ) {
Iterator userList = permManager.usersWithPermission(permTypes[i]);
while( userList.hasNext() ) {
User user = (User)userList.next();
if( user != null ) {
buf.append("<UserPermission usertype=\"USER\" username=\"");
buf.append(user.getUsername());
buf.append("\" permission=\"" + permNames[i] + "\"/>");
}
}
if( permManager.anonymousUserHasPermission(permTypes[i]) ) {
buf.append("<UserPermission usertype=\"ANONYMOUS\"");
buf.append(" permission=\"" + permNames[i] + "\"/>");
}
if( permManager.registeredUserHasPermission(permTypes[i]) ) {
buf.append("<UserPermission usertype=\"REGISTERED_USERS\"");
buf.append(" permission=\"" + permNames[i] + "\"/>");
}
}
buf.append("</UserPermissionList>");
// Group List
buf.append("<GroupPermissionList>");
for( int i=0; i<permNames.length; i++ ) {
Iterator groupList = permManager.groupsWithPermission(permTypes[i]);
while( groupList.hasNext() ) {
Group group = (Group)groupList.next();
if( group != null ) {
buf.append("<GroupPermission groupname=\"" + group.getName() + "\"");
buf.append(" permission=\"" + permNames[i] + "\"/>");
}
}
}
buf.append("</GroupPermissionList>");
buf.append("</PermissionList>");
// Properties
Iterator propertyNames = forum.propertyNames();
if( propertyNames.hasNext() ) {
buf.append("<PropertyList>");
while (propertyNames.hasNext()) {
String propName = (String)propertyNames.next();
String propValue = StringUtils.escapeForXML(
forum.getProperty(propName));
if (propValue != null) {
propName = StringUtils.escapeForXML(propName);
buf.append("<Property name=\"").append(propName).append("\" ");
buf.append("value=\"").append(propValue).append("\"/>");
}
}
buf.append("</PropertyList>");
}
// write out what we have so far
out.write(buf.toString());
// export threads
out.write("<ThreadList>");
exportThreads(forum, IDFlag, out);
out.write("</ThreadList>");
out.write("</Forum>");
}
}
private void exportThreads(Forum forum, boolean IDFlag, Writer out) throws IOException {
for (Iterator iter = forum.threads(); iter.hasNext(); ) {
ForumThread thread = (ForumThread)iter.next();
out.write(getThreadXML(thread, IDFlag));
}
}
public static void main( String args[] ) {
if( args.length < 3 ) {
System.err.println( "USAGE: java DbDataExport [xml_uri] "
+ "[jive_username] [jive_password]" );
System.exit(1);
}/*
try {
authToken = AuthorizationFactory.getAuthorization(args[1],args[2]);
}
catch( UnauthorizedException e ) {
System.err.println( "Error authenicating user " + args[1] + ". "
+ "Please make sure you're using the correct username and "
+ "password." );
System.exit(1);
}*/
try {
DbDataExport exporter = new DbDataExport(new DbForumFactory());
System.out.println("\nBeginning export, writing to " + args[0] + "...");
long time = System.currentTimeMillis();
exporter.export(true);
time = System.currentTimeMillis() - time;
System.out.println("\nExport done, time = "
+ ((double)time/1000.0) + " seconds" );
} catch( Exception e ) {
e.printStackTrace();
}
System.exit(1);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -