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

公開メンバ関数

void init ()
 
void initTimer ()
 
void processSvnSyncTimerEvent (@Observes @Scheduled SvnSyncEvent svnSyncEvent)
 
void removeTrustRelationship (GluuSAMLTrustRelationship trustRelationship, String user) throws InterruptedException
 
void addTrustRelationship (GluuSAMLTrustRelationship trustRelationship, String user)
 
void updateTrustRelationship (GluuSAMLTrustRelationship trustRelationship, String user)
 

変数

List< Pair< GluuSAMLTrustRelationship, String > > alteredTrustRelations
 

非公開メンバ関数

void processSvnSync ()
 
void commitShibboleth3Configuration (List< GluuSAMLTrustRelationship > trustRelationships)
 

非公開変数類

Logger log
 
Event< TimerEvent > timerEvent
 
Shibboleth3ConfService shibboleth3ConfService
 
SubversionService subversionService
 
OrganizationService organizationService
 
AppConfiguration appConfiguration
 
LinkedBlockingQueue< Pair< GluuSAMLTrustRelationship, String > > removedTrustRelationship
 
String svnComment = ""
 
TrustService trustService
 
AtomicBoolean isActive
 

静的非公開変数類

static final long serialVersionUID = -6875538084008069405L
 
static final int DEFAULT_INTERVAL = 5 * 60
 

詳解

関数詳解

◆ addTrustRelationship()

void org.gluu.oxtrust.ldap.service.SvnSyncTimer.addTrustRelationship ( GluuSAMLTrustRelationship  trustRelationship,
String  user 
)
inline
184  {
185  alteredTrustRelations.add(new Pair<GluuSAMLTrustRelationship, String>(trustRelationship, user));
186  svnComment += "User " + user + " added trust relationship " + trustRelationship.getDisplayName() + "\n";
187  }
String svnComment
Definition: SvnSyncTimer.java:63
List< Pair< GluuSAMLTrustRelationship, String > > alteredTrustRelations
Definition: SvnSyncTimer.java:65

◆ commitShibboleth3Configuration()

void org.gluu.oxtrust.ldap.service.SvnSyncTimer.commitShibboleth3Configuration ( List< GluuSAMLTrustRelationship trustRelationships)
inlineprivate
120  {
121  synchronized (this) {
122  List<SubversionFile> subversionFiles = new ArrayList<SubversionFile>();
123  try {
125  .getConfigurationFilesForSubversion(trustRelationships));
126  } catch (IOException e) {
127  log.error("Failed to prepare files list to be persisted in svn", e);
128  }
129 
130  List<SubversionFile> removeSubversionFiles = new ArrayList<SubversionFile>();
131  while (!removedTrustRelationship.isEmpty()) {
132  Pair<GluuSAMLTrustRelationship, String> removedRelationship = removedTrustRelationship.poll();
133 
134  SubversionFile file = shibboleth3ConfService.getConfigurationFileForSubversion(removedRelationship.getValue0());
135  if (file != null) {
136  removeSubversionFiles.add(file);
137  }
138  }
139  String idpSvnComment = "";
140  // Find all TRs modified not by user.
141  for (SubversionFile file : subversionFiles) {
142  String filename = file.getLocalFile();
143  if (filename.matches(".*/DA[0-9A-F]*-sp-metadata\\.xml")) {
144  boolean found = false;
145  String inum = filename.replaceAll("-sp-metadata\\.xml", "").replaceAll(".*/", "");
146  for (Pair<GluuSAMLTrustRelationship, String> trust : alteredTrustRelations) {
147  if (StringHelper.removePunctuation(trust.getValue0().getInum()).equals(inum)) {
148  found = true;
149  break;
150  }
151  }
152 
153  if (!found) {
154  GluuSAMLTrustRelationship unknownTrust = trustService.getTrustByUnpunctuatedInum(inum);
155  if (unknownTrust != null) {
156  idpSvnComment += "Trust relationship '" + unknownTrust.getDisplayName() + "' was updated automatically\n";
157  } else {
158  idpSvnComment += "Appliance have no information about '" + filename
159  + "'. Please report this issue to appliance admin.\n";
160  }
161  }
162  }
163  }
164  log.debug("Files to be persisted in repository: " + StringHelper.toString(subversionFiles.toArray(new SubversionFile[] {})));
165  log.debug("Files to be removed from repository: "
166  + StringHelper.toString(removeSubversionFiles.toArray(new SubversionFile[] {})));
168  removeSubversionFiles, svnComment + idpSvnComment)) {
169  log.error("Failed to commit Shibboleth3 configuration to SVN repository");
170  } else {
171  svnComment = "";
172  alteredTrustRelations.clear();
173  log.info("Shibboleth3 configuration commited successfully to SVN repository");
174  }
175  }
176  }
Logger log
Definition: SvnSyncTimer.java:44
SubversionService subversionService
Definition: SvnSyncTimer.java:53
List< SubversionFile > getDifferentFiles(List< SubversionFile > files)
Definition: SubversionService.java:198
OrganizationService organizationService
Definition: SvnSyncTimer.java:56
GluuSAMLTrustRelationship getTrustByUnpunctuatedInum(String unpunctuated)
Definition: TrustService.java:417
SubversionFile getConfigurationFileForSubversion(GluuSAMLTrustRelationship trustRelationship)
Definition: Shibboleth3ConfService.java:974
TrustService trustService
Definition: SvnSyncTimer.java:68
String getLocalFile()
Definition: SubversionFile.java:30
String getDisplayName()
Definition: GluuSAMLTrustRelationship.java:228
Shibboleth3ConfService shibboleth3ConfService
Definition: SvnSyncTimer.java:50
GluuOrganization getOrganization()
Definition: OrganizationService.java:84
LinkedBlockingQueue< Pair< GluuSAMLTrustRelationship, String > > removedTrustRelationship
Definition: SvnSyncTimer.java:61
boolean commitShibboleth3ConfigurationFiles(GluuOrganization organization, List< SubversionFile > newSubversionFiles, List< SubversionFile > removeSubversionFiles, String svnComment)
Definition: SubversionService.java:57
String svnComment
Definition: SvnSyncTimer.java:63
List< Pair< GluuSAMLTrustRelationship, String > > alteredTrustRelations
Definition: SvnSyncTimer.java:65

◆ init()

void org.gluu.oxtrust.ldap.service.SvnSyncTimer.init ( )
inline
73  {
74  this.isActive = new AtomicBoolean(true);
75  try {
76  this.removedTrustRelationship = new LinkedBlockingQueue<Pair<GluuSAMLTrustRelationship, String>>();
77  this.alteredTrustRelations = new ArrayList<Pair<GluuSAMLTrustRelationship, String>>();
78  } finally {
79  this.isActive.set(false);
80  }
81  }
AtomicBoolean isActive
Definition: SvnSyncTimer.java:70
LinkedBlockingQueue< Pair< GluuSAMLTrustRelationship, String > > removedTrustRelationship
Definition: SvnSyncTimer.java:61
List< Pair< GluuSAMLTrustRelationship, String > > alteredTrustRelations
Definition: SvnSyncTimer.java:65

◆ initTimer()

void org.gluu.oxtrust.ldap.service.SvnSyncTimer.initTimer ( )
inline
83  {
84  log.debug("Initializing SVN Sync Timer");
85 
86  if (!appConfiguration.isPersistSVN()) {
87  return;
88  }
89 
90  final int delay = 30;
91  final int interval = DEFAULT_INTERVAL;
92 
93  timerEvent.fire(new TimerEvent(new TimerSchedule(delay, interval), new SvnSyncEvent(),
94  Scheduled.Literal.INSTANCE));
95  }
Logger log
Definition: SvnSyncTimer.java:44
Event< TimerEvent > timerEvent
Definition: SvnSyncTimer.java:47
AppConfiguration appConfiguration
Definition: SvnSyncTimer.java:59
static final int DEFAULT_INTERVAL
Definition: SvnSyncTimer.java:41

◆ processSvnSync()

void org.gluu.oxtrust.ldap.service.SvnSyncTimer.processSvnSync ( )
inlineprivate
116  {
118  }
void commitShibboleth3Configuration(List< GluuSAMLTrustRelationship > trustRelationships)
Definition: SvnSyncTimer.java:120
TrustService trustService
Definition: SvnSyncTimer.java:68
List< GluuSAMLTrustRelationship > getAllActiveTrustRelationships()
Definition: TrustService.java:202

◆ processSvnSyncTimerEvent()

void org.gluu.oxtrust.ldap.service.SvnSyncTimer.processSvnSyncTimerEvent ( @Observes @Scheduled SvnSyncEvent  svnSyncEvent)
inline
98  {
99  if (this.isActive.get()) {
100  return;
101  }
102 
103  if (!this.isActive.compareAndSet(false, true)) {
104  return;
105  }
106 
107  try {
108  processSvnSync();
109  } catch (Throwable ex) {
110  log.error("Exception happened while running SVN sync", ex);
111  } finally {
112  this.isActive.set(false);
113  }
114  }
Logger log
Definition: SvnSyncTimer.java:44
void processSvnSync()
Definition: SvnSyncTimer.java:116
AtomicBoolean isActive
Definition: SvnSyncTimer.java:70

◆ removeTrustRelationship()

void org.gluu.oxtrust.ldap.service.SvnSyncTimer.removeTrustRelationship ( GluuSAMLTrustRelationship  trustRelationship,
String  user 
) throws InterruptedException
inline
178  {
179  removedTrustRelationship.put(new Pair<GluuSAMLTrustRelationship, String>(trustRelationship, user));
180  alteredTrustRelations.add(new Pair<GluuSAMLTrustRelationship, String>(trustRelationship, user));
181  svnComment += "User " + user + " removed trust relationship " + trustRelationship.getDisplayName() + "\n";
182  }
LinkedBlockingQueue< Pair< GluuSAMLTrustRelationship, String > > removedTrustRelationship
Definition: SvnSyncTimer.java:61
String svnComment
Definition: SvnSyncTimer.java:63
List< Pair< GluuSAMLTrustRelationship, String > > alteredTrustRelations
Definition: SvnSyncTimer.java:65

◆ updateTrustRelationship()

void org.gluu.oxtrust.ldap.service.SvnSyncTimer.updateTrustRelationship ( GluuSAMLTrustRelationship  trustRelationship,
String  user 
)
inline
189  {
190  alteredTrustRelations.add(new Pair<GluuSAMLTrustRelationship, String>(trustRelationship, user));
191  svnComment += "User " + user + " updated trust relationship " + trustRelationship.getDisplayName() + "\n";
192  }
String svnComment
Definition: SvnSyncTimer.java:63
List< Pair< GluuSAMLTrustRelationship, String > > alteredTrustRelations
Definition: SvnSyncTimer.java:65

メンバ詳解

◆ alteredTrustRelations

List<Pair<GluuSAMLTrustRelationship, String> > org.gluu.oxtrust.ldap.service.SvnSyncTimer.alteredTrustRelations
package

◆ appConfiguration

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

◆ DEFAULT_INTERVAL

final int org.gluu.oxtrust.ldap.service.SvnSyncTimer.DEFAULT_INTERVAL = 5 * 60
staticprivate

◆ isActive

AtomicBoolean org.gluu.oxtrust.ldap.service.SvnSyncTimer.isActive
private

◆ log

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

◆ organizationService

OrganizationService org.gluu.oxtrust.ldap.service.SvnSyncTimer.organizationService
private

◆ removedTrustRelationship

LinkedBlockingQueue<Pair<GluuSAMLTrustRelationship, String> > org.gluu.oxtrust.ldap.service.SvnSyncTimer.removedTrustRelationship
private

◆ serialVersionUID

final long org.gluu.oxtrust.ldap.service.SvnSyncTimer.serialVersionUID = -6875538084008069405L
staticprivate

◆ shibboleth3ConfService

Shibboleth3ConfService org.gluu.oxtrust.ldap.service.SvnSyncTimer.shibboleth3ConfService
private

◆ subversionService

SubversionService org.gluu.oxtrust.ldap.service.SvnSyncTimer.subversionService
private

◆ svnComment

String org.gluu.oxtrust.ldap.service.SvnSyncTimer.svnComment = ""
private

◆ timerEvent

Event<TimerEvent> org.gluu.oxtrust.ldap.service.SvnSyncTimer.timerEvent
private

◆ trustService

TrustService org.gluu.oxtrust.ldap.service.SvnSyncTimer.trustService
private

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