Göran Lindqvist 070-5577734 2013-04-29 1.0 1 (38) Designdokument för eard SIP-Generator 2013-04-29
Göran Lindqvist 070-5577734 2013-04-29 1.0 2 (38) Innehåll 1. Introduktion...3 1.1 Syfte...3 1.2 mål...3 1.3 Teknologi...3 1.4 Begränsningar...4 2. Beskrivning...4 2.1 eard SIP-Generator...4 2.2 Paketstruktur...5 2.3 METS API...5 2.4 Klasser...5 2.4.1 eard SIP datastruktur...5 2.4.2 eard prime grafisk datastruktur...7 2.5 Flöde...8 2.6 Grafiska gränssnitt...9 2.6.1 Startsida...9 2.6.2 Inmatning manuell information...10 2.6.3 Kontroll av inmatade värden...11 2.6.4 Uppladdning av filer...12 2.6.5 Skapa paket...13 2.7 Användarflöde...14 3. Testning...15 3.1 integrationstest...15 4. Slutsats...15 Bilaga 1. DROID...16 Bilaga 2. Mets...17 Bilaga 3. Klasser...19 Bilaga 4. Grafiskt användargränssnitt...37
Göran Lindqvist 070-5577734 2013-04-29 1.0 3 (38) 1. Introduktion Ett e-arkiv skall ha funktioner och metoder för att ta emot och hantera digitalt material som levereras till arkivet. Detta bör i möjligaste mån ske i en automatisk process där levererat material kommer in på ett strukturerat och standardiserat sätt. För att skapa struktur på ett inleveranspaket har Förvaltningsgemensamma Specifikationer (FGS) för paketstruktur för e- arkiv 1 tagits fram. Detta för att stödja en inleverans till ett e-arkiv samt utbyte av digital information mellan arkiv. 1.1 Syfte Syftet med detta projekt är att utifrån Förvaltningsgemensamma Specifikationer (FGS) skapa en mjukvara (prototyp) som genererar ett inleveranspaket enligt FGS för ett e-arkiv. 1.2 mål ets mål att skapa en mjukvara som stödjer producenten vid skapandet av inleveranspaket enligt FGS. Mjukvaran skall vara semiautomatisk där viss information skall skrivas in av producent samt filer skall bifogas. Information av teknisk natur, såsom exempelvis hashsummor, storlek av fil, MIME-typ skall prototypen automatisk ta fram. Uppladdade filer, metadata samt en generad sip.xml enligt FGS skall sen paketeras till ett inleveranspaket (SIP). Mjukvaran skall fungera som en webb-baserad tjänst med webbgränssnitt som stödjer producenten i inleveransprocessen. 1.3 Teknologi Den mjukvara som skapas kommer att skrivas i språket Java samt en del i SQL. En databas kommer att användas. All utveckling sker på en Ubuntu (Linux) dator. Mjukvara som används är: Netbeans 7.1, är det verktyg som används för att skriva kod. MySQL 5.0, är den databas som används i projektet. GlassFish 3.1.1, är den applikationsserver som används i projektet. Apache Tomcat 7.0. METS API 1.0 kodbibliotek för metsgenerering. DROID 4, är en mjukvara som användas för filanalays. Md5deep, används för att generera hashsummor. Api Apache Commons Compress för paketering av filer. PrimeFaces för generering av grafiskt gränsnitt. Junits, har används skapa tester för mjukvaran under utvecklingen. 1 http://www.riksarkivet.se/sve/dokumentarkiv/filer/fgs_earkiv_paket.pdf
Göran Lindqvist 070-5577734 2013-04-29 1.0 4 (38) 1.4 Begränsningar Då mjukvaran är en prototyp så kommer det att finnas begränsningar i felhanteringen och grafisk design samt mjukvaran är inte optimerad för stora mängder data. 2. Beskrivning Utifrån tidigare förkunskaper från projektet CAST 2 där en webb-baserad tjänst för webbarkivering skapades ser man en naturlig koppling till detta delprojekt i eard. Det tankesätt som användes samt en del av de lösningar som är prövade i detta projekt kommer till användning i eard SIP lösningen. 2.1 eard SIP-Generator Är en tjänst som körs på en server med grafiska gränssnitt (GUI) som nås via webbläsare. Man laddar upp via GUI:et exempelvis: Filer som innehåller data, de filer som skall arkiveras. Man skickar med metadata om de uppladdade objekten. Man fyller i den metadatainformation som krävs utöver det som levererades i metadatafilerna via det grafiska webb gränssnittet. Bild1: Övergripande bild på eard SIP-Generator. 2 http://www.ltu.se/centres/centrum-for-langsiktigt-digitalt-bevarande-ldb/vara-projekt/cast
Göran Lindqvist 070-5577734 2013-04-29 1.0 5 (38) Mjukvaran gör därefter filanalys 3, skapar SIP.xml 4 samt paketerar ihop levererande filer till ett TAR-paket. Fördelarna med detta är att genom att ha mjukvaran på ett ställe underlättar det underhållet såsom buggfixar, periodiska uppdateringar av filer som används av filanalysverktyget. Man har bättre kontroll av version av mjukvara då den endast finns på ett ställe, men nås av flera användare. Detta löser också de eventuella problem man har med gammal mjukvara ute hos användare som inte är uppdaterad, problem med installation med mera. 2.2 Paketstruktur Fysisk paketstruktur på disk består av katalogerna; content, metadata samt system i enlighet med FGS paketstruktur för SIP (bild2). Bild2: Katalogstruktur för inleveranspaket. Paketstrukturen med uppladdat innehåll samt automatiskt genererad METS som läggs på rotnivå hålls sedan ihop i ett tar paket, alternativt ett zip paket. 2.3 METS API För genering av METS-fil har kodbibliotek Mets API 1.0 används från The Australian National Universitet 5 (ANU). En del koden i API:et har skrivits om för att anpassas mot FGS paketstruktur för e-arkiv. 2.4 Klasser eard SIP-Generator består av två stycken moduler, eard sip som är logisk struktur för analys, paketering och generering av mets samt eard prime, logisk struktur för kommunikation mellan användare och server. 2.4.1 eard SIP datastruktur eard SIP-Generators bakomvarande datastruktur består totalt av 11 stycken klasser med följande metoder: 3 Se bilaga 1 4 Se bilaga 2 5 http://www.anu.edu.au/
Göran Lindqvist 070-5577734 2013-04-29 1.0 6 (38) EARDsip o Main o hashandpath AnalyzeFiles o setpathcatalog o setdroidlist o createfilelistfordroid o createfilelist Common o deletefile o dateandtime Droid o setpathconfig o setdroidoutputxml o droidoutputxmltodb o tagvalue HashSum o setcatalog o setoutfilel o setalgoritm o createhashsum o createhashsumforfile o generateuid o generatefileuid StartDroid o Main DataBase o setpathconfig o writetometsdb o writetopaketinfodb o writetodroidinfodb o setdbforrs o getdataformets o setclosedbforrs o trunctable o getnroffiles FileValues o getfilename o getmimevalue o getfileversion o getmb o createmefiles o filedata o mimetypes
Göran Lindqvist 070-5577734 2013-04-29 1.0 7 (38) ReadWriteXml o writeconfigfile o readconfigfile o writetoxmltagorattribbyidx o writetoxmlfile MetsCreator o setpathtometsfile o metsforwebb CreateTarFiles o setpathtarball o setinputfilecatalog o tarfiles Mer information om klasserna i eard SIP finns i bilaga 3. 2.4.2 eard prime grafisk datastruktur Det grafiska gränssnittet består av 4 stycken paket som innehåller totalt 14 stycken klasser för att hantera grafiskt gränssnitt och kommunikation mellan användare och bakomvarande automatiska processer. Bilaga 4 presenterar paket samt klasser.
Göran Lindqvist 070-5577734 2013-04-29 1.0 8 (38) 2.5 Flöde Bilderna nedan visar på kommunikation mellan de olika klasserna i mjukvaran. Flöde 1 (bild 3) visar på flödet från filer laddas upp och den analys som sker. Information laddas sedan upp i skapad databas. User GUI EARDsip ReadWriteXml AnalyzeFiles HashSum FileValues DataBase Common StartDroid Droid DROID 4 upload Input info start start write UUID read Catalog read hashfile path read HashType gen UUID UUID calc Hashsum read hashfile read Catalog read Inputfile read DROID path read Inputfile read Signfile path read Outputfile read Outputfile set Catalog set Inputfile create Droidlist gen FileUID fileuid Filename Mime Mb Date-Time write UUID write FileUID write Hashsum write Date-Time write Mime write Mb write Filename write Filepath Clean Start (DROID path, Inputfile,Signfile path, Outputfile ) Clean pathconfig pathoutputfile run Bild 3: Visar flöde från användarinteraktion till inläsning av information i databas. write UUID write Filepath write Status write Name write Version write PUID write Mime write IdWarning run finish Flöde nedan (bild 4) visar generering av Mets samt skapande av tarpaket, är en fortsättning av ovanstående flöde. Bild 4: Visar flöde från generering av METS till leverans av paket till användare. Bild 4 är förenklad då API METS flödet ej presenteras.
Göran Lindqvist 070-5577734 2013-04-29 1.0 9 (38) 2.6 Grafiska gränssnitt Som grafiskt gränsnitt används Primefaces 6 som är ett kodbibliotek. Primefaces skall göra det enklare att koppla ihop de olika lagren mot ett grafiskt webbgränsnitt. Biblioteket innehåller ett antal komponenter för att förenkla grafisk programmering, en del av dessa används i detta projekt. eard SIP-Generators första beta GUI presenteras här nedan. 2.6.1 Startsida Bild 5: Startsida. Detta är startsidan version 1 för eard SIP-Generator bild 5. Det är ett test-gui som används för utveckling samt betatestning av hela mjukvaran. Förslag till ett bättre GUI, en version 2 är under utveckling. 6 http://primefaces.org/
Göran Lindqvist 070-5577734 2013-04-29 1.0 10 2.6.2 Inmatning manuell information Bild 6: Inmatningsfönster för användare. Bild 6 visar den information som skall matas in av användare. Informationen lagras i en tabell som sedan används för att fylla i Mets-dokumentets taggar, mets:mets samt mets:metshdr, se vidare bilaga 2.
Göran Lindqvist 070-5577734 2013-04-29 1.0 11 2.6.3 Kontroll av inmatade värden Bild 7: Kontrollfönster. Efter att spara post i databas får man upp en kontrollsida där man kan granska inmatade värden och eventuellt redigera dem innan man går vidare till att ladda upp filer.
Göran Lindqvist 070-5577734 2013-04-29 1.0 12 2.6.4 Uppladdning av filer Bild 8: Uppladdningsfönster för filer. Detta fönster (bild 8) visar uppladdning av content, metadata samt systemfiler. Filer som är produkten från ett uttag från någon av de underliggande leveranstyper såsom: Ärende- och dokumethantering Personal Ekonomi Webbplatser och intranät
Göran Lindqvist 070-5577734 2013-04-29 1.0 13 2.6.5 Skapa paket bild 9: Sida för generering av SIP. Efter att fyllt i persondata och manuell information samt laddat upp filer så genereras eard SIP via GUI (bild9) ovan. Ett tryck på knappen skapa paket startar paketprocessen. Efter ett tag fås en länk till genererat paket i url till paket. Användaren kopierar länken in i en ny flik i webbläsaren och paketet börjar laddas ner via webbläsaren. Programmet avslutas sedan genom att Gå tillbaka till huvudmeny.
Göran Lindqvist 070-5577734 2013-04-29 1.0 14 2.7 Användarflöde Det grafiska flödesschemat nedan (bild 10) visar de olika alternativa flöden som finns för en användare i det grafiska gränssnittet som ingår i eard SIP-Generator som presenteras i 2.6.1 till 2.6.5. bild 10: Visar på de olika flöden som finns i det grafiska gränssnittet.
Göran Lindqvist 070-5577734 2013-04-29 1.0 15 3. Testning Under konstruktion av eard SIP-Generator har varje delkomponent testas, tester som huvudsak har varit funktionstester. Det vill säga att komponenten fungerar, gör logiskt det den är skriven att göra. När hela projektet och dess komponenter sattes ihop gjordes också en del funktionstester för att se att det tänkta övergripande flödet fungerade. De eventuella logiska fel som upptäckts i komponenter har rättats till. 3.1 integrationstest eard SIP-Generator har satts upp tillfälligt på en utgående server som nås via webben. Systemet körs via en Dell 4-kärnig processor på vardera 3 GHz med primärminne på 8 GB. Mjukvaran är Ubuntu 10.04 LTS 64 bitar. Följande tester har gjorts på eard SIP-Generator: Systemkompabilitet mot olika webbläsare (Google Chrome, Mozilla Firefox och Internet Explorer) Val och test av olika hashsummor(sha1, MD5) Enkel stresstest med ca 50 filer med total storlek av 100 MB Större mängd data testad och överförd, 12 filer med total storlek av 868 MB 4. Slutsats Mjukvaran eard SIP-Generator uppfyller projektets mål, en semiautomatisk mjukvara där användare har stöd i sitt skapande av en SIP enligt FGS på ett enkelt sätt. Fördelen med en webbaserad lösning som är en del i detta projekt är att man har mjukvaran i ett exemplar, vilket förenklar underhållet. Den går också att köra på sitt egna intranät, vilket har provats under utvecklingsfasen. Då detta är en prototyp så finns det potential utveckla den, speciellt det grafiska gränssnittet mot användaren. Även finns det möjligheter att utveckla databasen så att den kan lagra olika användare. Då skulle varje användare ha exempelvis ett ID som håller informationen om en personen/myndigheten. Vidare finns det möjlighet i mjukvaran att skräddarsy olika METS-profiler. eard SIP-Generator är nu endast kompatibel med Linux men går att relativt lätt konvertera till Windowsmiljö om så önskas.
Göran Lindqvist 070-5577734 2013-04-29 1.0 16 Bilaga 1. DROID Utklipp på vad DROID levererar ut efter en filanalys. Taggar markerat gröna (innanför ruta) nedan visar vilken information som finns tillgänglig från en analyserad fil för inmatning i mets struktur (sip.xml). <?xml version="1.0" encoding="utf-8"?> <FileCollection xmlns="http://www.nationalarchives.gov.uk/pronom/filecollection"> <DROIDVersion>4.0</DROIDVersion> <SignatureFileVersion>66</SignatureFileVersion> <DateCreated>2013-01-15T09:06:39</DateCreated> <IdentificationFile IdentQuality="Positive" > <FilePath>/home/goran/testfiler/content/TESTFIL_Wave.wav</FilePath> <FileFormatHit> <Status>Positive (Specific Format)</Status> <Name>Waveform Audio (PCMWAVEFORMAT)</Name> <PUID>fmt/141</PUID> <MimeType>audio/x-wav</MimeType> </FileFormatHit> </IdentificationFile> <IdentificationFile IdentQuality="Positive" > <FilePath>/home/goran/testfiler/content/AlbumArt_Large.jpg</FilePath> <FileFormatHit> <Status>Positive (Specific Format)</Status> <Name>JPEG File Interchange Format</Name> <Version>1.01</Version> <PUID>fmt/43</PUID> <MimeType>image/jpeg</MimeType> </FileFormatHit> </IdentificationFile> <IdentificationFile IdentQuality="Positive" >
Göran Lindqvist 070-5577734 2013-04-29 1.0 17 Bilaga 2. Mets En test av eard sip mjukvaran har gjorts. Två filer, en JPEG2000 samt en GIF fil har används som testmaterial. Nedanstående metsfil genererades av mjukvaran: <?xml version="1.0" encoding="utf-8"?> - <mets:mets xmlns:mets="http://www.loc.gov/mets/" ID="ID124-45-32-1" LABEL="En testinmatning från DB" OBJID="UUID:ID345-345-321-789-1" PROFILE="http//xml.ra.se/METS/RA_METS_eARD.xml" TYPE="SIP" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/xmlschemainstance" xsi:schemalocation="http://www.loc.gov/mets/ http://xml.ra.se/mets/ra_mets_eard.xsd"> - <mets:metshdr CREATEDATE="2013-02-28T09:20:18Z" LASTMODDATE="2013-02-28T09:20:18Z"> - <mets:agent ROLE="CREATOR" TYPE="ORGANIZATION"> <mets:name>myndigheten för test</mets:name> </mets:agent> - <mets:agent ROLE="CREATOR" TYPE="INDIVIDUAL"> <mets:name>db Testman</mets:name> <mets:note>070-23571113</mets:note> <mets:note>testman@gmail.com</mets:note> </mets:agent> - <mets:agent OTHERTYPE="SOFTWARE" ROLE="CREATOR" TYPE="OTHER"> <mets:name>eard prototyp</mets:name> </mets:agent> - <mets:agent ROLE="ARCHIVIST" TYPE="ORGANIZATION"> <mets:name>ldb-centrum, LTU</mets:name> <mets:note>org:202100-2841</mets:note> </mets:agent> - <mets:agent OTHERTYPE="SOFTWARE" ROLE="ARCHIVIST" TYPE="OTHER"> <mets:name>testfiler från CODA projektet</mets:name> </mets:agent> - <mets:agent ROLE="PRESERVATION" TYPE="ORGANIZATION"> <mets:name>ldb Centrum</mets:name> <mets:note>org:101100-1635</mets:note> </mets:agent> <mets:altrecordid TYPE="DELIVERYTYPE">Div filer</mets:altrecordid> <mets:altrecordid TYPE="DELIVERYSPECIFICATION">Testfiler från CODA år 2006</mets:altRecordID> <mets:altrecordid TYPE="STARTDATE">2013-02-27</mets:altRecordID> <mets:altrecordid TYPE="SUBMISSIONAGREEMENT">Avtal med Mats RA</mets:altRecordID> <mets:metsdocumentid>sip.xml</mets:metsdocumentid> </mets:metshdr> - <mets:filesec> - <mets:filegrp ID="fgrp001" USE="FILES"> - <mets:file CHECKSUM="666b8cce3e72ffb52e0308de3991086b" CHECKSUMTYPE="MD5" CREATED="2013-02-28T09:20:18Z" ID="ID31310-999-98" MIMETYPE="image/jp2" SIZE="1726810" USE="JP2 (JPEG 2000 part 1);none;x-fmt/392"> <mets:flocat LOCTYPE="URL" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="file:content/testfil_jpeg2000_p1.jp2" xlink:type="simple" /> </mets:file>
Göran Lindqvist 070-5577734 2013-04-29 1.0 18 - <mets:file CHECKSUM="091c6e6fcb083a639d6a7443e1c1863c" CHECKSUMTYPE="MD5" CREATED="2013-02-28T09:20:18Z" ID="ID26410-205-19" MIMETYPE="image/jpeg" SIZE="676533" USE="JPEG File Interchange Format;1.01;fmt/43"> <mets:flocat LOCTYPE="URL" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="file:content/albumart_large.jpg " xlink:type="simple" /> </mets:file> </mets:filegrp> </mets:filesec> - <mets:structmap> - <mets:div LABEL="FILES"> <mets:fptr FILEID="ID31310-999-98" /> <mets:fptr FILEID="ID26410-205-19" /> </mets:div> </mets:structmap> </mets:mets>
Göran Lindqvist 070-5577734 2013-04-29 1.0 19 Bilaga 3. Klasser Här presenteras de olika klasserna som ingår i eard SIP mer utförligt. 3.1 Klass EARDsip java.lang.object o eardsip.eardsip public class EARDsip extends java.lang.object Field Summary Fields Modifier and Type Field and Description protected static java.lang.string dbchecksum protected static java.lang.string dbdate protected static java.lang.string dbfileid protected static java.lang.string dbfullpath protected static java.lang.string dbmime protected static java.lang.string dbpaketuid protected static java.lang.string dbsize protected static java.lang.string dbuse protected static java.lang.string dbxlinkpath protected java.lang.string filepath protected static java.lang.string hashsumtype protected static java.lang.string pathconfig Konstructor Summary Constructors Constructor and Description EARDsip() Method Summary Modifier and Type static void Methods Method and Description main(java.lang.string[]args) Methods inherited from class java.lang.object clone, equals, finalize, getclass, hashcode, notify, notifyall, tostring, wait, wait, wait Field Detail hashsumtype protected static java.lang.string hashsumtype filepath
Göran Lindqvist 070-5577734 2013-04-29 1.0 20 protected java.lang.string filepath pathconfig protected static java.lang.string pathconfig dbfullpath protected static java.lang.string dbfullpath dbxlinkpath protected static java.lang.string dbxlinkpath dbchecksum protected static java.lang.string dbchecksum dbmime protected static java.lang.string dbmime dbsize protected static java.lang.string dbsize dbuse protected static java.lang.string dbuse dbdate protected static java.lang.string dbdate dbfileid protected static java.lang.string dbfileid dbpaketuid protected static java.lang.string dbpaketuid Constructor Detail EARDsip public EARDsip() Method Detail main public static void main(java.lang.string[] args) metod som kör övriga klasser
Göran Lindqvist 070-5577734 2013-04-29 1.0 21 3.2 Klass AnalyzeFiles java.lang.object o eardsip.analyzefiles public class AnalyzeFiles extends java.lang.object Field Summary Modifier and Type Fields Field and Description protected static java.lang.string L_droidLista protected static java.lang.string L_pathKatalog Constructor Summary Constructors Constructor and Description AnalyzeFiles() Method Summary Modifier and Type Methods static boolean CreateFileList() void void boolean Method and Description setdroidlist(java.lang.string droidlista) Set the value of string setpathcatalog(java.lang.string pathkatalog) Set the value of string createfilelistfordroid() Methods inherited from class java.lang.object clone, equals, finalize, getclass, hashcode, notify, notifyall, tostring, wait, wait, wait Field Detail L_pathKatalog protected static java.lang.string L_pathKatalog L_droidLista protected static java.lang.string L_droidLista Constructor Detail AnalyzeFiles public AnalyzeFiles()
Göran Lindqvist 070-5577734 2013-04-29 1.0 22 Method Detail setpathcatalog public void setpathcatalog(java.lang.string pathkatalog) Parameters: string - skall peka på katalog som innehåller kataloger content,metadata,system. setdroidlist public void setdroidlist(java.lang.string droidlista) Parameters: string - output för droidlista inkl. filnamnet createfilelistfordroid public boolean createfilelistfordroid() Parameters: Sträng - med sökväg till överliggande katalog med uppackade filer Sträng - till java.lang.object eardsip.analyzefiles där fillista skall skapas. Returns: boolean true/false en fillista av de filer som finns uppackade i en katalog, fillistan används av DROID4. CreateFileList public static boolean CreateFileList() Returns: boolean true/false som skapar en fillista innehållande sökväg till filer
Göran Lindqvist 070-5577734 2013-04-29 1.0 23 3.3 Class Common java.lang.object o eardsip.common public class Common extends java.lang.object Constructor Summary Constructors Constructor and Description Common() Method Summary Modifier and Type Methods java.lang.string dateandtime() boolean Method and Description deletefile(java.lang.string pathtofile) Methods inherited from class java.lang.object clone, equals, finalize, getclass, hashcode, notify, notifyall, tostring, wait, wait, wait Constructor Detail Common public Common() Method Detail deletefile public boolean deletefile(java.lang.string pathtofile). Parameters: Sträng - med sökväg inkl. filnamnet. Returns: boolean true/false given fil. dateandtime public java.lang.string dateandtime(). Returns: String, datumtidstämpel. en datum och tidsstämpel.
Göran Lindqvist 070-5577734 2013-04-29 1.0 24 3.4 Class DataBase java.lang.object o eardsip.database public class DataBase extends java.lang.object Constructor Summary Constructors Constructor and Description DataBase() Method Summary Modifier and Type void boolean boolean boolean boolean METHODS Method and Description setpathconfig(java.lang.string pathconfig) trunctable(java.lang.string tblname) writetodroidinfodb(java.lang.string paketuid, java.lang.string filepath, java.lang.string Status, java.lang.string Name, java.lang.string Version, java.lang.string PUID, java.lang.string mimevalue, java.lang.string idwarning) writetometsdb(java.lang.string paketuid, java.lang.string filuid, java.lang.string filnamn, java.lang.string fildatum, java.lang.string Mime, java.lang.string Version, java.lang.string Byte, java.lang.string hashsum, java.lang.string hashsumtype, java.lang.string filepath) writetopaketinfodb(java.lang.string paketbesk, java.lang.string paketdatum, java.lang.string levorg, java.lang.string kontaktnamn, java.lang.string kontakttele, java.lang.string kontaktmail, java.lang.string sipmjukvara, java.lang.string arkivskaparnamn, java.lang.string arkivskaparorgnr, java.lang.string levsysnamn,
Göran Lindqvist 070-5577734 2013-04-29 1.0 25 java.lang.string bevorgnamn, java.lang.string bevorgid, java.lang.string levtyp, java.lang.string levspec, java.lang.string levdatum, java.lang.string levoverkommelse, java.lang.string dokumentid, java.lang.string paketuid) Methods inherited from class clone, equals, finalize, getclass, hashcode, notify, notifyall, tostring, wait, wait, wait Constructor Detail DataBase public DataBase() Method Detail setpathconfig public void setpathconfig(java.lang.string pathconfig) writetometsdb public boolean writetometsdb(java.lang.string paketuid, java.lang.string filuid, java.lang.string filnamn, java.lang.string fildatum, java.lang.string Mime, java.lang.string Version, java.lang.string Byte, java.lang.string hashsum, java.lang.string hashsumtype, java.lang.string filepath) Returns: boolean true/false metod skriver ner data (tbl:mets) till sip_db DB (mysql). writetopaketinfodb public boolean writetopaketinfodb(java.lang.string paketbesk, java.lang.string paketdatum, java.lang.string levorg, java.lang.string kontaktnamn, java.lang.string kontakttele, java.lang.string kontaktmail, java.lang.string sipmjukvara, java.lang.string arkivskaparnamn, java.lang.string arkivskaparorgnr, java.lang.string levsysnamn, java.lang.string bevorgnamn, java.lang.string bevorgid, java.lang.string levtyp, java.lang.string levspec, java.lang.string levdatum, java.lang.string levoverkommelse, java.lang.string dokumentid, java.lang.string paketuid) Returns: boolean true/false metod skriver ner data (tbl:paketinfo) till sip_db DB (mysql). writetodroidinfodb public boolean writetodroidinfodb(java.lang.string paketuid, java.lang.string filepath, java.lang.string Status, java.lang.string Name, java.lang.string Version, java.lang.string PUID, java.lang.string mimevalue, java.lang.string idwarning) Returns: boolean true/false metod skriver ner data från DROID till sip_db DB (mysql).
Göran Lindqvist 070-5577734 2013-04-29 1.0 26 trunctable public boolean trunctable(java.lang.string tblname) Returns: boolean true/false metod som tömmer tbl i mysql DB.
Göran Lindqvist 070-5577734 2013-04-29 1.0 27 3.5 Class Droid java.lang.object o eardsip.droid public class Droid extends java.lang.object Constructor Summary CONSTRUCTORS Constructor and Description Droid() Method Summary Modifier and Type void void void METHODS droidoutputxmltodb() Method and Description setdroidoutputxml(java.lang.string droidoutputxml) setpathconfig(java.lang.string pathconfig) Methods inherited from class java.lang.object clone, equals, finalize, getclass, hashcode, notify, notifyall, tostring, wait, wait, wait Constructor Detail Droid public Droid() Method Detail setpathconfig public void setpathconfig(java.lang.string pathconfig) sökväg till configfil. setdroidoutputxml public void setdroidoutputxml(java.lang.string droidoutputxml) sökväg till DROID outputfil. droidoutputxmltodb public void droidoutputxmltodb() ut info från xml-fil och gör anrop till metod som skriver, info till DB.
Göran Lindqvist 070-5577734 2013-04-29 1.0 28 3.6 Class FileValues java.lang.object o eardsip.filevalues public class FileValues extends java.lang.object Constructor Summary CONSTRUCTORS Constructor and Description FileValues() Method Summary Modifier and Type boolean boolean java.lang.string getfilename() METHODS Method and Description createmefiles(java.lang.string pathtocatalog) filedata(java.lang.string path) java.lang.string getfileversion() java.lang.string getmb() java.lang.string getmimevalue() Methods inherited from class java.lang.object clone, equals, finalize, getclass, hashcode, notify, notifyall, tostring, wait, wait, wait Constructor Detail FileValues public FileValues() Method Detail getfilename public java.lang.string getfilename() getmimevalue public java.lang.string getmimevalue() getmb public java.lang.string getmb() getfileversion public java.lang.string getfileversion() createmefiles public boolean createmefiles(java.lang.string pathtocatalog) Parameters: Sträng, - pathtocatalog, sökväg till katalog där filer finnes. Returns:
Göran Lindqvist 070-5577734 2013-04-29 1.0 29 boolean, true/false som sätter värden för de ingående filer som skall skrivas i, struktur. filedata public boolean filedata(java.lang.string path) Parameters: Sträng, - path, sökväg till fil. Returns: boolean, true/false som sätter värden för ingående fil, namn mime, mb, AD
Göran Lindqvist 070-5577734 2013-04-29 1.0 30 3.7 Class HashSum java.lang.object o eardsip.hashsum public class HashSum extends java.lang.object Constructor Summary CONSTRUCTORS Constructor and Description HashSum(java.lang.String katalog, java.lang.string sokvag_filnamn) Method Summary Modifier and Type boolean boolean createhashsum() METHODS Method and Description createhashsumforfile(java.lang.string fullsokvag) java.lang.string generatefileuid() java.lang.string generateuid() java.lang.string setalgoritm(java.lang.string valalgoritm) void void setcatalog(java.lang.string skatalog) setoutfile(java.lang.string sutfil) Methods inherited from class java.lang.object clone, equals, finalize, getclass, hashcode, notify, notifyall, tostring, wait, wait, wait Constructor Detail HashSum Public HashSum(java.lang.String katalog, java.lang.string sokvag_filnamn) Parameters: katalog, - string sokvag_filnamn, - string konstruktor Method Detail setcatalog public void setcatalog(java.lang.string skatalog) Parameters: skatalog, - string sokvag_filnamn, - string
Göran Lindqvist 070-5577734 2013-04-29 1.0 31 till katalog setoutfile public void setoutfile(java.lang.string sutfil) Parameters: sutfil, - string sokvag_filnamn, - string till outputfil setalgoritm public java.lang.string setalgoritm(java.lang.string valalgoritm) Parameters: String - md5 alt sha1 en möjlighet att välja MD5 SHA1 createhashsum public boolean createhashsum() Returns: boolean true/false metod som skapar en md5 lista över given katalogs filer createhashsumforfile public boolean createhashsumforfile(java.lang.string fullsokvag) Parameters: fullsokvag, - string som skapar hashsummor för en fil, en textfil med sökväg samt hashsumma (md5 SHA1) generateuid public java.lang.string generateuid() Returns: uid en UUID och skriver ner den i configfilen generatefileuid public java.lang.string generatefileuid() Returns: file_uid en UUID för en fil 3.8 Class ReadWriteXml java.lang.object o eardsip.readwritexml
Göran Lindqvist 070-5577734 2013-04-29 1.0 32 public class ReadWriteXml extends java.lang.object Constructor Summary CONSTRUCTORS Constructor and Description ReadWriteXml() Method Summary Modifier and Type METHODS Method and Description java.lang.string readconfigfile(java.lang.string pathconfigfile, java.lang.string tag) void writeconfigfile(java.lang.string pathconfigfile, java.lang.string tag, java.lang.string value) boolean writetoxmltagorattribbyidx(java.lang.string pathofxmlfile, java.lang.string tag, java.lang.string attr, java.lang.string value, int nodeidx) Methods inherited from class java.lang.object clone, equals, finalize, getclass, hashcode, notify, notifyall, tostring, wait, wait, wait Constructor Detail ReadWriteXml Public ReadWriteXml() Method Detail writeconfigfile Public void writeconfigfile(java.lang.string pathconfigfile, java.lang.string tag, java.lang.string value) Parameters: Sträng, - sökväg till configfil Sträng, - tagnamn dit värde skall skrivas Sträng, - värdet som skall skrivas ner som skriver ner data till xml-configurationsfil readconfigfile Public java.lang.string readconfigfile(java.lang.string pathconfigfile, java.lang.string tag) Parameters: Sträng, - sökväg till configfil Sträng, - taggnamn där data finns att hämta Returns: Sträng, värdet från given tagg ut data ur xml configurationsfil writetoxmltagorattribbyidx public Boolean writetoxmltagorattribbyidx(java.lang.string pathofxmlfile, java.lang.string tag, java.lang.string attr, java.lang.string value, int nodeidx)
Göran Lindqvist 070-5577734 2013-04-29 1.0 33 Parameters: Sträng, - sökväg till configfil. Sträng, - taggnamn. Sträng, - attribut. Sträng, - värde som skall skrivas till attributet. int, - vilken nod i ordningen som skall skrivas till. Returns: boolean, true/false. data till xml configurationsfil, taggar med attribut.
Göran Lindqvist 070-5577734 2013-04-29 1.0 34 3.9 Class StartDroid java.lang.object o eardsip.startdroid public class StartDroid extends java.lang.object Constructor Summary CONSTRUCTORS Constructor and Description StartDroid() Method Summary Modifier and Type static void METHODS Method and Description main(java.lang.string pathdroid, java.lang.string arga, java.lang.string args, java.lang.string argo) Methods inherited from class java.lang.object clone, equals, finalize, getclass, hashcode, notify, notifyall, tostring, wait, wait, wait Constructor Detail StartDroid Public StartDroid() Method Detail main public static void main(java.lang.string pathdroid, java.lang.string arga, java.lang.string args, java.lang.string argo) Metod som startar Droid, fixar problem med start (buggproblem).
Göran Lindqvist 070-5577734 2013-04-29 1.0 35 3.10 Class MetsCreator java.lang.object o eardsip.metscreator public class MetsCreator extends java.lang.object Constructor Summary CONSTRUCTORS Constructor and Description MetsCreator() Method Summary METHODS void void metsforwebb() setpathtometsfile(java.lang.string pathtometsfile) Methods inherited from class java.lang.object clone, equals, finalize, getclass, hashcode, notify, notifyall, tostring, wait, wait, wait Constructor Detail MetsCreator public MetsCreator() Method Detail setpathtometsfile public void setpathtometsfile(java.lang.string pathtometsfile) Parameters: pathtometsfile, - string metsfil ink filnamn. metsforwebb Genererar en metsfil. detta skrivs ner i DB.
Göran Lindqvist 070-5577734 2013-04-29 1.0 36 3.11 Class CreateTarFile java.lang.object o eardsip.createtarfile public class CreateTarFile extends java.lang.object Constructor Summary CONSTRUCTORS Constructor and Description CreateTarFile() Method Summary Modifier and Type void void void METHODS Method and Description setinputfilecatalog(java.lang.string inputfilecatalog) setpathtarball(java.lang.string pathtarball, java.lang.string tarfilename) tarfiles() Methods inherited from class java.lang.object clone, equals, finalize, getclass, hashcode, notify, notifyall, tostring, wait, wait, wait Constructor Detail CreateTarFile public CreateTarFile() Method Detail setpathtarball public void setpathtarball(java.lang.string pathtarball, java.lang.string tarfilename) Parameters: pathtarball setinputfilecatalog
Göran Lindqvist 070-5577734 2013-04-29 1.0 37 Bilaga 4. Grafiskt användargränssnitt 4.1 Packages eardprime 1.0 består av följande paket: PACKAGES 1. Beans 2. Beans.util 3. Com.mycompany.eardprime 4. Servlets 1. PACKAGE BEANS CLASS SUMMARY AbstractFacade<T> DBSessionBean FileUploadController ManuellinfoController ManuellinfoController.ManuellinfoControllerConverter ManuellinfoFacade User UserWizard 2. PACKAGE BEANS.UTIL CLASS SUMMARY JsfUtil PaginationHelper 3. PACKAGE COM.MYCOMPANY.EARDPRIME CLASS SUMMARY Manuellinfo ReadWriteXml 4. PACKAGE SERVLETS CLASS SUMMARY TestBeanServlet TestDB_Servlet
Göran Lindqvist 070-5577734 2013-04-29 1.0 38 4.2 Class Hierarchy Klass hierarkin i eardprime: java.lang.object beans.abstractfacade<t> o beans.manuellinfofacade beans.dbsessionbean beans.fileuploadcontroller (implements java.io.serializable) javax.servlet.genericservlet (implements java.io.serializable, javax.servlet.servlet, javax.servlet.servletconfig) o javax.servlet.http.httpservlet (implements java.io.serializable) servlets.testbeanservlet servlets.testdb_servlet beans.util.jsfutil com.mycompany.eardprime.manuellinfo (implements java.io.serializable) beans.manuellinfocontroller (implements java.io.serializable) beans.manuellinfocontroller.manuellinfocontrollerconverter (implements javax.faces.convert.converter) beans.util.paginationhelper com.mycompany.eardprime.readwritexml beans.user beans.userwizar