Java Main aus Subversion aufrufen / Hook einbinden

TheDuchess

Neues Mitglied
Hi, wir müssen uns grade im Rahmen des Studiums Subversion beibringen und wöchentlich verschiedene Aufgaben lösen. Nach etlichem recherchieren konnte ich auf einen Teil der aktuellen Aufgabe allerdings keine Lösung finden.

„Schreiben Sie einen Hook, der unterbindet, dass die User Lisa und Werner zwischen
18 Uhr abends und 8 Uhr morgens ein commit durchführen können.
Schreiben Sie für diese Funktion ein Java-Klasse mit main-Methode“

Meine Java Programm hab ich in drei Klassen geschrieben, class User, class Zeit und class PrüfeUser. Aber wie packe ich jetzt die einzelnen Klassen oder das ganze Packet in Subversion rein? Wir haben bisher in Programmieren neue Objekte immer in der Mainmethode mit dem new Operator erzeugt, mein Prof sagt jetzt dass das aber keinen Sinn ergibt weil man ja den Code nicht ändern soll. Es soll von außen auf die Klassen zugegriffen werden. Aber jegliche Recherche nach Infos wie man „von außen“ oder „außerhalb“ eine Methode / Klasse aufruft, führt zu Erläuterungen wie man zwar von außerhalb einer Klasse aber aus der Mainmethode aufruft…
Langsam wird die Zeit knapp weil morgen Abend Abgabe ist und ich diesen letzten Unterpunkt immer noch nicht habe. :rtfm:???:L;(

 Es soll über die Kommandozeile vorm Durchführen des commits (Pre-commit-hook“) nach dem Nutzernamen gefragt werden und dann eben dieser Hook geprüft werden.
Vielen Dank schonmal für jede noch so kleine Hilfe und Info,

Sarah


Hier mein Programm:

Java:
package Prüfung;
public class User 
{
  String Name;
  public User (String n) 
  {Name = n;}
    
  @Override
  public String toString()
  {return Name;}

  @Override
  public boolean equals(Object obj)
  {
    if (obj == null)
    {return false;}
    if (obj instanceof String)
    {
      String s = (String)obj;
      return this.Name.equals(s);
     }
     return false;
  }
}

Java:
package Prüfung;
import java.util.GregorianCalendar;
import java.util.Calendar;
public class Zeit 
{
  GregorianCalendar Zeit = new GregorianCalendar();
  int Std = Zeit.get(Calendar.HOUR_OF_DAY);
  int Min = Zeit.get(Calendar.MINUTE);

  public int getStd()
  {return Std;}

  public int getMin()
  {return Min;}
}

Java:
package Prüfung;
public class PrüfeUser 
{
  public static void main(String[] args) 
  {
    User jetzt = new User(Werner);
    Zeit aktuell = new Zeit();
    aktuell.getStd();
    aktuell.getMin();
        
    if (jetzt.equals(Lisa))
    {
      if(aktuell.Std>=18 || aktuell.Std<=8)
      {
         System.out.println(jetzt + „ es ist „ + aktuell.Std +Uhr:+ aktuell.Min +. Keine Berechtigung.);
       return;
       }
     }
        
    if (jetzt.equals(Werner))
    {
      if(aktuell.Std>=18 || aktuell.Std<=8)
      {
         System.out.println(jetzt + „ es ist „ + aktuell.Std +:+aktuell.Min +Uhr. Keine Berechtigung.);
      return;
      }
     }
     System.out.println(jetzt.toString()+": Berechtigter User um "+ aktuell.Std + " Uhr:" + aktuell.Min);    
  }
}
 
N

nillehammer

Gast
Ich kenne mich mit den Hooks bei svn nicht aus. Aber vielleicht helfen Dir ein paar allgemeine Tipps:

Die ganzen Klassen kannst du dir meiner Meinung nach schenken. Schreibe eine statische Hilfsmethode:
Java:
private static boolean isCommitAllowed(String userName) {
   // Prüfen, ob Nutzer eingeschränkt (Lisa,Werner).
   // falls nicht, sofort true returnen

   // aktuelle Zeit ermitteln (new Date() oder Calendar.getInstance())

   // return stunde >= 8 && stunde <= 18 
}
Wenn ich mich nicht täusche, ist bei einem commit-Versuch der svn-User bereits bekannt. Er müsste also nicht extra abgefragt, sondern vom svn-Hook nur richtig übergeben werden. Zur Übergabe von Parametern an Java-Programme ist das String-Array
Code:
args
der main-Methode da. Dein svn-Hook müsste das Java-Programm wie folgt aufrufen:
Code:
// java muss im Path sein, sonst aufruf mit vollem Pfad zu java
// Keine Sonderzeichen in Bezeichnern!
// Und Klassennamen besser als Nomen!
java UserChecker <svn-Username>
Im Java-Code dann:
Java:
public static void main(String[] args) {

     String svnUser = args[0]; //

     boolean commitAllowed = isCommitAllowed(svnUser);

     if(commitAllowed) {
        // User darf commiten, wir verlassen das Programm mit 0
        // Das ist die Konvention für einen erfolgreichen Ablauf
        System.exit(0);
     }
     // User darf nicht commiten, wir verlassen das Programm mit != 0
     // Das ist die konvention für fehlerhaften Ablauf
     System.exit(1);
}
Mit den return-Codes müsste der svn-Hook umgehen können.
 

TheDuchess

Neues Mitglied
Hi nillehammer,
vielen Dank erstmal für die Hilfe. Aber nach langem ausprobieren hab ich es immer noch nicht ganz hinbekommen. Ich hab den Start-Commit-Hook kopiert und in eine .bat datei umgewandelt. Dann habe ich dort deinen Code der Main-Methode eingefügt. Aber wo schreibe ich die Hilfsmethode nun rein? In die gleiche Datei? Ich hab es erst mit einer separaten versucht, hat aber nicht geklappt...

Lg. Sarah
 


Schreibe deine Antwort... und nutze den </> Button, wenn du Code posten möchtest...
Ähnliche Java Themen
  Titel Forum Antworten Datum
F Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 11 at main.main(main.java:11) Java Basics - Anfänger-Themen 2
M Exception in thread "main" java.util.NoSuchElementException Java Basics - Anfänger-Themen 2
O Exception in thread "main" java.lang.ArithmeticException: / by zero Java Basics - Anfänger-Themen 4
R Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 5
S Compiler-Fehler Exception in thread "main" java.lang.Error: Unresolved compilation problem: Java Basics - Anfänger-Themen 6
D java main methode kann nicht kompiliert werden (Erstellen eines Objekts) Java Basics - Anfänger-Themen 6
I Compiler-Fehler Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5 Java Basics - Anfänger-Themen 3
J Compiler-Fehler Java findet main Klasse nicht Java Basics - Anfänger-Themen 16
I java.lang.ArrayIndexOutOfBoundsException at lösung.main Java Basics - Anfänger-Themen 3
R Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 10
C Compiler-Fehler Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2 Java Basics - Anfänger-Themen 3
AssELAss Klassen Java Klasse in main-methode ausführen Java Basics - Anfänger-Themen 7
I Fehlermeldung: Java does not contain a main type Java Basics - Anfänger-Themen 1
L Fehler: Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 4
A Code läuft nicht, Fehlermeldung Exception in thread "main" java.lang.Error: Unresolved compilation " Java Basics - Anfänger-Themen 11
P Exception in thread "main" java.lang.NoClassDefFoundError: Java Basics - Anfänger-Themen 1
B Java Programm ohne statische Main Methode aufrufen Java Basics - Anfänger-Themen 5
L Compiler-Fehler Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 2
F Exception in thread main java.lang.StackOverflowError Java Basics - Anfänger-Themen 3
A Compiler-Fehler Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 7
T Problem mit Eclipse? Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 4
M Exception in thread "main" java.lang.NoClassDefFoundError: MeineKlasse Java Basics - Anfänger-Themen 12
E Schach in Java-Applet <No main classes found> Java Basics - Anfänger-Themen 5
S Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 11
D java.lang.NoSuchMethodError: main Java Basics - Anfänger-Themen 11
S Umgebungsvariable Exception in thread "main" java.lang.UnsatisfiedLinkError: no J3D in java.librar y.path Java Basics - Anfänger-Themen 15
S Compiler-Fehler java.lang.SecurityException: Invalid signature file digest for Manifest main attributes Java Basics - Anfänger-Themen 5
G Kleine Java Programme aus Main Java Programm starten..... Java Basics - Anfänger-Themen 3
M Klassen Exception in thread "main" java.lang.NoClassDefFoundError: Java Basics - Anfänger-Themen 2
F Ich kenn mich nicht mehr aus - 'java.lang.NoSuchMethodError: main' in Applet? Java Basics - Anfänger-Themen 2
M Main methode innerhalb von Java aufrufen Java Basics - Anfänger-Themen 11
Y java.lang.NoSuchMethodError: main Java Basics - Anfänger-Themen 9
S die main in java Java Basics - Anfänger-Themen 6
B Exception in thread "main" java.lang.NullPointerException Fehler Hilfe! Java Basics - Anfänger-Themen 4
A Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 16
P Hello World-Programm: XPSP3 mit Java 1.6.0_16: Could not find main class Hello.java Java Basics - Anfänger-Themen 11
B Fehlermeldung - Exception in thread "main" java.lang.Error: Unresolved compilation pr Java Basics - Anfänger-Themen 16
E Fehler: "Exception in thread "main" java.lang.NoSuchMethodError" Java Basics - Anfänger-Themen 15
J java.lang.NoSuchMethodError: main -> obwohl in Programm ? Java Basics - Anfänger-Themen 4
G Fehler: Exception in thread main java.lang.noClassDefFound Java Basics - Anfänger-Themen 7
L Exception in thread "main" java.util.NoSuchElement Java Basics - Anfänger-Themen 4
A Do/While Problem (Exception in thread "main" java. Java Basics - Anfänger-Themen 4
M "exception in thread "main" java.lang.NullPoi Java Basics - Anfänger-Themen 2
S Exception in thread "main" java.lang.UnsupportedCl Java Basics - Anfänger-Themen 4
V Exception in thread "main" java.lang.NoClassDefFou Java Basics - Anfänger-Themen 21
S Exception in thread "main" java.lang.NoSuchMethodE Java Basics - Anfänger-Themen 3
NightmareVirus Exception in thread "main" java.lang.NoSuchMethodE Java Basics - Anfänger-Themen 8
A "Exception in thread "main" java.lang.NoCLass Java Basics - Anfänger-Themen 10
N java.lang.NoClassDefFoundError: main Java Basics - Anfänger-Themen 6
E java.lang.NoSuchMethodError: main ? Java Basics - Anfänger-Themen 3
C Exception in thread "main" java.lang.NoClassDefFou Java Basics - Anfänger-Themen 9
vogella Exception in thread "main" java.lang.NoClassDefFou Java Basics - Anfänger-Themen 4
F java.lang.NoSuchMethodError: main Java Basics - Anfänger-Themen 2
R Exception in thread "main" java.lang.NoSuchMethodE Java Basics - Anfänger-Themen 6
J "main" java.lang.NoClassDefFoundError: PortENum Java Basics - Anfänger-Themen 9
G Wieso brauch java keine main() Methode? Java Basics - Anfänger-Themen 20
J Java Anwendung starten ""faild to load main class Java Basics - Anfänger-Themen 15
C exception in thread "main" java.lang.NoClassDefFou Java Basics - Anfänger-Themen 7
C Java-Anfang main void public? Java Basics - Anfänger-Themen 5
A Fehlermeldung: Exception in thread "main" java.lan Java Basics - Anfänger-Themen 3
H Exception in thread "main" java.lang.NoClassDefFou Java Basics - Anfänger-Themen 3
L Exception in thread "main" java.lang.NoClassDefFou Java Basics - Anfänger-Themen 4
R Exception in thread "main" java.lang.NullPointerEx Java Basics - Anfänger-Themen 10
G Fehlermeldung "java.lang.NoSuchMethodError: main" Java Basics - Anfänger-Themen 3
L Exception in thread "main" java.lang.NoSuchMethodE Java Basics - Anfänger-Themen 3
K Exception in thread "main" java.lang.NoClassDefFou Java Basics - Anfänger-Themen 8
J Exception in thread "main" java.langClassNoFoundEr Java Basics - Anfänger-Themen 2
H Exception in thread "main" java.lang.NoClassDefFou Java Basics - Anfänger-Themen 5
O Exeception in thread "main" java.lang.NoClassDefFo Java Basics - Anfänger-Themen 3
B Fehler: Exception in Thread "main" java.lang.NoCla Java Basics - Anfänger-Themen 2
G Exception in thread "main" java.lang.NoClassDefFou Java Basics - Anfänger-Themen 2
J Probleme mit drucken aus Java Java Basics - Anfänger-Themen 3
Gokul Java chart library suggestion for web application? Java Basics - Anfänger-Themen 2
D wie kann ich gcc aus einer .java datei heraus aufrufen? Java Basics - Anfänger-Themen 2
S Text Formatierung in Java Java Basics - Anfänger-Themen 2
B Erste Schritte yaml parsen in Java Java Basics - Anfänger-Themen 19
C Methoden Umlaute in Java Java Basics - Anfänger-Themen 18
W Java-PRogramm liest als EXE-File Nicht USB, jedoch aus NetBeans Java Basics - Anfänger-Themen 45
W Methoden java map ersatz für c++map Java Basics - Anfänger-Themen 3
M Erste Schritte Java Primzahltester Java Basics - Anfänger-Themen 4
A csv Reader für Java? Java Basics - Anfänger-Themen 27
K Java - Enums Java Basics - Anfänger-Themen 30
tomzen Java Unterstützung für exel dateien installieren. Java Basics - Anfänger-Themen 2
Rookar java.lang.NoClassDefFoundError: org/json/JSONException Java Basics - Anfänger-Themen 2
Rookar Mit Button andere java öffnen Java Basics - Anfänger-Themen 4
F Java Object to Hashmap ? Java Basics - Anfänger-Themen 6
I Backend in Java und Ansicht von Dateien in statische HTML Seiten? Java Basics - Anfänger-Themen 15
R Input/Output Verwendung des Euro-Zeichens in Java Java Basics - Anfänger-Themen 7
I Push Nachrichten von JAVA EE App an Mobile App Java Basics - Anfänger-Themen 3
H .java Dateien in Eclipse einbinden und ausführen Java Basics - Anfänger-Themen 1
onlyxlia Schlüsselworte Was meint man mit "einen Typ" in Java erstellen? Java Basics - Anfänger-Themen 2
O Java Kara geschweifte Klammern Java Basics - Anfänger-Themen 2
G Mausrad logitech kann links und rechts klick wie in java abragen. Java Basics - Anfänger-Themen 15
XWing Java Klssenproblem Java Basics - Anfänger-Themen 4
R Umgebungsvariable java -cp gibt immer Java-Hilfe... Java Basics - Anfänger-Themen 3
farbenlos Csv Datei in Java einlesen Java Basics - Anfänger-Themen 18
F TableModelListener: java.lang.ArrayIndexOutOfBoundsException: 132 Java Basics - Anfänger-Themen 3
G Java 8 - Support-Ende Java Basics - Anfänger-Themen 7
T Java Weihnachtsbaum + Rahmen Java Basics - Anfänger-Themen 1
N Will mit Java anfangen Java Basics - Anfänger-Themen 13

Ähnliche Java Themen

Neue Themen


Oben