package elte.java2_utikalauz5.rmi; import java.io.*; import java.rmi.*; import java.rmi.activation.*; /** Aktiválható naplózó osztály. Használatakor ne feledjünk el a következő jogokat megadni!
grant signedBy "utikalauz" { permission java.security.AllPermission; };@link.forrásfájl {@docRoot}/../data/rmi/src PNaplo.java @link.letöltés {@docRoot}/../data/rmi PNaplo.jar @since Java 2 Útikalauz programozóknak */ public class PNaplo extends Activatable implements NaploInterface { /** Verziószám. */ private final static long serialVersionUID = 15L; private String filenev; // A naplófájl neve BufferedWriter bw = null; // A naplófájl elérése // Az RMI aktivációs rendszere ezt a konstruktort hívja meg, ha // szükség van egy új - korábban bejegyzett - naplózó objektum // létrehozására (aktiválására+exportálására) public PNaplo(ActivationID azon, MarshalledObject adat) throws RemoteException, ClassNotFoundException, java.io.IOException { super(azon, 0); // port=0, azaz bármilyen TCP port jó nekünk // Mi volt a fájlnév, amit kezdeti értékként átadtak nekünk // az aktivációs információk között? filenev = (String)adat.get(); try { boolean app=false; // Hozzáfűzni vagy létrehozni kell? if (new File(filenev).exists()) app=true; // Hozzáfűzünk ... FileWriter fw = new FileWriter(filenev,app); // fájl bw = new BufferedWriter(fw); // bufferelt író létrehozása } catch (IOException e) { System.out.println("Naplófájl nem írható."); System.out.println("Lemezre naplózás szünetel."+e); } } public void naploz(String szoveg) throws java.rmi.RemoteException { // System.out.println(szoveg); // Képernyőre nem naplózunk if (bw != null) { // Ha tudunk, akkor fájlba is try { bw.write(szoveg); bw.newLine(); bw.flush(); // Kiíratjuk a diszkre } catch (IOException e) { System.out.println(">> Naplófájl nem írható. <<"+e); } } } }