inicjalizowanie synchronizacji

This commit is contained in:
lukasgol committed 2015-06-14 18:12:50 +02:00
1 parent 1413d28e74
commit d94db5c55f
3 files changed
+113 -8

No files matched your search

@@ -1,6 +1,8 @@
package com.svn.utils.mirror;
import com.svn.utils.mirror.app.Mirror;
import com.svn.utils.mirror.gui.main.MainWindow;
import org.tmatesoft.svn.core.SVNException;
/**
* SvnMirror
@@ -8,6 +10,17 @@ import com.svn.utils.mirror.gui.main.MainWindow;
*/
public class SvnMirror {
public static void main(String[] args) {
new MainWindow("HelloWorldSwing");
//new MainWindow("HelloWorldSwing");
Mirror mirror = Mirror.getInstance();
try {
//mirror.createBaseRepo("base");
//mirror.createMirrorRepo("mirror");
mirror.loadBaseRepositoryURL("repos/base");
mirror.loadMirrorRepositoryURL("repos/mirror");
mirror.synchronize();
} catch (SVNException e) {
e.printStackTrace();
}
}
}
@@ -1,20 +1,112 @@
package com.svn.utils.mirror.app;
import org.tmatesoft.svn.core.SVNException;
import org.tmatesoft.svn.core.SVNPropertyValue;
import org.tmatesoft.svn.core.SVNURL;
import org.tmatesoft.svn.core.auth.ISVNAuthenticationManager;
import org.tmatesoft.svn.core.internal.io.dav.DAVRepositoryFactory;
import org.tmatesoft.svn.core.internal.io.fs.FSRepositoryFactory;
import org.tmatesoft.svn.core.internal.io.svn.SVNRepositoryFactoryImpl;
import org.tmatesoft.svn.core.io.SVNRepository;
import org.tmatesoft.svn.core.io.SVNRepositoryFactory;
import org.tmatesoft.svn.core.wc.SVNClientManager;
import org.tmatesoft.svn.core.wc.SVNWCUtil;
import java.io.File;
import java.util.Iterator;
import java.util.Map;
/**
* SvnMirror
* Created by Marcin on 2015-06-12.
*/
public class Mirror {
public static void createRepo(String name, CreateRepoInt createRepoInt) {
try {
createRepoInt.onRepoCreated(SVNRepositoryFactory.createLocalRepository(new File("repos/" + name), true, true));
} catch (SVNException e) {
createRepoInt.onRepoCreationException(e);
public final class Mirror {
private SVNRepository baseRepository;
private SVNURL baseRepositoryURL;
private SVNRepository mirrorRepository;
private SVNURL mirrorRepositoryURL;
private SVNClientManager svnClientManager;
private static Mirror mirror;
public static Mirror getInstance() {
if (mirror == null) {
mirror = new Mirror();
mirror.init();
}
return mirror;
}
private Mirror() {
}
public void init() {
svnClientManager = SVNClientManager.newInstance();
}
public SVNURL createRepo(String name) throws SVNException {
SVNURL url = SVNRepositoryFactory.createLocalRepository(new File("repos/" + name), true, true);
return url;
}
public void createBaseRepo(String name) throws SVNException {
baseRepositoryURL = createRepo(name);
}
public void createMirrorRepo(String name) throws SVNException {
mirrorRepositoryURL = createRepo(name);
}
public void loadBaseRepostory(SVNURL url) throws SVNException {
baseRepository = SVNRepositoryFactory.create(url);
//authenticate(mirrorRepository, name, password);
}
public void loadBaseRepositoryURL(String url) throws SVNException {
baseRepositoryURL = SVNURL.fromFile(new File(url));
}
public void loadMirrorRepositoryURL(String url) throws SVNException {
mirrorRepositoryURL = SVNURL.fromFile(new File(url));
}
public void loadMirrorRepostory(SVNURL url, String name, String password) throws SVNException {
mirrorRepository = SVNRepositoryFactory.create(url);
//authenticate(mirrorRepository, name, password);
}
public void authenticate(SVNRepository repository, String name, String password) {
ISVNAuthenticationManager authManager =
SVNWCUtil.createDefaultAuthenticationManager(name, password);
repository.setAuthenticationManager(authManager);
}
private void setupSvnRepositoryFactory() {
SVNRepositoryFactoryImpl.setup();
}
private void setupHttpRepositoryFactory() {
DAVRepositoryFactory.setup();
}
private void setupFileRepositoryFactory() {
FSRepositoryFactory.setup();
}
private void initializeRepository(SVNURL fromRepos, SVNURL toRepos) throws SVNException {
svnClientManager.getAdminClient().doInitialize(baseRepositoryURL, mirrorRepositoryURL);
}
public void initializeRepository() throws SVNException {
initializeRepository(baseRepositoryURL, mirrorRepositoryURL);
}
public void synchronize(SVNURL fromRepos, SVNURL toRepos) throws SVNException {
svnClientManager.getAdminClient().doSynchronize(toRepos);
}
public void synchronize() throws SVNException {
synchronize(baseRepositoryURL, mirrorRepositoryURL);
}
}
@@ -33,7 +33,7 @@ public class MainWindow extends JFrame implements CreateRepoInt {
createRepoButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
Mirror.createRepo(nameTextField.getText(), MainWindow.this);
//Mirror.createRepo(nameTextField.getText(), MainWindow.this);
}
});
}