/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package org.codehaus.swizzle.confluence; import org.bsc.confluence.ExportFormat; import com.beust.jcommander.JCommander; import com.beust.jcommander.Parameter; import java.net.HttpURLConnection; import org.apache.commons.codec.binary.Base64; import org.apache.commons.io.IOUtils; import org.bsc.confluence.ConfluenceProxy; import org.bsc.confluence.ConfluenceService; import org.bsc.confluence.ConfluenceService.Model; import org.bsc.ssl.SSLCertificateInfo; /** * * @author bsorrentino */ public class SwizzleApp { @Parameter(names="-h", description="confluence url", required = true) private String url; @Parameter( names = "-u", description ="confluence username", required = true) private String username ; @Parameter( names="-p", description = "confluence password", password = true, required = true) private String password ; @Parameter( names="--space", description = "confluence site", required = true) private String space ; @Parameter( names="--page", description = "confluence page") private String page = "Home"; /** * * @param args * @throws Exception */ public static void main(String args[]) throws Exception { final SwizzleApp app = new SwizzleApp(); for( String arg : args ) { System.out.println( arg ); } new JCommander(app,args); ConfluenceProxy proxyInfo = null; final ConfluenceService.Credentials credentials = new ConfluenceService.Credentials(app.username,app.password); final SSLCertificateInfo sslInfo = new SSLCertificateInfo(); final XMLRPCConfluenceServiceImpl confluence = XMLRPCConfluenceServiceImpl.createInstanceDetectingVersion( ConfluenceService.Protocol.XMLRPC.addTo(app.url), credentials, proxyInfo, sslInfo); ConfluenceExportDecorator exporter = new ConfluenceExportDecorator( confluence.connection, app.url, app.username, app.password); exporter.exportPage(app.space, app.page, ExportFormat.DOC, new java.io.File("target", app.page.concat(".pdf"))); } /** * * @throws Exception */ private void usingHttp( ) throws Exception { ConfluenceProxy proxyInfo = null; final ConfluenceService.Credentials credentials = new ConfluenceService.Credentials(username /*args[1]*/,password/*args[2]*/); final SSLCertificateInfo sslInfo = new SSLCertificateInfo(); final XMLRPCConfluenceServiceImpl confluence = XMLRPCConfluenceServiceImpl.createInstanceDetectingVersion( ConfluenceService.Protocol.XMLRPC.addTo(url), //args[0], credentials, proxyInfo, sslInfo); Model.Page page = confluence.getPage("CIRC", "Best Movies"); java.io.InputStream is = null; java.io.FileOutputStream fos = null; try { final String req = String.format("%s/%s?pageId=%s", url, ExportFormat.PDF.url, page.getId()); System.out.println(req); java.net.URL _url = new java.net.URL(req); HttpURLConnection urlConnection = (HttpURLConnection) _url.openConnection(); //HttpURLConnection.setFollowRedirects(true); //urlConnection.setInstanceFollowRedirects(true); String userpass = username + ":" + password; String basicAuth = "Basic " + new String(new Base64().encode(userpass.getBytes())); urlConnection.addRequestProperty("Authorization", basicAuth); urlConnection.addRequestProperty("X-Atlassian-Token", "no-check"); urlConnection.addRequestProperty("Accept-Encoding", "gzip,deflate,sdch"); urlConnection.setUseCaches(false); is = urlConnection.getInputStream(); fos = new java.io.FileOutputStream("target/out.pdf"); IOUtils.copy(is, fos); } finally { IOUtils.closeQuietly(is); IOUtils.closeQuietly(fos); } } }