1 package com.atlassian.user.util.migration;
2
3 import org.apache.log4j.Logger;
4
5
6
7
8 public class Log4jMigrationProgressListener implements MigrationProgressListener
9 {
10 private final Logger logger;
11
12 private int usersToMigrate;
13
14 private int usersMigrated = 0;
15
16 private int groupsToMigrate;
17
18 private int groupsMigrated = 0;
19
20 public Log4jMigrationProgressListener(final Logger logger)
21 {
22 if (logger == null)
23 throw new IllegalArgumentException("Log4j logger must NOT be null");
24 this.logger = logger;
25 }
26
27 public void userMigrationStarted(int usersToMigrate)
28 {
29 this.usersToMigrate = usersToMigrate;
30 logger.info("Starting user migration. " + usersToMigrate + " users to migrate.");
31 }
32
33 public void userMigrated()
34 {
35 if (++usersMigrated % 100 == 0)
36 {
37 logger.info(usersMigrated + " users migrated out of " + usersToMigrate + ".");
38 }
39 }
40
41 public void userMigrationComplete()
42 {
43 logger.info("User migration complete.");
44 }
45
46 public void groupMigrationStarted(int groupsToMigrate)
47 {
48 this.groupsToMigrate = groupsToMigrate;
49 logger.info("Group migration started. " + groupsToMigrate + " groups to migrate.");
50 }
51
52 public void groupMigrated()
53 {
54 if (++groupsMigrated % 10 == 0)
55 {
56 logger.info(groupsMigrated + " groups migrated out of " + groupsToMigrate + ".");
57 }
58 }
59
60 public void groupMigrationComplete()
61 {
62 logger.info("Group migration complete.");
63 }
64
65 public void readonlyGroupMembershipNotMigrated(String groupName, String userName)
66 {
67 logger.warn("Could not migrate goup membership for user <" + userName + "> and group <" + groupName + ">. " +
68 "Group is readonly, it is possibly a LDAP group.");
69 }
70 }