From: vasary.daniel Date: Wed, 9 Dec 2020 20:37:18 +0000 (+0000) Subject: git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube... X-Git-Url: http://git.useribm.hu/?a=commitdiff_plain;h=657e768eb9d7572d65d5655a3271a5e5d87dff4c;p=mediacube.git git-tfs-id: [tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube;C32102 --- diff --git a/server/hu.user.mediacube.executors.tests/src/hu/user/mediacube/executors/tests/SmallTests.java b/server/hu.user.mediacube.executors.tests/src/hu/user/mediacube/executors/tests/SmallTests.java index fe9a0a14..26e8dd0b 100644 --- a/server/hu.user.mediacube.executors.tests/src/hu/user/mediacube/executors/tests/SmallTests.java +++ b/server/hu.user.mediacube.executors.tests/src/hu/user/mediacube/executors/tests/SmallTests.java @@ -44,6 +44,8 @@ import com.ibm.nosql.json.api.BasicDBList; import com.ibm.nosql.json.api.BasicDBObject; import groovy.lang.GroovyClassLoader; +import user.commons.mediatool.Timecode; +import user.commons.mediatool.Timecode.Type; import user.jobengine.db.Media; import user.jobengine.server.steps.ArchiveItem; import user.jobengine.server.steps.EscortFiles; @@ -1007,4 +1009,13 @@ public class SmallTests { assertFalse(catched.toFile().exists()); assertFalse(EscortFiles.isMediaCatched(sut)); } + + @Test + public void test9998() throws Exception { + Long x = 35739L; + Timecode sut = new Timecode(x, Type.PAL); + + System.out.println(sut.toString()); + } + } diff --git a/server/user.jobengine.executors/jobtemplates/mediavivantis/archive-limited.xml b/server/user.jobengine.executors/jobtemplates/mediavivantis/archive-limited.xml index 8353b0c6..cf1a2469 100644 --- a/server/user.jobengine.executors/jobtemplates/mediavivantis/archive-limited.xml +++ b/server/user.jobengine.executors/jobtemplates/mediavivantis/archive-limited.xml @@ -11,7 +11,7 @@ - + @@ -27,7 +27,7 @@ - + diff --git a/server/user.jobengine.executors/mediavivantis/user/jobengine/server/steps/ArchiveRecursive.java b/server/user.jobengine.executors/mediavivantis/user/jobengine/server/steps/ArchiveRecursive.java index 7e507404..6a65d5fa 100644 --- a/server/user.jobengine.executors/mediavivantis/user/jobengine/server/steps/ArchiveRecursive.java +++ b/server/user.jobengine.executors/mediavivantis/user/jobengine/server/steps/ArchiveRecursive.java @@ -8,15 +8,10 @@ import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.nio.file.attribute.BasicFileAttributes; -import java.nio.file.attribute.FileAttribute; -import java.nio.file.attribute.PosixFilePermission; -import java.nio.file.attribute.PosixFilePermissions; import java.text.SimpleDateFormat; import java.util.Arrays; -import java.util.Date; import java.util.List; import java.util.Map; -import java.util.Set; import org.apache.commons.io.FilenameUtils; import org.apache.commons.lang.StringUtils; @@ -49,11 +44,9 @@ public class ArchiveRecursive extends JobStep implements FileVisitor { private static final String ARCHIVE = "Archiválás"; private static final String ARCHIVE_ITEM = "archiveItem"; private static final String KILL_DATE_DAYS = "killDateDays"; - private static final String CONFLICT = ".CONFLICT"; private SimpleDateFormat df = new SimpleDateFormat("yyyy.MM.dd"); - private String sourcePath; - private List skipPathNames = Arrays.asList("!ARCHIVALAS_ALATT", "Transfered", "VASAROLT", EscortFiles.STATUSFOLDER, EscortFiles.CONFLICTFOLDER); + private List skipPathNames = Arrays.asList("!ARCHIVALAS_ALATT", "VASAROLT", EscortFiles.STATUSFOLDER, EscortFiles.CONFLICTFOLDER); private int limit; private int submitted; private int killDateDays; @@ -118,14 +111,21 @@ public class ArchiveRecursive extends JobStep implements FileVisitor { } @StepEntry - public Object[] execute(String sourcePath, int killDateDays, int limit) { - this.sourcePath = sourcePath; + public Object[] execute(String sourcePath, int killDateDays, int limit) throws Exception { this.killDateDays = killDateDays; this.limit = limit; try { - Files.walkFileTree(Paths.get(sourcePath), this); + if (getJobRuntime().forkPrepare()) { + Files.walkFileTree(Paths.get(sourcePath), this); + } } catch (Exception e) { logger.error(getSessionMarker(), "Az '{}' mappa elérése sikertelen. A rendszer hibaüzenete: {}", sourcePath, e.getMessage()); + } finally { + if (submitted > 0) + getJobRuntime().forkWaitComplete(); + else + getJobRuntime().cancelForkPrepare(); + } return null; } @@ -169,37 +169,40 @@ public class ArchiveRecursive extends JobStep implements FileVisitor { return result; } - private boolean handleArchiveConflict(Path sourcePath) throws Exception { + private boolean handleArchiveConflict(Path mediaPath) throws Exception { boolean result = false; - String sourceFileName = sourcePath.getFileName().toString(); + String sourceFileName = mediaPath.getFileName().toString(); if (getManager().isMediaFileExists(sourceFileName)) { - try { - Path parent = sourcePath.getParent(); - Path conflictPath = Paths.get(parent.toString(), CONFLICT); - File folder = conflictPath.toFile(); - if (!folder.exists() || !folder.isDirectory()) { - Set perms = PosixFilePermissions.fromString("rwxrwxrwx"); - FileAttribute> attr = PosixFilePermissions.asFileAttribute(perms); - try { - Files.createDirectories(conflictPath, attr); - } catch (Exception e) { - try { - Files.createDirectory(conflictPath); - } catch (Exception e1) { - logger.catching(e); - throw e; - } - } - } - - Path conflictFile = Paths.get(conflictPath.toString(), sourceFileName); - if (conflictFile.toFile().exists()) - conflictFile = Paths.get(conflictPath.toString(), sourceFileName + (new Date()).getTime()); - Files.move(sourcePath, conflictFile); - result = true; - } catch (Exception e1) { - logger.error(getSessionMarker(), "Hiba az '{}' állomány mappába mozgatásakor. A rendszer üzenete: {}", CONFLICT, e1.getMessage()); - } + EscortFiles.createMediaCatch(mediaPath); + result = true; + + // try { + // Path parent = sourcePath.getParent(); + // Path conflictPath = Paths.get(parent.toString(), CONFLICT); + // File folder = conflictPath.toFile(); + // if (!folder.exists() || !folder.isDirectory()) { + // Set perms = PosixFilePermissions.fromString("rwxrwxrwx"); + // FileAttribute> attr = PosixFilePermissions.asFileAttribute(perms); + // try { + // Files.createDirectories(conflictPath, attr); + // } catch (Exception e) { + // try { + // Files.createDirectory(conflictPath); + // } catch (Exception e1) { + // logger.catching(e); + // throw e; + // } + // } + // } + // + // Path conflictFile = Paths.get(conflictPath.toString(), sourceFileName); + // if (conflictFile.toFile().exists()) + // conflictFile = Paths.get(conflictPath.toString(), sourceFileName + (new Date()).getTime()); + // Files.move(sourcePath, conflictFile); + // result = true; + // } catch (Exception e1) { + // logger.error(getSessionMarker(), "Hiba az '{}' állomány mappába mozgatásakor. A rendszer üzenete: {}", CONFLICT, e1.getMessage()); + // } } return result; @@ -213,11 +216,11 @@ public class ArchiveRecursive extends JobStep implements FileVisitor { @Override public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes paramBasicFileAttributes) throws IOException { Path dirName = dir.getFileName(); + logger.info("PreVisit {}", dir); - if (skipPathNames.contains(dirName.toString())) { - //logger.info("Skipping {}", dir); + if (skipPathNames.contains(dirName.toString())) return FileVisitResult.SKIP_SUBTREE; - } else + else logger.info("PreVisit {}", dir); return FileVisitResult.CONTINUE; @@ -227,6 +230,12 @@ public class ArchiveRecursive extends JobStep implements FileVisitor { if (submitted == limit) return false; + // if (!"Transfered".equals(mediaPath.getParent().getFileName().toString())) + // return false; + + if (mediaPath.getFileName().toString().startsWith(".")) + return false; + File mediaFile = mediaPath.toFile(); if (mediaFile.isDirectory()) return false; @@ -234,10 +243,10 @@ public class ArchiveRecursive extends JobStep implements FileVisitor { if (EscortFiles.isMediaCatched(mediaPath)) return false; - if (!canReadMediaInfo(mediaPath)) + if (handleArchiveConflict(mediaPath)) return false; - if (handleArchiveConflict(mediaPath)) + if (!canReadMediaInfo(mediaPath)) return false; ArchiveItem archiveItem = createArchiveItem(mediaPath); @@ -247,13 +256,13 @@ public class ArchiveRecursive extends JobStep implements FileVisitor { submitted++; Map parameters = ListUtils.asMap(ARCHIVE_ITEM, archiveItem, KILL_DATE_DAYS, killDateDays); - IJobRuntime runtime = getEngine().submit(null, e -> { + IJobRuntime runtime = getEngine().submit(getJobRuntime(), e -> { if (e.getStatus().equals(JobStatus.CANCELED) || e.getStatus().equals(JobStatus.SUSPENDED)) EscortFiles.removeMediaCatch(mediaPath); }, JOBTEMPLATE, ARCHIVE, 1, IJobEngine.DEFAULT_OWNER, parameters); if (runtime == null) throw new Exception("Submit returned null runtime"); - + runtime.setRelated(mediaPath.toString()); EscortFiles.createMediaCatch(mediaPath); } catch (Exception e) { String fileName = new File(archiveItem.getMediaFile()).getName(); diff --git a/server/user.jobengine.executors/src/user/jobengine/server/steps/CreateMissingLowresStep.java b/server/user.jobengine.executors/mediavivantis/user/jobengine/server/steps/CreateMissingLowresStep.java similarity index 100% rename from server/user.jobengine.executors/src/user/jobengine/server/steps/CreateMissingLowresStep.java rename to server/user.jobengine.executors/mediavivantis/user/jobengine/server/steps/CreateMissingLowresStep.java diff --git a/server/user.jobengine.executors/mediavivantis/user/jobengine/server/steps/TSMSimpleRestoreStep.java b/server/user.jobengine.executors/mediavivantis/user/jobengine/server/steps/TSMSimpleRestoreStep.java index f8c2eebc..ba63212c 100644 --- a/server/user.jobengine.executors/mediavivantis/user/jobengine/server/steps/TSMSimpleRestoreStep.java +++ b/server/user.jobengine.executors/mediavivantis/user/jobengine/server/steps/TSMSimpleRestoreStep.java @@ -7,6 +7,8 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import user.commons.StoreUri; +import user.commons.mediatool.Timecode; +import user.commons.mediatool.Timecode.Type; import user.commons.remotestore.IProgressEventListener; import user.commons.remotestore.IStatusEventListener; import user.commons.remotestore.ProgressEvent; @@ -26,7 +28,8 @@ public class TSMSimpleRestoreStep extends JobStep { Media media = getManager().getMedia(mediaId); MediaFile mediaFile = getManager().getSystemMediaFile(media); fileName = mediaFile.getRelativePath(); - getJobRuntime().setDescription(String.format("%s (%d frames)", fileName, media.getLength())); + Timecode timecode = new Timecode(media.getLength(), Type.PAL); + getJobRuntime().setDescription(String.format("%s (%s)", fileName, timecode.toString())); Store tsmStore = getManager().getSystemStore(false); StoreUri sourceStoreUri = getManager().getStoreUri(tsmStore.getName(), RemoteStoreProtocol.TSM); sourceStoreUri.addProgressListener(new IProgressEventListener() { diff --git a/server/user.jobengine.executors/src/user/jobengine/server/steps/EscortFiles.java b/server/user.jobengine.executors/src/user/jobengine/server/steps/EscortFiles.java index cce5921f..077ce60d 100644 --- a/server/user.jobengine.executors/src/user/jobengine/server/steps/EscortFiles.java +++ b/server/user.jobengine.executors/src/user/jobengine/server/steps/EscortFiles.java @@ -98,7 +98,7 @@ public class EscortFiles { */ public static void createMediaCatch(Path mediaFile) throws IOException { Path catchedFile = createMediaCathFilePath(mediaFile); - ensureUNCFolder(mediaFile.getParent()); + ensureUNCFolder(catchedFile.getParent()); Files.createFile(catchedFile); } diff --git a/server/user.jobengine.executors/src/user/jobengine/server/steps/TSMBackupStep.java b/server/user.jobengine.executors/src/user/jobengine/server/steps/TSMBackupStep.java index b16fc1a3..60adc661 100644 --- a/server/user.jobengine.executors/src/user/jobengine/server/steps/TSMBackupStep.java +++ b/server/user.jobengine.executors/src/user/jobengine/server/steps/TSMBackupStep.java @@ -17,6 +17,8 @@ import org.apache.logging.log4j.message.ParameterizedMessage; import user.commons.RemoteFile; import user.commons.StoreUri; +import user.commons.mediatool.Timecode; +import user.commons.mediatool.Timecode.Type; import user.commons.remotestore.IProgressEventListener; import user.commons.remotestore.IStatusEventListener; import user.commons.remotestore.ProgressEvent; @@ -47,13 +49,13 @@ public class TSMBackupStep extends JobStep { File sourceMediaFile = new File(archiveItem.getMediaFile()); String sourceFileName = sourceMediaFile.getName(); - String details = String.format("%s (%d bytes)", sourceFileName, sourceMediaFile.length()); + Timecode timecode = new Timecode(mediaCubeMedia.getLength(), Type.PAL); + String details = String.format("%s (%s, %d bytes)", sourceFileName, timecode.toString(), sourceMediaFile.length()); + getJobRuntime().setDescription(details); try { setAndCheck(archiveItem, mediaCubeMedia, getEngine()); - getJobRuntime().setDescription(details); - //TODO mxf helyett az osszes kiterjesztest!!!!! //A dupla ellenorzes a napon beluli ismetlesek miatt kell long existingMediaId = archiveItem.getExistingMediaId(); diff --git a/server/user.jobengine.executors/src/user/jobengine/server/steps/TSMRestoreStep.java b/server/user.jobengine.executors/src/user/jobengine/server/steps/TSMRestoreStep.java index a9589e01..5b410055 100644 --- a/server/user.jobengine.executors/src/user/jobengine/server/steps/TSMRestoreStep.java +++ b/server/user.jobengine.executors/src/user/jobengine/server/steps/TSMRestoreStep.java @@ -13,6 +13,8 @@ import org.apache.logging.log4j.message.Message; import user.commons.LogUtils; import user.commons.RemoteFile; import user.commons.StoreUri; +import user.commons.mediatool.Timecode; +import user.commons.mediatool.Timecode.Type; import user.commons.remotestore.IProgressEventListener; import user.commons.remotestore.IStatusEventListener; import user.commons.remotestore.ProgressEvent; @@ -58,8 +60,9 @@ public class TSMRestoreStep extends JobStep { marker = jobRuntime.getSessionMarker(); setAndCheck(mediaCubeMedia, targetPath, targetNamePattern, localRetrievePath, globalRetrievePath, jobEngine); String targetFileName = String.format(targetNamePattern, sourceFileName); + Timecode timecode = new Timecode(mediaCubeMedia.getLength(), Type.PAL); try { - String details = String.format("%s (%d frames)", sourceFileName, mediaCubeMedia.getLength()); + String details = String.format("%s (%s)", sourceFileName, timecode.toString()); jobRuntime.setDescription(details); beforeRestore(targetUri, targetNamePattern); final IJobRuntime runtime = jobRuntime; diff --git a/server/user.jobengine.executors/src/user/jobengine/server/steps/TranscodeFFAStranStep.java b/server/user.jobengine.executors/src/user/jobengine/server/steps/TranscodeFFAStranStep.java index 5b3907d4..a73ff663 100644 --- a/server/user.jobengine.executors/src/user/jobengine/server/steps/TranscodeFFAStranStep.java +++ b/server/user.jobengine.executors/src/user/jobengine/server/steps/TranscodeFFAStranStep.java @@ -16,6 +16,8 @@ import org.apache.logging.log4j.message.ParameterizedMessage; import user.commons.FFAStransAPI; import user.commons.IFFAStransAPI; import user.commons.StoreUri; +import user.commons.mediatool.Timecode; +import user.commons.mediatool.Timecode.Type; import user.commons.remotestore.RemoteStoreProtocol; import user.jobengine.db.FileType; import user.jobengine.db.IItemManager; @@ -54,7 +56,9 @@ public class TranscodeFFAStranStep extends JobStep { File sourceMediaFile = new File(archiveItem.getMediaFile()); logger.info("Transcoding {}", archiveItem.getMediaFile()); String sourceFileName = sourceMediaFile.getName(); - String details = String.format("%s (%d bytes)", sourceFileName, sourceMediaFile.length()); + Timecode timecode = new Timecode(mediaCubeMedia.getLength(), Type.PAL); + + String details = String.format("%s (%s, %d bytes)", sourceFileName, timecode.toString(), sourceMediaFile.length()); StoreUri storeUri = store.getTargetStoreUri(RemoteStoreProtocol.LOCAL); if (storeUri == null) diff --git a/server/user.jobengine.osgi.commons/src/user/commons/mediatool/Timecode.java b/server/user.jobengine.osgi.commons/src/user/commons/mediatool/Timecode.java index 1d0b1925..207d2b84 100644 --- a/server/user.jobengine.osgi.commons/src/user/commons/mediatool/Timecode.java +++ b/server/user.jobengine.osgi.commons/src/user/commons/mediatool/Timecode.java @@ -95,6 +95,10 @@ public class Timecode { setFrames(frame); } + public Timecode(long frames, Type type) { + this((int) frames, type); + } + /** Creates a new CD timecode based on a string in the form HH:MM:SS:FF */ public Timecode(String timecode) throws Timecode.TimecodeException { this(timecode, Type.CD); diff --git a/server/user.jobengine.osgi.server/src/user/jobengine/server/JobEngine.java b/server/user.jobengine.osgi.server/src/user/jobengine/server/JobEngine.java index 4578e940..14d6d51a 100644 --- a/server/user.jobengine.osgi.server/src/user/jobengine/server/JobEngine.java +++ b/server/user.jobengine.osgi.server/src/user/jobengine/server/JobEngine.java @@ -876,6 +876,7 @@ public class JobEngine implements IJobEngine { public void removeJobChangedEventListener(IJobChangedListener listener) { if (listener != null) { jobChangedListenerList.remove(listener); + logger.info("Listeners left {}", jobChangedListenerList.size()); } } diff --git a/server/user.mediacube.gui/WEB-INF/zk.xml b/server/user.mediacube.gui/WEB-INF/zk.xml index b3278797..4594df9d 100644 --- a/server/user.mediacube.gui/WEB-INF/zk.xml +++ b/server/user.mediacube.gui/WEB-INF/zk.xml @@ -45,9 +45,9 @@ https://www.zkoss.org/wiki/ZK_Configuration_Reference/zk.xml - - - + + user.jobengine.zk.util.LifeCycleListener + diff --git a/server/user.mediacube.gui/pages/joblistwnd.zul b/server/user.mediacube.gui/pages/joblistwnd.zul new file mode 100644 index 00000000..25062035 --- /dev/null +++ b/server/user.mediacube.gui/pages/joblistwnd.zul @@ -0,0 +1,5 @@ + + + + + diff --git a/server/user.mediacube.gui/pages/menu.zul b/server/user.mediacube.gui/pages/menu.zul index 9586f5bb..d7319ed1 100644 --- a/server/user.mediacube.gui/pages/menu.zul +++ b/server/user.mediacube.gui/pages/menu.zul @@ -73,6 +73,7 @@ + diff --git a/server/user.mediacube.gui/pages/searchitems.zul b/server/user.mediacube.gui/pages/searchitems.zul index 4be9d565..601ed57b 100644 --- a/server/user.mediacube.gui/pages/searchitems.zul +++ b/server/user.mediacube.gui/pages/searchitems.zul @@ -67,5 +67,8 @@ + + + \ No newline at end of file diff --git a/server/user.mediacube.gui/src/user/jobengine/zk/model/SearchModel.java b/server/user.mediacube.gui/src/user/jobengine/zk/model/SearchModel.java index e610c70a..cbf32811 100644 --- a/server/user.mediacube.gui/src/user/jobengine/zk/model/SearchModel.java +++ b/server/user.mediacube.gui/src/user/jobengine/zk/model/SearchModel.java @@ -28,6 +28,7 @@ import org.zkoss.bind.annotation.BindingParam; import org.zkoss.bind.annotation.Command; import org.zkoss.bind.annotation.ContextParam; import org.zkoss.bind.annotation.ContextType; +import org.zkoss.bind.annotation.GlobalCommand; import org.zkoss.bind.annotation.NotifyChange; import org.zkoss.json.JSONObject; import org.zkoss.zk.ui.Component; @@ -266,6 +267,12 @@ public class SearchModel extends AsyncBaseModel { Executions.getCurrent().sendRedirect(email); } + @GlobalCommand + public void createFloatingJobMonitor() { + Window window = (Window) Executions.createComponents("/pages/joblistwnd.zul", null, null); + window.doOverlapped(); + } + @Command public void createLowres() { IJobEngine jobEngine = ComponentBinder.getJobEngine(); @@ -1104,4 +1111,5 @@ public class SearchModel extends AsyncBaseModel { }); timer.start(); } + } diff --git a/server/user.mediacube.gui/src/user/jobengine/zk/model/TCConverter.java b/server/user.mediacube.gui/src/user/jobengine/zk/model/TCConverter.java index afe7f62f..68d6290b 100644 --- a/server/user.mediacube.gui/src/user/jobengine/zk/model/TCConverter.java +++ b/server/user.mediacube.gui/src/user/jobengine/zk/model/TCConverter.java @@ -4,6 +4,9 @@ import org.zkoss.bind.BindContext; import org.zkoss.bind.Converter; import org.zkoss.zul.Label; +import user.commons.mediatool.Timecode; +import user.commons.mediatool.Timecode.Type; + public class TCConverter implements Converter { @Override @@ -13,15 +16,18 @@ public class TCConverter implements Converter { @Override public String coerceToUi(Long frames, Label label, BindContext context) { - double reminder = frames; - int hour = (int) Math.floor(reminder / (60 * 60 * 25)); - reminder = reminder % (60 * 60 * 25); - int minute = (int) Math.floor(reminder / (60 * 25)); - reminder = reminder % (60 * 25); - int sec = (int) Math.floor(reminder / 25); - reminder = reminder % 25; - int frame = (int) Math.floor(reminder); - return String.format("%02d:%02d:%02d:%02d", hour, minute, sec, frame); + //kell a konverzio, mert egyebkent float-ra cast-ol es rosszul szamol + Timecode timecode = new Timecode(frames, Type.PAL); + return timecode.toString(); + // double reminder = frames; + // int hour = (int) Math.floor(reminder / (60 * 60 * 25)); + // reminder = reminder % (60 * 60 * 25); + // int minute = (int) Math.floor(reminder / (60 * 25)); + // reminder = reminder % (60 * 25); + // int sec = (int) Math.floor(reminder / 25); + // reminder = reminder % 25; + // int frame = (int) Math.floor(reminder); + // return String.format("%02d:%02d:%02d:%02d", hour, minute, sec, frame); } } diff --git a/server/user.mediacube.gui/src/user/jobengine/zk/util/LifeCycleListener.java b/server/user.mediacube.gui/src/user/jobengine/zk/util/LifeCycleListener.java index 1464e898..1d8c2341 100644 --- a/server/user.mediacube.gui/src/user/jobengine/zk/util/LifeCycleListener.java +++ b/server/user.mediacube.gui/src/user/jobengine/zk/util/LifeCycleListener.java @@ -13,30 +13,28 @@ public class LifeCycleListener implements UiLifeCycle { @Override public void afterComponentAttached(Component component, Page page) { - //logger.info("afterComponentAttached {} {}", component.getClass(), page); + // logger.info("afterComponentAttached {} {}", component.getClass(), page); } @Override public void afterComponentDetached(Component component, Page page) { - //logger.info("afterComponentDetached {} {}", component.getClass(), page); + // logger.info("afterComponentDetached {} {}", component.getClass(), page); } @Override - public void afterComponentMoved(Component arg0, Component arg1, Component arg2) { - // TODO Auto-generated method stub + public void afterComponentMoved(Component component1, Component component2, Component component3) { + // logger.info("afterComponentMoved {} {}", component1.getClass(), component2.getClass(), component3.getClass()); } @Override - public void afterPageAttached(Page arg0, Desktop arg1) { - // TODO Auto-generated method stub - + public void afterPageAttached(Page page, Desktop desktop) { + // logger.info("afterPageAttached {} {}", page, desktop); } @Override - public void afterPageDetached(Page arg0, Desktop arg1) { - // TODO Auto-generated method stub - + public void afterPageDetached(Page page, Desktop desktop) { + // logger.info("afterPageAttached {} {}", page, desktop); } @Override