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
 
Ä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
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
richis-fragen 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
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
M Java Iterator Verständnisfrage Java Basics - Anfänger-Themen 6
M Java Mail Programm Java Basics - Anfänger-Themen 4
Sniper1000 Java 391 für Windows Java Basics - Anfänger-Themen 37
J Java long- in int-Variable umwandeln Java Basics - Anfänger-Themen 6
JaZuDemNo Java im Studium Java Basics - Anfänger-Themen 7
E Java Programm zur anzeige, ob Winter- oder Sommerzeit herrscht Java Basics - Anfänger-Themen 62
I QR code in Java selber generieren Java Basics - Anfänger-Themen 5
V Java-Ausnahmebehandlung: Behandlung geprüfter Ausnahmen Java Basics - Anfänger-Themen 1
krgewb Java Streams Java Basics - Anfänger-Themen 10
A Überwältigt von der komplexen Java Welt Java Basics - Anfänger-Themen 29
O Mehrfachvererbung auf Spezifikations- und Implementierungsebene in Java. Interfaces Java Basics - Anfänger-Themen 19
John_Sace Homogene Realisierung von Generics in Java ? Java Basics - Anfänger-Themen 19
P Meldung aus Java-Klasse in Thread an aufrufende Klasse Java Basics - Anfänger-Themen 1
R mit Java API arbeiten Java Basics - Anfänger-Themen 9
P JDK installieren Probleme bei der Java-Installation Java Basics - Anfänger-Themen 8
S Java: Wie sortiere ich eine ArrayList benutzerdefinierter Objekte nach einem bestimmten Attribut? Java Basics - Anfänger-Themen 2
Timo12345 JNLP File mit Java öffnen Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben