gluu
公開メンバ関数 | 非公開メンバ関数 | 非公開変数類 | 静的非公開変数類 | 全メンバ一覧
org.gluu.oxtrust.ldap.service.SubversionService クラス
org.gluu.oxtrust.ldap.service.SubversionService 連携図
Collaboration graph

公開メンバ関数

boolean commitShibboleth3ConfigurationFiles (GluuOrganization organization, List< SubversionFile > newSubversionFiles, List< SubversionFile > removeSubversionFiles, String svnComment)
 
void initSubversionService ()
 
List< SubversionFilegetDifferentFiles (List< SubversionFile > files) throws IOException
 

非公開メンバ関数

void removeFilesFromLocalRepository (File dir, List< SubversionFile > removeSubversionFiles) throws IOException
 
boolean checkRootSvnPath (SVNClientManager clientManager, SVNURL repositoryURL) throws SVNException
 
void copyFilesToLocalRepository (File dir, List< SubversionFile > subversionFiles) throws IOException
 
String getLocalRepositoryFilePath (String dirFn, SubversionFile subversionFile)
 

非公開変数類

Logger log
 
AppConfiguration appConfiguration
 
EncryptionService encryptionService
 

静的非公開変数類

final static String baseSvnDir = "/var/gluu/svn"
 

詳解

Provides operations with SVN

著者
Yuriy Movchan Date: 11.25.2010

関数詳解

◆ checkRootSvnPath()

boolean org.gluu.oxtrust.ldap.service.SubversionService.checkRootSvnPath ( SVNClientManager  clientManager,
SVNURL  repositoryURL 
) throws SVNException
inlineprivate
131  {
132  SVNRepository repository = SvnHelper.getSVNRepository(clientManager, repositoryURL);
133 
134  // Check if root path exist
135  log.debug("Checking if root path exist");
136  SVNNodeKind nodeKind = SvnHelper.exist(repository, "");
137  if (nodeKind != SVNNodeKind.DIR) {
138  log.error("Failed to commit files to repository. Please check SVN URL gluuAppliance.properties");
139  return false;
140  }
141 
142  return true;
143  }
Logger log
Definition: SubversionService.java:47

◆ commitShibboleth3ConfigurationFiles()

boolean org.gluu.oxtrust.ldap.service.SubversionService.commitShibboleth3ConfigurationFiles ( GluuOrganization  organization,
List< SubversionFile newSubversionFiles,
List< SubversionFile removeSubversionFiles,
String  svnComment 
)
inline
58  {
59  // Retrieve properties and derive applianceSvnHome
60  String svnUrl = appConfiguration.getSvnConfigurationStoreRoot();
61  String inumFN = StringHelper.removePunctuation(appConfiguration.getApplianceInum());
62  String svnPassword = appConfiguration.getSvnConfigurationStorePassword();
63  String applianceSvnHomePath = String.format("%s/%s", baseSvnDir, inumFN);
64 
65  if (StringHelper.isEmpty(svnUrl) || StringHelper.isEmpty(inumFN) || StringHelper.isEmpty(svnPassword)) {
66  // log.error("Failed to commit files to repository. Please check SVN related properties in gluuAppliance.properties file");
67  return false;
68  }
69 
70  SVNClientManager clientManager = null;
71  try {
72  // Decrypt password
73  svnPassword = encryptionService.decrypt(svnPassword);
74 
75  // Create an instance of SVNClientManager
76  log.debug("Creating an instance of SVNClientManager");
77  SVNURL repositoryURL = SVNURL.parseURIEncoded(svnUrl);
78  clientManager = SvnHelper.getSVNClientManager(inumFN, svnPassword);
79 
80  // Check root path exists
81  boolean result = checkRootSvnPath(clientManager, repositoryURL);
82  if (!result) {
83  return result;
84  }
85 
86  File applianceSvnHome = new File(applianceSvnHomePath);
87 
88  removeFilesFromLocalRepository(applianceSvnHome, removeSubversionFiles);
89  // Copy files to temporary repository folder
90  copyFilesToLocalRepository(applianceSvnHome, newSubversionFiles);
91 
92  // Add files
93  log.debug("Adding files if neccessary");
94  SvnHelper.addNewFiles(clientManager, applianceSvnHome);
95 
96  // Commit updates to repository
97  log.debug("Commiting updates to repository");
98  String message = String.format("Automatic update of Shibboleth configuration files for organization %s",
99  organization.getDisplayName());
100  message += "\n Changes List:\n" + svnComment;
101  SvnHelper.commit(clientManager, applianceSvnHome, false, message);
102 
103  return true;
104  } catch (Exception ex) {
105  // log.error("Failed to commit files to repository", ex);
106  } finally {
107  if (clientManager != null) {
108  clientManager.dispose();
109  }
110  }
111 
112  return false;
113  }
boolean checkRootSvnPath(SVNClientManager clientManager, SVNURL repositoryURL)
Definition: SubversionService.java:131
String decrypt(String encryptedString)
Definition: EncryptionService.java:34
final static String baseSvnDir
Definition: SubversionService.java:55
EncryptionService encryptionService
Definition: SubversionService.java:53
void removeFilesFromLocalRepository(File dir, List< SubversionFile > removeSubversionFiles)
Definition: SubversionService.java:115
void copyFilesToLocalRepository(File dir, List< SubversionFile > subversionFiles)
Definition: SubversionService.java:145
Logger log
Definition: SubversionService.java:47
AppConfiguration appConfiguration
Definition: SubversionService.java:50

◆ copyFilesToLocalRepository()

void org.gluu.oxtrust.ldap.service.SubversionService.copyFilesToLocalRepository ( File  dir,
List< SubversionFile subversionFiles 
) throws IOException
inlineprivate
145  {
146  log.debug("Copying files to temporary repository folder");
147  String dirFn = dir.getAbsolutePath();
148  for (SubversionFile subversionFile : subversionFiles) {
149  String fn = getLocalRepositoryFilePath(dirFn, subversionFile);
150  File f = new File(fn);
151  try {
152  FileUtils.copyFile(new File(subversionFile.getLocalFile()), f);
153  } catch (IOException ex) {
154  log.error("Failed to copy file {} into local repository folder", subversionFile.getLocalFile());
155  throw ex;
156  }
157  }
158  }
Logger log
Definition: SubversionService.java:47
String getLocalRepositoryFilePath(String dirFn, SubversionFile subversionFile)
Definition: SubversionService.java:160

◆ getDifferentFiles()

List<SubversionFile> org.gluu.oxtrust.ldap.service.SubversionService.getDifferentFiles ( List< SubversionFile files) throws IOException
inline
198  {
199  String inumFN = StringHelper.removePunctuation(appConfiguration.getApplianceInum());
200  String applianceSvnHomePath = String.format("%s/%s", baseSvnDir, inumFN);
201  File dir = new File(applianceSvnHomePath);
202 
203  log.debug("Copying files to temporary repository folder");
204  String dirFn = dir.getAbsolutePath();
205  List<SubversionFile> differentFiles = new ArrayList<SubversionFile>();
206  for (SubversionFile subversionFile : files) {
207  String fn = getLocalRepositoryFilePath(dirFn, subversionFile);
208  File f = new File(fn);
209  File persistedFile = new File(subversionFile.getLocalFile());
210  if ((!f.exists()) || FileUtils.checksumCRC32(persistedFile) != FileUtils.checksumCRC32(f)) {
211  differentFiles.add(subversionFile);
212  }
213  }
214 
215  return differentFiles;
216  }
final static String baseSvnDir
Definition: SubversionService.java:55
Logger log
Definition: SubversionService.java:47
String getLocalRepositoryFilePath(String dirFn, SubversionFile subversionFile)
Definition: SubversionService.java:160
AppConfiguration appConfiguration
Definition: SubversionService.java:50

◆ getLocalRepositoryFilePath()

String org.gluu.oxtrust.ldap.service.SubversionService.getLocalRepositoryFilePath ( String  dirFn,
SubversionFile  subversionFile 
)
inlineprivate
160  {
161  return FilenameUtils.concat(dirFn, subversionFile.getLocalFile().replaceFirst("^/", ""));
162  }

◆ initSubversionService()

void org.gluu.oxtrust.ldap.service.SubversionService.initSubversionService ( )
inline
168  {
169  String svnConfigurationStoreRoot = null;
170  if (appConfiguration.isPersistSVN()) {
171  svnConfigurationStoreRoot = appConfiguration.getSvnConfigurationStoreRoot();
172  }
173 
174  SVNAdminAreaFactory.setSelector(new ISVNAdminAreaFactorySelector() {
175 
176  @SuppressWarnings({ "unchecked", "rawtypes" })
177  public Collection getEnabledFactories(File path, Collection factories, boolean writeAccess) throws SVNException {
178  Collection enabledFactories = new TreeSet();
179  for (Iterator factoriesIter = factories.iterator(); factoriesIter.hasNext();) {
180  SVNAdminAreaFactory factory = (SVNAdminAreaFactory) factoriesIter.next();
181  int version = factory.getSupportedVersion();
182  if (version == SVNAdminAreaFactory.WC_FORMAT_16) {
183  enabledFactories.add(factory);
184  }
185  }
186  return enabledFactories;
187  }
188  });
189 
190  if (StringHelper.isEmpty(svnConfigurationStoreRoot)) {
191  log.warn("The service which commit configuration files into SVN was disabled");
192  return;
193  }
194 
195  SvnHelper.setupLibrary(svnConfigurationStoreRoot);
196  }
Logger log
Definition: SubversionService.java:47
AppConfiguration appConfiguration
Definition: SubversionService.java:50

◆ removeFilesFromLocalRepository()

void org.gluu.oxtrust.ldap.service.SubversionService.removeFilesFromLocalRepository ( File  dir,
List< SubversionFile removeSubversionFiles 
) throws IOException
inlineprivate
115  {
116  log.debug("Removing files from temporary repository folder");
117  String dirFn = dir.getAbsolutePath();
118  for (SubversionFile subversionFile : removeSubversionFiles) {
119  String fn = getLocalRepositoryFilePath(dirFn, subversionFile);
120  File f = new File(fn);
121  try {
122  FileUtils.forceDelete(f);
123  } catch (IOException ex) {
124  log.error("Failed to delete file {} from local repository folder", subversionFile.getLocalFile());
125  throw ex;
126  }
127  }
128 
129  }
Logger log
Definition: SubversionService.java:47
String getLocalRepositoryFilePath(String dirFn, SubversionFile subversionFile)
Definition: SubversionService.java:160

メンバ詳解

◆ appConfiguration

AppConfiguration org.gluu.oxtrust.ldap.service.SubversionService.appConfiguration
private

◆ baseSvnDir

final static String org.gluu.oxtrust.ldap.service.SubversionService.baseSvnDir = "/var/gluu/svn"
staticprivate

◆ encryptionService

EncryptionService org.gluu.oxtrust.ldap.service.SubversionService.encryptionService
private

◆ log

Logger org.gluu.oxtrust.ldap.service.SubversionService.log
private

このクラス詳解は次のファイルから抽出されました: