You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2016/04/05 19:59:54 UTC
svn commit: r1737859 - in /openmeetings/application:
branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/cli/
trunk/openmeetings-install/src/main/java/org/apache/openmeetings/cli/
Author: solomax
Date: Tue Apr 5 17:59:53 2016
New Revision: 1737859
URL: http://svn.apache.org/viewvc?rev=1737859&view=rev
Log:
[OPENMEETINGS-853] cli admin is refactored, so clean-up can be used in web
Added:
openmeetings/application/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/cli/CleanupEntityUnit.java
openmeetings/application/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/cli/CleanupHelper.java
openmeetings/application/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/cli/CleanupUnit.java
openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/cli/CleanupEntityUnit.java
openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/cli/CleanupHelper.java
openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/cli/CleanupUnit.java
Modified:
openmeetings/application/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/cli/Admin.java
openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/cli/Admin.java
Modified: openmeetings/application/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/cli/Admin.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/cli/Admin.java?rev=1737859&r1=1737858&r2=1737859&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/cli/Admin.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/cli/Admin.java Tue Apr 5 17:59:53 2016
@@ -59,7 +59,6 @@ import org.apache.openmeetings.db.dao.re
import org.apache.openmeetings.db.dao.user.UserDao;
import org.apache.openmeetings.db.entity.file.FileExplorerItem;
import org.apache.openmeetings.db.entity.record.Recording;
-import org.apache.openmeetings.db.entity.user.User;
import org.apache.openmeetings.installation.ImportInitvalues;
import org.apache.openmeetings.installation.InstallationConfig;
import org.apache.openmeetings.installation.InstallationDocumentHandler;
@@ -320,47 +319,24 @@ public class Admin {
System.out.println("WARNING: all intermadiate files will be clean up!");
}
StringBuilder report = new StringBuilder();
- report.append("Temporary files allocates: ").append(OmFileHelper.getHumanSize(OmFileHelper.getUploadTempDir())).append("\n");
+ CleanupUnit temp = CleanupHelper.getTempUnit();
+ report.append("Temporary files allocates: ").append(temp.getHumanTotal()).append("\n");
{ //UPLOAD
long sectionSize = OmFileHelper.getSize(OmFileHelper.getUploadDir());
report.append("Upload totally allocates: ").append(OmFileHelper.getHumanSize(sectionSize)).append("\n");
//Profiles
- File profiles = OmFileHelper.getUploadProfilesDir();
- long invalid = 0;
- long deleted = 0;
ClassPathXmlApplicationContext ctx = getApplicationContext(ctxName);
UserDao udao = ctx.getBean(UserDao.class);
- for (File profile : profiles.listFiles()) {
- long pSize = OmFileHelper.getSize(profile);
- long userId = getUserIdByProfile(profile.getName());
- User u = udao.get(userId);
- if (profile.isFile() || userId < 0 || u == null) {
- if (cleanup) {
- FileHelper.removeRec(profile);
- } else {
- invalid += pSize;
- }
- } else if (u.isDeleted()) {
- if (cleanup) {
- FileHelper.removeRec(profile);
- } else {
- deleted += pSize;
- }
- }
- }
- long missing = 0;
- for (User u : udao.getAllBackupUsers()) {
- if (!u.isDeleted() && u.getPictureuri() != null && !new File(OmFileHelper.getUploadProfilesUserDir(u.getId()), u.getPictureuri()).exists()) {
- missing++;
- }
+ CleanupEntityUnit profileUnit = CleanupHelper.getProfileUnit(udao);
+ long restSize = sectionSize - profileUnit.getSizeTotal();
+ report.append("\t\tprofiles: ").append(profileUnit.getHumanTotal()).append("\n");
+ report.append("\t\t\tinvalid: ").append(profileUnit.getHumanInvalid()).append("\n");
+ report.append("\t\t\tdeleted: ").append(profileUnit.getHumanDeleted()).append("\n");
+ report.append("\t\t\tmissing count: ").append(profileUnit.getMissing()).append("\n");
+ if (cleanup) {
+ profileUnit.cleanup();
}
- long size = OmFileHelper.getSize(profiles);
- long restSize = sectionSize - size;
- report.append("\t\tprofiles: ").append(OmFileHelper.getHumanSize(size)).append("\n");
- report.append("\t\t\tinvalid: ").append(OmFileHelper.getHumanSize(invalid)).append("\n");
- report.append("\t\t\tdeleted: ").append(OmFileHelper.getHumanSize(deleted)).append("\n");
- report.append("\t\t\tmissing count: ").append(missing).append("\n");
- size = OmFileHelper.getSize(OmFileHelper.getUploadImportDir());
+ long size = OmFileHelper.getSize(OmFileHelper.getUploadImportDir());
restSize -= size;
report.append("\t\timport: ").append(OmFileHelper.getHumanSize(size)).append("\n");
size = OmFileHelper.getSize(OmFileHelper.getUploadBackupDir());
@@ -371,8 +347,8 @@ public class Admin {
size = OmFileHelper.getSize(files);
restSize -= size;
FileExplorerItemDao fileDao = ctx.getBean(FileExplorerItemDao.class);
- invalid = 0;
- deleted = 0;
+ long invalid = 0;
+ long deleted = 0;
for (File f : files.listFiles()) {
long fSize = OmFileHelper.getSize(f);
FileExplorerItem item = fileDao.getByHash(f.getName());
@@ -390,7 +366,7 @@ public class Admin {
}
}
}
- missing = 0;
+ int missing = 0;
for (FileExplorerItem item : fileDao.get()) {
if (!item.isDeleted() && item.getHash() != null && !new File(files, item.getHash()).exists()) {
missing++;
@@ -496,18 +472,6 @@ public class Admin {
}
}
- private static long getUserIdByProfile(String name) {
- long result = -1;
- if (name.startsWith(OmFileHelper.profilesPrefix)) {
- try {
- result = Long.parseLong(name.substring(OmFileHelper.profilesPrefix.length()));
- } catch (Exception e) {
- //noop
- }
- }
- return result;
- }
-
private void checkAdminDetails(String ctxName) throws Exception {
cfg.username = cmdl.getOptionValue("user");
cfg.email = cmdl.getOptionValue("email");
Added: openmeetings/application/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/cli/CleanupEntityUnit.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/cli/CleanupEntityUnit.java?rev=1737859&view=auto
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/cli/CleanupEntityUnit.java (added)
+++ openmeetings/application/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/cli/CleanupEntityUnit.java Tue Apr 5 17:59:53 2016
@@ -0,0 +1,66 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") + you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.cli;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.openmeetings.util.OmFileHelper;
+
+public abstract class CleanupEntityUnit extends CleanupUnit {
+ protected List<File> invalid = new ArrayList<>();
+ protected List<File> deleted = new ArrayList<>();
+ private long sizeInvalid = 0;
+ private long sizeDeleted = 0;
+ protected int missing = 0;
+
+ public CleanupEntityUnit(File parent) {
+ super(parent);
+ fill();
+ for (File i : invalid) {
+ sizeInvalid += OmFileHelper.getSize(i);
+ }
+ for (File i : deleted) {
+ sizeDeleted += OmFileHelper.getSize(i);
+ }
+ }
+
+ public abstract void fill();
+
+ public long getSizeInvalid() {
+ return sizeInvalid;
+ }
+
+ public String getHumanInvalid() {
+ return OmFileHelper.getHumanSize(sizeInvalid);
+ }
+
+ public long getSizeDeleted() {
+ return sizeDeleted;
+ }
+
+ public String getHumanDeleted() {
+ return OmFileHelper.getHumanSize(sizeDeleted);
+ }
+
+ public int getMissing() {
+ return missing;
+ }
+}
Added: openmeetings/application/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/cli/CleanupHelper.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/cli/CleanupHelper.java?rev=1737859&view=auto
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/cli/CleanupHelper.java (added)
+++ openmeetings/application/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/cli/CleanupHelper.java Tue Apr 5 17:59:53 2016
@@ -0,0 +1,83 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") + you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.cli;
+
+import java.io.File;
+
+import org.apache.commons.transaction.util.FileHelper;
+import org.apache.openmeetings.db.dao.user.UserDao;
+import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.util.OmFileHelper;
+
+public class CleanupHelper {
+ public static CleanupUnit getTempUnit() {
+ return new CleanupUnit(OmFileHelper.getUploadTempDir()) {
+ @Override
+ public void cleanup() {
+ for (File f : getParent().listFiles()) {
+ FileHelper.removeRec(f);
+ }
+ }
+ };
+ }
+
+ public static CleanupEntityUnit getProfileUnit(final UserDao udao) {
+ return new CleanupEntityUnit(OmFileHelper.getUploadProfilesDir()) {
+ @Override
+ public void cleanup() {
+ for (File i : invalid) {
+ FileHelper.removeRec(i);
+ }
+ for (File i : deleted) {
+ FileHelper.removeRec(i);
+ }
+ }
+
+ @Override
+ public void fill() {
+ for (File profile : getParent().listFiles()) {
+ long userId = getUserIdByProfile(profile.getName());
+ User u = udao.get(userId);
+ if (profile.isFile() || userId < 0 || u == null) {
+ invalid.add(profile);
+ } else if (u.isDeleted()) {
+ deleted.add(profile);
+ }
+ }
+ for (User u : udao.getAllBackupUsers()) {
+ if (!u.isDeleted() && u.getPictureuri() != null && !new File(OmFileHelper.getUploadProfilesUserDir(u.getId()), u.getPictureuri()).exists()) {
+ missing++;
+ }
+ }
+ }
+ };
+ }
+
+ private static long getUserIdByProfile(String name) {
+ long result = -1;
+ if (name.startsWith(OmFileHelper.profilesPrefix)) {
+ try {
+ result = Long.parseLong(name.substring(OmFileHelper.profilesPrefix.length()));
+ } catch (Exception e) {
+ //noop
+ }
+ }
+ return result;
+ }
+}
Added: openmeetings/application/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/cli/CleanupUnit.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/cli/CleanupUnit.java?rev=1737859&view=auto
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/cli/CleanupUnit.java (added)
+++ openmeetings/application/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/cli/CleanupUnit.java Tue Apr 5 17:59:53 2016
@@ -0,0 +1,50 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") + you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.cli;
+
+import java.io.File;
+
+import org.apache.openmeetings.util.OmFileHelper;
+
+public abstract class CleanupUnit {
+ private final File parent;
+ private final long sizeTotal;
+
+ public CleanupUnit(File parent) {
+ this.parent = parent;
+ if (!parent.isDirectory() || !parent.exists()) {
+ throw new RuntimeException("Parent doesn't exist or not directory");
+ }
+ sizeTotal = OmFileHelper.getSize(parent);
+ }
+
+ public abstract void cleanup();
+
+ public File getParent() {
+ return parent;
+ }
+
+ public long getSizeTotal() {
+ return sizeTotal;
+ }
+
+ public String getHumanTotal() {
+ return OmFileHelper.getHumanSize(sizeTotal);
+ }
+}
Modified: openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/cli/Admin.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/cli/Admin.java?rev=1737859&r1=1737858&r2=1737859&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/cli/Admin.java (original)
+++ openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/cli/Admin.java Tue Apr 5 17:59:53 2016
@@ -59,7 +59,6 @@ import org.apache.openmeetings.db.dao.re
import org.apache.openmeetings.db.dao.user.UserDao;
import org.apache.openmeetings.db.entity.file.FileExplorerItem;
import org.apache.openmeetings.db.entity.record.Recording;
-import org.apache.openmeetings.db.entity.user.User;
import org.apache.openmeetings.installation.ImportInitvalues;
import org.apache.openmeetings.installation.InstallationConfig;
import org.apache.openmeetings.installation.InstallationDocumentHandler;
@@ -320,47 +319,24 @@ public class Admin {
System.out.println("WARNING: all intermadiate files will be clean up!");
}
StringBuilder report = new StringBuilder();
- report.append("Temporary files allocates: ").append(OmFileHelper.getHumanSize(OmFileHelper.getUploadTempDir())).append("\n");
+ CleanupUnit temp = CleanupHelper.getTempUnit();
+ report.append("Temporary files allocates: ").append(temp.getHumanTotal()).append("\n");
{ //UPLOAD
long sectionSize = OmFileHelper.getSize(OmFileHelper.getUploadDir());
report.append("Upload totally allocates: ").append(OmFileHelper.getHumanSize(sectionSize)).append("\n");
//Profiles
- File profiles = OmFileHelper.getUploadProfilesDir();
- long invalid = 0;
- long deleted = 0;
ClassPathXmlApplicationContext ctx = getApplicationContext(ctxName);
UserDao udao = ctx.getBean(UserDao.class);
- for (File profile : profiles.listFiles()) {
- long pSize = OmFileHelper.getSize(profile);
- long userId = getUserIdByProfile(profile.getName());
- User u = udao.get(userId);
- if (profile.isFile() || userId < 0 || u == null) {
- if (cleanup) {
- FileHelper.removeRec(profile);
- } else {
- invalid += pSize;
- }
- } else if (u.isDeleted()) {
- if (cleanup) {
- FileHelper.removeRec(profile);
- } else {
- deleted += pSize;
- }
- }
- }
- long missing = 0;
- for (User u : udao.getAllBackupUsers()) {
- if (!u.isDeleted() && u.getPictureuri() != null && !new File(OmFileHelper.getUploadProfilesUserDir(u.getId()), u.getPictureuri()).exists()) {
- missing++;
- }
+ CleanupEntityUnit profileUnit = CleanupHelper.getProfileUnit(udao);
+ long restSize = sectionSize - profileUnit.getSizeTotal();
+ report.append("\t\tprofiles: ").append(profileUnit.getHumanTotal()).append("\n");
+ report.append("\t\t\tinvalid: ").append(profileUnit.getHumanInvalid()).append("\n");
+ report.append("\t\t\tdeleted: ").append(profileUnit.getHumanDeleted()).append("\n");
+ report.append("\t\t\tmissing count: ").append(profileUnit.getMissing()).append("\n");
+ if (cleanup) {
+ profileUnit.cleanup();
}
- long size = OmFileHelper.getSize(profiles);
- long restSize = sectionSize - size;
- report.append("\t\tprofiles: ").append(OmFileHelper.getHumanSize(size)).append("\n");
- report.append("\t\t\tinvalid: ").append(OmFileHelper.getHumanSize(invalid)).append("\n");
- report.append("\t\t\tdeleted: ").append(OmFileHelper.getHumanSize(deleted)).append("\n");
- report.append("\t\t\tmissing count: ").append(missing).append("\n");
- size = OmFileHelper.getSize(OmFileHelper.getUploadImportDir());
+ long size = OmFileHelper.getSize(OmFileHelper.getUploadImportDir());
restSize -= size;
report.append("\t\timport: ").append(OmFileHelper.getHumanSize(size)).append("\n");
size = OmFileHelper.getSize(OmFileHelper.getUploadBackupDir());
@@ -371,8 +347,8 @@ public class Admin {
size = OmFileHelper.getSize(files);
restSize -= size;
FileExplorerItemDao fileDao = ctx.getBean(FileExplorerItemDao.class);
- invalid = 0;
- deleted = 0;
+ long invalid = 0;
+ long deleted = 0;
for (File f : files.listFiles()) {
long fSize = OmFileHelper.getSize(f);
FileExplorerItem item = fileDao.getByHash(f.getName());
@@ -390,7 +366,7 @@ public class Admin {
}
}
}
- missing = 0;
+ int missing = 0;
for (FileExplorerItem item : fileDao.get()) {
if (!item.isDeleted() && item.getHash() != null && !new File(files, item.getHash()).exists()) {
missing++;
@@ -496,18 +472,6 @@ public class Admin {
}
}
- private static long getUserIdByProfile(String name) {
- long result = -1;
- if (name.startsWith(OmFileHelper.profilesPrefix)) {
- try {
- result = Long.parseLong(name.substring(OmFileHelper.profilesPrefix.length()));
- } catch (Exception e) {
- //noop
- }
- }
- return result;
- }
-
private void checkAdminDetails(String ctxName) throws Exception {
cfg.username = cmdl.getOptionValue("user");
cfg.email = cmdl.getOptionValue("email");
Added: openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/cli/CleanupEntityUnit.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/cli/CleanupEntityUnit.java?rev=1737859&view=auto
==============================================================================
--- openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/cli/CleanupEntityUnit.java (added)
+++ openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/cli/CleanupEntityUnit.java Tue Apr 5 17:59:53 2016
@@ -0,0 +1,66 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") + you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.cli;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.openmeetings.util.OmFileHelper;
+
+public abstract class CleanupEntityUnit extends CleanupUnit {
+ protected List<File> invalid = new ArrayList<>();
+ protected List<File> deleted = new ArrayList<>();
+ private long sizeInvalid = 0;
+ private long sizeDeleted = 0;
+ protected int missing = 0;
+
+ public CleanupEntityUnit(File parent) {
+ super(parent);
+ fill();
+ for (File i : invalid) {
+ sizeInvalid += OmFileHelper.getSize(i);
+ }
+ for (File i : deleted) {
+ sizeDeleted += OmFileHelper.getSize(i);
+ }
+ }
+
+ public abstract void fill();
+
+ public long getSizeInvalid() {
+ return sizeInvalid;
+ }
+
+ public String getHumanInvalid() {
+ return OmFileHelper.getHumanSize(sizeInvalid);
+ }
+
+ public long getSizeDeleted() {
+ return sizeDeleted;
+ }
+
+ public String getHumanDeleted() {
+ return OmFileHelper.getHumanSize(sizeDeleted);
+ }
+
+ public int getMissing() {
+ return missing;
+ }
+}
Added: openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/cli/CleanupHelper.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/cli/CleanupHelper.java?rev=1737859&view=auto
==============================================================================
--- openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/cli/CleanupHelper.java (added)
+++ openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/cli/CleanupHelper.java Tue Apr 5 17:59:53 2016
@@ -0,0 +1,83 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") + you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.cli;
+
+import java.io.File;
+
+import org.apache.commons.transaction.util.FileHelper;
+import org.apache.openmeetings.db.dao.user.UserDao;
+import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.util.OmFileHelper;
+
+public class CleanupHelper {
+ public static CleanupUnit getTempUnit() {
+ return new CleanupUnit(OmFileHelper.getUploadTempDir()) {
+ @Override
+ public void cleanup() {
+ for (File f : getParent().listFiles()) {
+ FileHelper.removeRec(f);
+ }
+ }
+ };
+ }
+
+ public static CleanupEntityUnit getProfileUnit(final UserDao udao) {
+ return new CleanupEntityUnit(OmFileHelper.getUploadProfilesDir()) {
+ @Override
+ public void cleanup() {
+ for (File i : invalid) {
+ FileHelper.removeRec(i);
+ }
+ for (File i : deleted) {
+ FileHelper.removeRec(i);
+ }
+ }
+
+ @Override
+ public void fill() {
+ for (File profile : getParent().listFiles()) {
+ long userId = getUserIdByProfile(profile.getName());
+ User u = udao.get(userId);
+ if (profile.isFile() || userId < 0 || u == null) {
+ invalid.add(profile);
+ } else if (u.isDeleted()) {
+ deleted.add(profile);
+ }
+ }
+ for (User u : udao.getAllBackupUsers()) {
+ if (!u.isDeleted() && u.getPictureuri() != null && !new File(OmFileHelper.getUploadProfilesUserDir(u.getId()), u.getPictureuri()).exists()) {
+ missing++;
+ }
+ }
+ }
+ };
+ }
+
+ private static long getUserIdByProfile(String name) {
+ long result = -1;
+ if (name.startsWith(OmFileHelper.profilesPrefix)) {
+ try {
+ result = Long.parseLong(name.substring(OmFileHelper.profilesPrefix.length()));
+ } catch (Exception e) {
+ //noop
+ }
+ }
+ return result;
+ }
+}
Added: openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/cli/CleanupUnit.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/cli/CleanupUnit.java?rev=1737859&view=auto
==============================================================================
--- openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/cli/CleanupUnit.java (added)
+++ openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/cli/CleanupUnit.java Tue Apr 5 17:59:53 2016
@@ -0,0 +1,50 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") + you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.cli;
+
+import java.io.File;
+
+import org.apache.openmeetings.util.OmFileHelper;
+
+public abstract class CleanupUnit {
+ private final File parent;
+ private final long sizeTotal;
+
+ public CleanupUnit(File parent) {
+ this.parent = parent;
+ if (!parent.isDirectory() || !parent.exists()) {
+ throw new RuntimeException("Parent doesn't exist or not directory");
+ }
+ sizeTotal = OmFileHelper.getSize(parent);
+ }
+
+ public abstract void cleanup();
+
+ public File getParent() {
+ return parent;
+ }
+
+ public long getSizeTotal() {
+ return sizeTotal;
+ }
+
+ public String getHumanTotal() {
+ return OmFileHelper.getHumanSize(sizeTotal);
+ }
+}