OAI Szerver Java implementációjának
 telepítési útmutatója

 A Java OAI szerver Tomcat alá történő telepítéséhez az alábbi lépések szükségesek:

Hozzon létre  az adatbázisszerveren egy adatbázist, vagy használjon egy meglévő adatbázist.

Hozza létre  az adatbázisban a táblákat a megfelelő adatbázisszerverhez a csomagban mellékelt sql script segítségével.
MSSQL-hez: oai.mssql.sql, 
MYSQL-hez: oai.mysql.sql

Hozzon létre egy könyvtárat az alkalmazásnak (context root).

A kontextus-könyvtárban a következő alkönyvtárakat kell létrehozni:
•	WEB-INF
•	WEB-INF/lib
•	WEB-INF/classes
•	WEB-INF/tmp

A WEB-INF/tmp könyvtárba az alkalmazásnak tudnia kell írni.

A WEB-INF/classes könyvtárban a log4j.properties fájlt kell elhelyezni. A fájl következő sorában állíthatjuk be a naplózási szintet:

log4j.rootLogger=DEBUG, A1

Itt a DEBUG kulcsszót kell átírni a kívánt szintre: DEBUG < INFO < WARN < ERROR < FATAL. Működés közben javasoljuk a WARN szint beállítását, a hibakeresés idejére pedig ajánlott a  DEBUG szintre állítani a logolást.

A WEB-INF/lib könyvtárban a következő java archívokat kell elhelyezni:
•	cos.jar
•	dom4j-1.6.1.jar
•	log4j-1.2.11.jar
•	oai.jar

Hozza létre az application serverben a szervlet kontextust. (Tomcat-ben a server.xml).

A WEB-INF könyvtárba kerül a web.xml (a webalkalmazás leírója), és a repository leírója (a csomagban Repository.xml néven). A csomagban található példa web.xml kommenteket is tartalmaz.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
	<!-- FILTERS -->
	<filter>
		<filter-name>loginFilter</filter-name>
		<filter-class>hu.bwu.oai.servlet.LoginFilter</filter-class>
		<init-param>
<!--
Ha nincs bejelentkezve a felhasználó, akkor ide lesz átirányítva a böngésző. Ez a loginServlet elérhetősége.  Ha pl.: a www.oldal.hu host rootjában van az oldal, akkor az érték: /login
-->
			<param-name>loginUrl</param-name>
			<param-value>/login</param-value>
		</init-param>
	</filter>
	<!-- FILTER MAPPING -->
<!--
A loginFilter azokra az oldalakra van beállítva, amelyeket csak jelszóval lehet elérni. 
-->
	<filter-mapping>
		<filter-name>loginFilter</filter-name>
		<url-pattern>/conf</url-pattern>
	</filter-mapping>
	<filter-mapping>
		<filter-name>loginFilter</filter-name>
		<url-pattern>/config_up.jsp</url-pattern>
	</filter-mapping>
	<filter-mapping>
		<filter-name>loginFilter</filter-name>
		<url-pattern>/config.jsp</url-pattern>
	</filter-mapping>
	<!-- SERVLETS -->
<!--
A repository szervlet.
Egyetlen paramétere a repositoryConfig nevű változó, ami az adott repository leíróállományának elérése, a context rootból kiindulva. A paraméternek mindig /-el kell kezdődnie, mert néhány java application szerver nem támogatja a relatív eléréseket.
-->
	<servlet>
		<servlet-name>repository</servlet-name>
		<servlet-class>hu.scriptum.oai.server.servlets.RepositoryServlet</servlet-class>
		<init-param>
			<param-name>repositoryConfig</param-name>
			<param-value>/WEB-INF/Repository.xml</param-value>
		</init-param>
		<load-on-startup>1</load-on-startup>
	</servlet>
<!--
A manager szervlet.
Paraméterei: repositoryConfig, ami a repository leírójának elérése.
 rulesetFile, a ruleset file elérése.
-->
	<servlet>
		<servlet-name>manager</servlet-name>
		<servlet-class>hu.bwu.oai.servlet.LocalManagerServlet</servlet-class>
		<init-param>
			<param-name>repositoryConfig</param-name>
			<param-value>/WEB-INF/Repository.xml</param-value>
		</init-param>
		<init-param>
			<!-- A ruleset file helye. -->
			<param-name>rulesetFile</param-name>
			<param-value>/WEB-INF/Ruleset.xml</param-value>
		</init-param>
		<load-on-startup>2</load-on-startup>
	</servlet>
<!--
A konfiguráció szervlet.
Paraméterei: repositoryConfig (ld.: feljebb).
  rulesetFile (ld.: feljebb).
  configJsp: a config.jsp URL-jének path-ja. (Ha a www.oldal.hu/xxx/config.jsp címen érhető el, akkor ez az érték: /xxx/config.jsp)
 tmpDir: egy könyvtár, az operációs rendszer file elnevezési szabályai szerint kitöltve. (Windows alatt pl.: C:\tomcat\context\WEB-INF\tmp\)
-->
	<servlet>
		<servlet-name>configEditor</servlet-name>
		<servlet-class>hu.bwu.oai.servlet.ConfigEditorServlet</servlet-class>
		<init-param>
			<param-name>repositoryConfig</param-name>
			<param-value>/WEB-INF/Repository.xml</param-value>
		</init-param>
		<init-param>
			<param-name>configJsp</param-name>
			<param-value>/config.jsp</param-value>
		</init-param>
		<init-param>
			<param-name>tmpDir</param-name>
			<param-value>/home/b/web/public_html/java.oai.bwu.hu/oai-tomcat/WEB-INF/tmp</param-value>
		</init-param>
		<init-param>
			<!-- A ruleset file helye. -->
			<param-name>rulesetFile</param-name>
			<param-value>/WEB-INF/Ruleset.xml</param-value>
		</init-param>
		<init-param>
			<!-- A ruleset file helye. -->
			<param-name>rulesetJsp</param-name>
			<param-value>/rulez.jsp</param-value>
		</init-param>
		<load-on-startup>1</load-on-startup>
	</servlet>
	<!-- SERVLET MAPPINGS -->
<!--
A szervletek elérése a kontext rooton belül.
Pl.: ha a kontextus, a www.oldal.as/whatever/ címen érhető el, akkor a www.oldal.as/whatever/login oldalon elérhető login servlet url-pattern paramétere: /login.
Ha a kontextus a host rootján érhető el (www.oldal.as), de továbbra is szeretnénk a login servletet az előbbi címen elérni, akkor az url-pattern, a ’/whatever/login’ értékre változik.
-->
	<servlet-mapping>
		<servlet-name>repository</servlet-name>
		<url-pattern>/oai</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
		<servlet-name>manager</servlet-name>
		<url-pattern>/man</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
		<servlet-name>configEditor</servlet-name>
		<url-pattern>/conf</url-pattern>
	</servlet-mapping>
</web-app>	

-	A [host]/config_up.jsp címen feltöltjük, a központilag kiosztott konfigurációs csonkot, a következő oldalon konfiguráljuk a szerver számára szükséges többi adatot.

-	A konfigurációs oldalon elvégzendő beállítások:

o	SQL szerver kapcsolatban beállítandó mezők:
Típus, ennek az értéke mindig:     
hu.scriptum.oai.server.jdbc.JdbcRepositoryDataProvider

JDBC Driver osztály, ennek értéke, az adatbázis típusától függ, pl:
Microsoft SQL esetén: net.sourceforge.jtds.jdbc.Driver
MySQL esetén: com.mysql.jdbc.Driver
Postgeresql esetén: org.postgresql.Driver
HSQLDB esetén: org.hsqldb.jdbcDriver

URL más néven Connection String, mindig az adatbázis kapcsolatért felelős meghajtó típusától függ, pl:
Microsoft SQL esetén, a formátuma: jdbc:jtds:<server_type>://<server>[:<port>][/<database>][;<property>=<value>[;...]]
pl: jdbc:jtds: sqlserver://localhost/oaidb
részletesebb információk: http://jtds.sourceforge.net/faq.html
  
MySQL esetén a formátuma: jdbc:mysql://[host][,failoverhost...][:port]/[database][?propertyName1][=propertyValue1][&propertyName2][=propertyValue2]...
pl.: jdbc:mysql://localhost/oaidb?autoReconnect=true&useUnicode=true&characterEncoding=ISO8859_2
részletesebb információk: http://dev.mysql.com/doc/connector/j/en/cj-configuration-properties.html
  
 Postgresql esetén formátuma: 
  jdbc:postgresql:database
  jdbc:postgresql://host/database
  jdbc:postgresql://host:port/database
  pl.: jdbc:postgresql://localhost/oaidb

További  információ: http://jdbc.postgresql.org/documentation/81/connect.html

HSQLDB esetén, formátuma: jdbc:hsqldb:file:[path to dir]
Részletesebb információk: http://hsqldb.org/doc/guide/ch01.html
pl.: jdbc:hsqldb:file:/var/db/oaidb

Username, Password: az adatbázishoz hozzáférni képes felhasználó neve és jelszava. MSSQL esetén lehetőség van NT Authentication használatára. Ehhez, a mellékelt csomagban található “ntlmauth.dll” file-t egy java library könyvtárba kell másolni (pl.: windows/system32, vagy [java root]/bin). A felhasználónév/jelszó párost ez esetben üresen lehet hagyni, ekkor az alkalmazás, az adatbázishoz, annak a felhasználónak a nevében próbál csatlakozni, amelyik a java alkalmazásszervert futtatja.

o	Beállítások /Azonosítás:
Resumption méret: itt állíthatja be, hogy az OAI szerver hány elemenként adja át a Harvesternek az adatokat.
Resumption elévülés: órában megadva (pl.: 1.5 = 1 óra 30 perc), itt állíthatja be, mennyi ideig tarthat egy harvest.

o	IP biztonság:
A program részei által a kapcsolódásnál elfogadott címek.
Ha nem állítunk be az IP biztonságnál IP címet, akkor bármely címről elérhető a szolgáltatás.

o	Távoli hozzáférés: 
Valamilyen felhasználó és jelszó párost szükséges beállítani, mert különben a metadat-szerkesztő nem működik.

Konfigurációhoz szükséges alapértelmezett felhasználónév, illetve jelszó a következő:
Felhasználónév: htrw
Jelszó: qwerty