Skip to topic | Skip to bottom
Home
Search:

Local
Local.ImcDeMirDocur1.7 - 14 Jun 2005 - 23:42 - SkePtopic end
You are here: Local > ImcGermany > ImcDeTechStuff > ImcDeMirDocu

Start of topic | Skip to actions

MiR Dokumentation

Hier soll versucht werden, die Code-Struktur und Funktionsweise von MiR zu dokumentieren...mal sehen ob das was wird, ist mehr ein Versuch. Alle Angaben ohne Gewähr!

Hinweis: Diese Seite ist eine Arbeitsplattform und unterliegt ständigen Änderungen.

Adminbereich

Beim Aufruf von mir/servlet/Mir erscheint das Login für das Admincenter.

Verantwortlich dafuer ist: Mir.java
Dort stehen die Funktionen ect. die beim Aufruf obiger URL ausgewertet werden.

Beim erstmaligen Aufruf ohne weitere Parameter erscheint das Login-Formular. Das nötige Template wird aus der default.properties (oder config.properties) ausgelesen und bereitgestellt. Ebenfalls noch in Mir.java findet dann die Überprüfung der Logindaten statt und man wird bei positiver Berechtigung auf die Startseite des Admincenters weitergeleitet.


Diagramm Verlaufsstruktur

Mir.java (mir/servlet/Mir)
|
|--|-- erstmaliger Aufruf --> Login (Mir.java) --> module=Admin --> ServletModuleAdmin (Admin-Startseite)
|  |-- module="login"     --> Login (Mir.java) --> module=Admin --> ServletModuleAdmin (Admin-Startseite)
|
|-- module=Foobar       --> Übergabe an ServletModuleFoobar


Module (ServletModuleFoobar) - Beschreibung

Auflistung der wichtigsten Funktionen der einzelnen Module. Es werden nur die nach außen sichtbaren Funktionen angesprochen, also die Routinen die direkt aus dem Admincenter heraus aufgerufen werden.

Der Wert für "do" entspricht dem Namen der Subroutine im jeweiligen Modul. Die Weiterleitung auf die entsprechende Subroutine aus dem do-Parameter erfolgt in der ServletModuleDispatch Klasse. Gibt es keinen do-Parameter wird versucht die Funktion defaultAction() im entsprechenden Modul aufzurufen.

Hinweis: Mir.java erbt von verschiedensten anderen Klassen wie AbstractServlet oder ServletModule, daher finden sich in diesen Klassen zum Teil die Routinen welche in den aufgelisteten Modulen als "do" verwendet werden. Die jeweiligen Templates werden entweder im Modul selbst oder in ServletModule.java geladen.

Admin

  • do=start - Anzeige der Startseite vom Admincenter
  • do=superusermenu - Anzeige des Superuser Menüs
  • do=reloadconfiguration - Neuladen der Bundles, Loggins und Producer
  • do=reload - Neuladen der Bundles, Loggins und Producer für Scripte!

Content

  • do=search - Anzeige von Artikeln eines Types
  • do=list - Anzeige von Artikeln mit bestimmten Kriterien
  • do=add - hinzufügen neuer Artikel (Formular)
  • do=edit - editieren von Artikeln (Formular)
  • do=delete - löschen von Artikeln (mir.servlet.ServletModule)
  • do=update - update von Artikeln
  • do=insert - hinzufügen neuer Artikel
  • do=showPreview - Vorschau
  • do=selectparent - Eltern-Artikel für den Artikel festlegen
  • do=listchildren - Kinder des Artikels zeigen
  • do=attach - anhängen von Mediafiles an einen Artikel
  • do=dettach - entfernen von Mediafiles aus einem Artikel

Comment

  • do=search - Anzeige von Kommentaren eines Types
  • do=list - Anzeige von Kommentaren mit bestimmten Kriterien
  • do=articlecomments - Anzeige aller Kommentare eines Artikels
  • do=delete - löschen von Kommentaren
  • do=edit - editieren von Kommentaren (Formular)
  • do=update - update von Kommentaren
  • do=attach - anhängen von Mediafiles an einen Kommentar
  • do=dettach - entfernen von Mediafiles aus einem Kommentar

Hidden

  • do=list - Anzeige aller versteckten Artikel des aktuellen Monats (oder in einem speziellen Monat&Jahr)

FileEdit

  • do=list - Anzeige aller editierbaren Dateien in Verzeichnissen
  • do=edit - editieren einer Datei (Formular)
  • do=enter - wechseln in ein anderes Verzeichnis
  • do=update - update einer Dateien

Breaking

  • do=list - Anzeige der Breaking News (mir.servlet.ServletModule)
  • do=add - hinzufügen von Breaking News (Formular) (mir.servlet.ServletModule)
  • do=edit - editieren von Breaking News (Formular) (mir.servlet.ServletModule)
  • do=update - update von Breaking News (mir.servlet.ServletModule)
  • do=delete - löschen von Breaking News (mir.servlet.ServletModule)

Audio

  • do=list - Anzeige der Audiofiles (mir.servlet.ServletModule)
  • do=add - hinzufügen von Audiofiles (Formular) (mir.servlet.ServletModule)
  • do=edit - editieren von Audiofiles (Formular) (mir.servlet.ServletModule)
  • do=update - update von Audiofiles (mir.servlet.ServletModule)
  • do=delete - löschen von Audiofiles (mir.servlet.ServletModule)

Video

  • do=list - Anzeige der Videofiles (mir.servlet.ServletModule)
  • do=add - hinzufügen von Videofiles (Formular) (mir.servlet.ServletModule)
  • do=edit - editieren von Videofiles (Formular) (mir.servlet.ServletModule)
  • do=update - update von Videofiles (mir.servlet.ServletModule)
  • do=delete - löschen von Videofiles (mir.servlet.ServletModule)

Images

  • do=list - Anzeige der Imagefiles (mir.servlet.ServletModule)
  • do=add - hinzufügen von Imagefiles (Formular) (mir.servlet.ServletModule)
  • do=edit - editieren von Imagefiles (Formular) (mir.servlet.ServletModule)
  • do=update - update von Imagefiles(mir.servlet.ServletModule)
  • do=delete - löschen von Imagefiles (mir.servlet.ServletModule)

OtherMedia

  • do=list - Anzeige der Mediafiles (mir.servlet.ServletModule)
  • do=add - hinzufügen von Mediafiles (Formular) (mir.servlet.ServletModule)
  • do=edit - editieren von Mediafiles (Formular) (mir.servlet.ServletModule)
  • do=update - update von Mediafiles (mir.servlet.ServletModule)
  • do=delete - löschen von Mediafiles (mir.servlet.ServletModule)

Mediafolder

  • do=list - Anzeige der Mediafolder (mir.servlet.ServletModule)
  • do=search - Anzeige von bestimmten Mediafolder (mir.servlet.ServletModule)
  • do=add - hinzufügen von Mediafolder (Formular) (mir.servlet.ServletModule)
  • do=edit - editieren von Mediafolder (Formular) (mir.servlet.ServletModule)
  • do=update - update von Mediafolder (mir.servlet.ServletModule)
  • do=delete - löschen von Mediafolder (mir.servlet.ServletModule)

Producer

  • do=showProducerQueueStatus - Anzeige der Producer und aktueller Status
  • do=producerecipe - Ausführen von mehrere Producern (z.B. recipe=allnew)
  • do=enqueue - Ausführen eines einzelnen Producers
  • do=cancel - Abbrechen eines laufenden Producer-Prozesses (oder alle)
  • do=produce - Ausführen von Producern (nur für externen Gebrauch, z.B. Cronjobs)

Message

  • do=list - Anzeige der Messages (mir.servlet.ServletModule)
  • do=add - hinzufügen von Messages (Formular) (mir.servlet.ServletModule)
  • do=edit - editieren von Messages (Formular) (mir.servlet.ServletModule)
  • do=update - update von Messages (mir.servlet.ServletModule)
  • do=delete - löschen von Messages (mir.servlet.ServletModule)

Topics

  • do=list - Anzeige von Topics (mir.servlet.ServletModule)
  • do=add - hinzufügen von Topics (Formular) (mir.servlet.ServletModule)
  • do=edit - editieren von Topics (Formular) (mir.servlet.ServletModule)
  • do=update - update von Topics (mir.servlet.ServletModule)
  • do=delete - löschen von Topics (mir.servlet.ServletModule)

ArticleType

  • do=list - Anzeige von Artikeltypen (mir.servlet.ServletModule)
  • do=add - hinzufügen von Artikeltypen (Formular) (mir.servlet.ServletModule)
  • do=edit - editieren von Artikeltypen (Formular) (mir.servlet.ServletModule)
  • do=update - update von Artikeltypen (mir.servlet.ServletModule)
  • do=delete - löschen von Artikeltypen (mir.servlet.ServletModule)

MediaType

  • do=list - Anzeige von Mediatypen (mir.servlet.ServletModule)
  • do=add - hinzufügen von Mediatypen (Formular) (mir.servlet.ServletModule)
  • do=edit - editieren von Mediatypen (Formular) (mir.servlet.ServletModule)
  • do=update - update von Mediatypen (mir.servlet.ServletModule)
  • do=delete - löschen von Mediatypen (mir.servlet.ServletModule)

CommentStatus

  • do=list - Anzeige von Kommentarstati (mir.servlet.ServletModule)
  • do=add - hinzufügen von Kommentarstati (Formular) (mir.servlet.ServletModule)
  • do=edit - editieren von Kommentarstati (Formular) (mir.servlet.ServletModule)
  • do=update - update von Kommentarstati (mir.servlet.ServletModule)
  • do=delete - löschen von Kommentarstati (mir.servlet.ServletModule)

Users

  • do=list - Anzeige der MiR-User
  • do=add - hinzufügen von MiR-Usern (Formular)
  • do=edit - editieren von MiR-Usern (Formular)
  • do=update - update von MiR-Usern
  • do=delete - löschen von MiR-Usern
  • do=changepassword - ändern vom MiR-User Passwort (Formular)
  • do=updatepassword - update vom MiR-User Passwort

Language

  • do=list - Anzeige der Sprachen (mir.servlet.ServletModule)
  • do=add - hinzufügen von Sprachen (Formular) (mir.servlet.ServletModule)
  • do=edit - editieren von Sprachen (Formular) (mir.servlet.ServletModule)
  • do=update - update von Sprachen (mir.servlet.ServletModule)
  • do=delete - löschen von Sprachen (mir.servlet.ServletModule)

Abuse

  • do=showsettings - Anzeige des Abuse-Menüs (default)
  • do=showlog - IP-Liste zeigen
  • do=showfilterconfiguration - Anzeige der Filterkonfiguration
  • do=movefiltergroupup - Filtergruppe nach oben schieben
  • do=movefiltergroupdown - Filtergruppe nach unten schieben
  • do=listfilters - Filter einer Filtergruppe anzeigen
  • do=addfiltergroup - Hinzufügen einer Filtergruppe (Formular)
  • do=updatefiltergroup - Updaten einer Filtergruppe
  • do=deletefiltergroup - Löschen einer Filtergruppe
  • do=addfilter - einzelnen Filter einer Filtergruppe hinzufügen (Formular)
  • do=editfilter - einzelnen Filter einer Filtergruppe editieren (Formular)
  • do=updatefilter - einzelnen Filter einer Filtergruppe updaten
  • do=deletefilter - einzelnen Filter einer Filtergruppe löschen
  • do=movefilterup - einzelnen Filter einer Filtergruppe ein Feld nach oben schieben
  • do=movefilterdown - einzelnen Filter einer Filtergruppe ein Feld nach unten schieben
  • do=movefiltertop - einzelnen Filter einer Filtergruppe ganz nach oben schieben
  • do=movefilterbottom - einzelnen Filter einer Filtergruppe ganz nach unten schieben

to top

OpenPostingbereich

Beim Aufruf von mir/servlet/OpenMir erscheint das Postingformular.

Verantwortlich dafuer ist: OpenMir.java

Beim erstmaligen Aufruf ohne weitere Parameter erscheint das Formular zum posten von Artikeln.

Der Wert für "do" entspricht dem Namen der Subroutine im jeweiligen Modul. Die Weiterleitung auf die entsprechende Subroutine aus dem do-Parameter erfolgt in der ServletModuleDispatch Klasse. Gibt es keinen do-Parameter wird versucht die Funktion defaultAction() im entsprechenden Modul aufzurufen.


Diagramm Verlaufsstruktur

OpenMir.java (mir/servlet/OpenMir)
|
|-- erstmaliger Aufruf --> Postingforumular (ServletModuleOpenIndy.java)


ServletModuleOpenIndy

Bei Initialisierung werden alle nötigen Templates des Openpostingbereichs geladen (Artikel, Kommentare, Suche, Email). Ebenfalls werden die Klassen ModuleComment und ModuleContent in Objekte geladen.

Default-Routine ist defaultAction() und ruft ihrerseits die Funktion opensession() (mit openpostings()) auf. Davon ausgehend wird über die Routine localizer() der MirGlobal.java Klasse die Routine openpostings() der Klasse MirBasicLocalizer (extends MirLocalizer) aufgerufen die das OpenPostingSession-Objekt zurückgibt...usw. ect. pp.

Danach wird mit dem Aufruf der MirBasicPostingSessionHandler Funktion handler.processRequest(request, session, response); von ServletModuleOpenIndy aus (mittels des OpenPostingSession-Objekts) überpüft ob das OpenPosting-Formular gesperrt ist oder nicht. Falls nicht, werden die FreeMarker Templates (oder so) aus der default.properties bzw. config.properties geladen: freemarker(etc/open/)

to top

Benutzte Standard-Java Klassen

multex

  • multex.Failure;
  • multex.Exc;

javax

  • javax.servlet.ServletConfig;
  • javax.servlet.ServletException;
  • javax.servlet.UnavailableException;
  • javax.servlet.ServletContext;

  • java.servlet.http
  • javax.servlet.http.HttpServlet;
  • javax.servlet.http.HttpServletRequest;
  • javax.servlet.http.HttpServletResponse;
  • javax.servlet.http.HttpSession;

  • javax.media.jai
  • javax.media.jai.ImageLayout;
  • javax.media.jai.InterpolationBilinear;
  • javax.media.jai.JAI;
  • javax.media.jai.ParameterBlockJAI;

java.io

  • java.io.IOException;
  • java.io.PrintWriter;
  • java.io.StringWriter;
  • java.io.IOException;
  • java.io.File;
  • java.io.FileInputStream;
  • java.io.FileOutputStream;
  • java.io.Reader;
  • java.io.BufferedInputStream;
  • java.io.BufferedOutputStream;
  • java.io.FileNotFoundException;
  • java.io.InputStream;
  • java.io.OutputStream;
  • java.io.InputStreamReader;
  • java.io.ByteArrayOutputStream;

java.lang.reflect

  • java.lang.reflect.Method;
  • java.lang.reflect.InvocationTargetException;

java.util

  • java.util.HashMap;
  • java.util.List;
  • java.util.Map;
  • java.util.ArrayList;
  • java.util.Arrays;
  • java.util.Iterator;
  • java.util.Properties;
  • java.util.Set;
  • java.util.Date;
  • java.util.AbstractList;
  • java.util.Collections;
  • java.util.Calendar;
  • java.util.GregorianCalendar;
  • java.util.TimeZone;
  • java.util.Locale;

org.apache

  • org.apache.commons
  • org.apache.commons.collections.ExtendedProperties;
  • org.apache.commons.beanutils.MethodUtils;
  • org.apache.commons.beanutils.PropertyUtils;
  • org.apache.commons.fileupload.FileItem;
  • org.apache.commons.dbcp.DelegatingConnection;

  • org.apache.fop
  • org.apache.fop.apps.Driver;
  • org.apache.fop.apps.InputHandler;
  • org.apache.fop.apps.XSLTInputHandler;

  • org.apache.log
  • org.apache.log.Hierarchy;
  • org.apache.log.Logger;
  • org.apache.log.Priority;

  • org.apache.velocity
  • org.apache.velocity.Template;
  • org.apache.velocity.app.VelocityEngine;
  • org.apache.velocity.context.Context;
  • org.apache.velocity.exception.ParseErrorException;
  • org.apache.velocity.exception.ResourceNotFoundException;
  • org.apache.velocity.runtime.RuntimeServices;
  • org.apache.velocity.runtime.log.LogSystem;

java.sql

  • java.sql.ResultSet;
  • java.sql.SQLException;
  • java.sql.Connection;

freemarker

  • freemarker.template.FileTemplateCache;
  • freemarker.template.SimpleScalar;
  • freemarker.template.Template;
  • freemarker.template.TemplateHashModel;
  • freemarker.template.TemplateListModel;
  • freemarker.template.TemplateMethodModel;
  • freemarker.template.TemplateModel;
  • freemarker.template.TemplateModelException;
  • freemarker.template.TemplateModelRoot;
  • freemarker.template.TemplateScalarModel;

java.awt

  • ava.awt.*

  • java.awt.image
  • java.awt.image.ColorModel
  • java.awt.image.DataBuffer
  • java.awt.image.PixelInterleavedSampleModel
  • java.awt.image.RenderedImage

com.sun

  • com.sun.media.jai.codec.ByteArraySeekableStream;
  • com.sun.media.jai.codec.FileSeekableStream;
  • com.sun.media.jai.codec.SeekableStream;

org.xml.sax

  • org.xml.sax.XMLReader;

gnu.regexp

  • gnu.regexp.RE;
  • gnu.regexp.REException;

java.text

  • java.text.NumberFormat;
  • java.text.ParseException;
  • java.text.SimpleDateFormat;

org.postgresql

  • org.postgresql.PGConnection;
  • org.postgresql.largeobject.LargeObject;
  • org.postgresql.largeobject.LargeObjectManager;

to top

Datenbank (Klassen & Schemata)

Die postgresql Datenbank wird über die Klasse DatabaseEngine.java angesprochen. Dort wird die Verbindung hergestellt und ein Datenbankobjekt zurückgegeben. Die benötigten Zugangsdaten werden zuvor aus config.properties ausgelesen. Aufgerufen wird die DatabaseEngine-Klasse von MirGlobal.java und AbstractServlet.java.

Datenbankabfragen werden durch die Klasse Database.java erledigt. Dort finden sich alle Funktionen zum auslesen von Tabellen, updaten, hinzufügen von Einträgen ect..

to top

Freemarker

to top
to top


You are here: Local > ImcGermany > ImcDeTechStuff > ImcDeMirDocu

to top

Copyright © 1999-2008 by the contributing authors.
All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding this tool? Send feedback (in English, Francais, Deutsch or Dutch).