From a91376c3e7630ff042d326e8b97c40d4ed262efe Mon Sep 17 00:00:00 2001 From: adam-m Date: Thu, 26 Jan 2012 14:43:50 -0500 Subject: [PATCH] Ingest service dummy examples --- .../ExampleFsContentIngestService.java | 93 ++++++++++++++++++ .../example/ExampleImageIngestService.java | 94 +++++++++++++++++++ .../org/sleuthkit/autopsy/ingest/layer.xml | 13 +++ 3 files changed, 200 insertions(+) create mode 100644 Ingest/src/org/sleuthkit/autopsy/ingest/example/ExampleFsContentIngestService.java create mode 100644 Ingest/src/org/sleuthkit/autopsy/ingest/example/ExampleImageIngestService.java diff --git a/Ingest/src/org/sleuthkit/autopsy/ingest/example/ExampleFsContentIngestService.java b/Ingest/src/org/sleuthkit/autopsy/ingest/example/ExampleFsContentIngestService.java new file mode 100644 index 0000000000..44eb674fc7 --- /dev/null +++ b/Ingest/src/org/sleuthkit/autopsy/ingest/example/ExampleFsContentIngestService.java @@ -0,0 +1,93 @@ +/* + * Autopsy Forensic Browser + * + * Copyright 2011 Basis Technology Corp. + * Contact: carrier sleuthkit org + * + * Licensed 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.sleuthkit.autopsy.ingest.example; + +import java.util.logging.Level; +import java.util.logging.Logger; +import org.sleuthkit.autopsy.ingest.IngestManager; +import org.sleuthkit.autopsy.ingest.IngestMessage; +import org.sleuthkit.autopsy.ingest.IngestMessage.MessageType; +import org.sleuthkit.autopsy.ingest.IngestServiceAbstract.ServiceType; +import org.sleuthkit.autopsy.ingest.IngestServiceFsContent; +import org.sleuthkit.datamodel.FsContent; + +/** + * Example implementation of a fscontent image ingest service + * + */ +public class ExampleFsContentIngestService implements IngestServiceFsContent { + + private static final Logger logger = Logger.getLogger(ExampleFsContentIngestService.class.getName()); + private static ExampleFsContentIngestService instance = null; + private IngestManager manager; + private static int messageId = 0; + + public static synchronized ExampleFsContentIngestService getDefault() { + if (instance == null) { + instance = new ExampleFsContentIngestService(); + } + return instance; + } + + @Override + public void process(FsContent fsContent) { + manager.postMessage(IngestMessage.createMessage(++messageId, MessageType.INFO, this, "Processing " + fsContent.getName())); + + //service specific FsContent processing code here + try { + Thread.sleep(100); + } catch (InterruptedException e) { + } + + + } + + @Override + public void complete() { + logger.log(Level.INFO, "complete()"); + manager.postMessage(IngestMessage.createMessage(++messageId, MessageType.INFO, this, "COMPLETE")); + + //service specific cleanup due completion here + } + + @Override + public String getName() { + return "Example FsContent Service"; + } + + @Override + public void init(IngestManager manager) { + logger.log(Level.INFO, "init()"); + this.manager = manager; + + //service specific initialization here + } + + @Override + public void stop() { + logger.log(Level.INFO, "stop()"); + + //service specific cleanup due interruption here + } + + @Override + public ServiceType getType() { + return ServiceType.FsContent; + } +} diff --git a/Ingest/src/org/sleuthkit/autopsy/ingest/example/ExampleImageIngestService.java b/Ingest/src/org/sleuthkit/autopsy/ingest/example/ExampleImageIngestService.java new file mode 100644 index 0000000000..f8fdd5086a --- /dev/null +++ b/Ingest/src/org/sleuthkit/autopsy/ingest/example/ExampleImageIngestService.java @@ -0,0 +1,94 @@ +/* + * Autopsy Forensic Browser + * + * Copyright 2011 Basis Technology Corp. + * Contact: carrier sleuthkit org + * + * Licensed 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.sleuthkit.autopsy.ingest.example; + +import java.util.logging.Level; +import java.util.logging.Logger; +import org.sleuthkit.autopsy.ingest.IngestManager; +import org.sleuthkit.autopsy.ingest.IngestMessage; +import org.sleuthkit.autopsy.ingest.IngestMessage.MessageType; +import org.sleuthkit.autopsy.ingest.IngestServiceImage; +import org.sleuthkit.datamodel.Image; + +/** + * Example implementation of an image ingest service + * + */ +public final class ExampleImageIngestService implements IngestServiceImage { + + private static final Logger logger = Logger.getLogger(ExampleImageIngestService.class.getName()); + private static ExampleImageIngestService instance = null; + private IngestManager manager; + + private static int messageId = 0; + + public static synchronized ExampleImageIngestService getDefault() { + if (instance == null) { + instance = new ExampleImageIngestService(); + } + return instance; + } + + @Override + public void process(Image image) { + manager.postMessage(IngestMessage.createMessage(++messageId, MessageType.INFO, this, "Processing " + image.getName())); + + //service specific Image processing code here + try { + Thread.sleep(5000); + } catch (InterruptedException e) { + } + + + } + + @Override + public void complete() { + logger.log(Level.INFO, "complete()"); + manager.postMessage(IngestMessage.createMessage(++messageId, MessageType.INFO, this, "COMPLETE")); + + //service specific cleanup due completion here + } + + @Override + public String getName() { + return "Example Image Service"; + } + + @Override + public void init(IngestManager manager) { + logger.log(Level.INFO, "init()"); + this.manager = manager; + + //service specific initialization here + + } + + @Override + public void stop() { + logger.log(Level.INFO, "stop()"); + + //service specific cleanup due interruption here + } + + @Override + public ServiceType getType() { + return ServiceType.Image; + } +} diff --git a/Ingest/src/org/sleuthkit/autopsy/ingest/layer.xml b/Ingest/src/org/sleuthkit/autopsy/ingest/layer.xml index 4c998edccd..b324999edb 100644 --- a/Ingest/src/org/sleuthkit/autopsy/ingest/layer.xml +++ b/Ingest/src/org/sleuthkit/autopsy/ingest/layer.xml @@ -7,5 +7,18 @@ + +