⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 providerconverter.java

📁 wiki建站资源 java编写的 很好用
💻 JAVA
字号:
/* * (C) Janne Jalkanen 2005 *  */package com.ecyrd.jspwiki.util;import java.io.File;import java.io.IOException;import java.util.*;import org.apache.commons.lang.SystemUtils;import com.ecyrd.jspwiki.*;import com.ecyrd.jspwiki.providers.AbstractFileProvider;import com.ecyrd.jspwiki.providers.VersioningFileProvider;import com.ecyrd.jspwiki.providers.WikiPageProvider;/** *  A command-line application that allows you to convert from *  one provider to another.  Currently this only supports *  conversion from RCSFileProvider to VersioningFileProvider. *  <p> *  This class is mostly a hack, so do not trust it very much. *  It leaves the converted directory in /tmp/converter-tmp/  *  and does not touch the original in any way. *   *  @author jalkanen * *  @since */public class ProviderConverter{    private String m_rcsSourceDir;        protected void setRCSSourceDir( String dir )    {        m_rcsSourceDir = dir;    }    private static final String[] WINDOWS_DEVICE_NAMES =    {        "con", "prn", "nul", "aux", "lpt1", "lpt2", "lpt3", "lpt4", "lpt5", "lpt6", "lpt7", "lpt8", "lpt9",        "com1", "com2", "com3", "com4", "com5", "com6", "com7", "com8", "com9"    };        protected String mangleName( String pagename )    {        pagename = TextUtil.urlEncode( pagename, "UTF-8" );                pagename = TextUtil.replaceString( pagename, "/", "%2F" );        if( SystemUtils.IS_OS_WINDOWS )        {            String pn = pagename.toLowerCase();            for( int i = 0; i < WINDOWS_DEVICE_NAMES.length; i++ )            {                if( WINDOWS_DEVICE_NAMES[i].equals(pn) )                {                    pagename = "$$$" + pagename;                }            }        }                return pagename;    }    protected void convert()        throws WikiException, IOException    {        Properties props = new Properties();                props.setProperty( WikiEngine.PROP_APPNAME, "JSPWikiConvert" );        props.setProperty( AbstractFileProvider.PROP_PAGEDIR, m_rcsSourceDir );        props.setProperty( PageManager.PROP_PAGEPROVIDER, "RCSFileProvider" );        props.setProperty( PageManager.PROP_USECACHE, "false" );        props.setProperty( "log4j.appender.outlog", "org.apache.log4j.ConsoleAppender" );        props.setProperty( "log4j.appender.outlog.layout", "org.apache.log4j.PatternLayout" );        props.setProperty( "jspwiki.useLucene", "false" );        props.setProperty( "log4j.rootCategory", "INFO,outlog" );        WikiEngine engine = new WikiEngine( props );        WikiPageProvider sourceProvider = engine.getPageManager().getProvider();                File tmpDir = new File( SystemUtils.JAVA_IO_TMPDIR, "converter-tmp" );                props.setProperty( AbstractFileProvider.PROP_PAGEDIR, tmpDir.getAbsolutePath() );        WikiPageProvider destProvider = new VersioningFileProvider();                destProvider.initialize( engine, props );                Collection allPages = sourceProvider.getAllPages();                int idx = 1;                for( Iterator i = allPages.iterator(); i.hasNext(); )        {            WikiPage p = (WikiPage)i.next();                        System.out.println("Converting page: "+p.getName()+" ("+idx+"/"+allPages.size()+")");            List pageHistory = engine.getVersionHistory( p.getName() );                                    for( ListIterator v = pageHistory.listIterator(pageHistory.size()); v.hasPrevious(); )            {                WikiPage pv = (WikiPage)v.previous();                                String text = engine.getPureText( pv.getName(), pv.getVersion() );                                destProvider.putPageText( pv, text );            }                        //            //  Do manual setting now            //                        for( Iterator v = pageHistory.iterator(); v.hasNext(); )            {                WikiPage pv = (WikiPage)v.next();                File f = new File( tmpDir, "OLD" );                f = new File( f, mangleName(pv.getName()) );                f = new File( f, pv.getVersion()+".txt" );                                System.out.println("   Setting old version "+pv.getVersion()+" to date "+pv.getLastModified() );                f.setLastModified( pv.getLastModified().getTime() );            }                        idx++;        }                tmpDir.delete();    }        /**     * @param args     */    public static void main( String[] args )        throws Exception    {        ProviderConverter c = new ProviderConverter();                c.setRCSSourceDir( args[0] );                c.convert();    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -