LordLamer
  • Home
  • About Me
  • Familie
  • Knowledgeroot
  • Impressum
KEEP IN TOUCH

Posts in category Java

Knowledgeroot startet neu mit Java

Jan01
2025
Written by lordlamer

Nach 20 Jahren PHP-Entwicklung ist es Zeit für Veränderung. Ich habe mich entschieden, Knowledgeroot komplett in Java neu zu entwickeln. Das bewährte System zur Wissensverwaltung erhält damit eine moderne technische Basis, während die Funktionalität erhalten bleibt.

Die Entscheidung ist mir nicht leicht gefallen, aber die Vorteile einer Neuentwicklung überwiegen. Nutzer von Knowledgeroot werden sich in der neuen Version sofort zurechtfinden – die bewährten Funktionen wie Baumstruktur, Rechteverwaltung und das vertraute Layout bleiben bestehen. Was sich ändert, ist nur das technische Fundament.

Die bisherige PHP-Version wird unter www.knowledgeroot.org archiviert und bleibt für bestehende Installationen verfügbar. Die neue Entwicklung findet komplett offen auf GitHub statt.

Posted in Knowledgeroot

Spring Boot – App Deployment on Linux

May13
2016
Written by lordlamer

Spring Boot bietet die Möglichkeit seine erstellte Jar-Datei auch als Selbstausführenden Linux-Dienst zur Verfügung zu stellen. Das heißt, die erstellte Jar-Datei lässt sich direkt als Linux-Dienst nutzen.

Um das Feature zu nutzen müsst ihr pom.xml wie folgt anpassen:

1
2
3
4
5
6
7
<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <configuration>
        <executable>true</executable>
    </configuration>
</plugin>

Nach einem Package erstellen können wir die Datei auf unser Zielsystem deployen. Ein Link in die entsprechenden Runlevels und schon können wir die Spring Boot App als Linux Dienst laufen lassen.

Weitere Informationen dazu hier:
http://docs.spring.io/spring-boot/docs/current/reference/html/deployment-install.html

SLF4J mit Logback und Liquibase

May12
2016
Written by lordlamer

In einem aktuellen Projekt verwende ich SLF4J mit Logback und möchte einige Logs in die Datenbank schreiben lassen. Dafür liefert Logback auch geeignete SQL Statements. Da ich aber in meinem Projekt mit Liquibase unterwegs bin wollte ich das gerne mit in die DB-Changelog mit aufnehmen. Das Ergebnis dazu möchte ich hier teilen:

Changeset
<changeSet id="1" author="fhabermann" runAlways="true">
        <validCheckSum>any</validCheckSum>
        <preConditions onFail="MARK_RAN">
            <not>
                <tableExists tableName="logging_event"/>
            </not>
        </preConditions>
        <createTable tableName="logging_event">
            <column name="timestmp" type="BIGINT">
                <constraints nullable="false" />
            </column>
            <column name="formatted_message" type="TEXT">
                <constraints nullable="false" />
            </column>
            <column name="logger_name" type="VARCHAR(255)">
                <constraints nullable="false" />
            </column>
            <column name="level_string" type="VARCHAR(255)">
                <constraints nullable="false" />
            </column>
            <column name="thread_name" type="VARCHAR(255)">
                <constraints nullable="true" />
            </column>
            <column name="reference_flag" type="SMALLINT">
                <constraints nullable="true" />
            </column>
            <column name="arg0" type="VARCHAR(255)">
                <constraints nullable="true" />
            </column>
            <column name="arg1" type="VARCHAR(255)">
                <constraints nullable="true" />
            </column>
            <column name="arg2" type="VARCHAR(255)">
                <constraints nullable="true" />
            </column>
            <column name="arg3" type="VARCHAR(255)">
                <constraints nullable="true" />
            </column>
            <column name="caller_filename" type="VARCHAR(255)">
                <constraints nullable="false" />
            </column>
            <column name="caller_class" type="VARCHAR(255)">
                <constraints nullable="false" />
            </column>
            <column name="caller_method" type="VARCHAR(255)">
                <constraints nullable="false" />
            </column>
            <column name="caller_line" type="VARCHAR(4)">
                <constraints nullable="false" />
            </column>
            <column name="event_id" type="BIGINT" autoIncrement="true" >
                <constraints nullable="false" primaryKey="true" />
            </column>
        </createTable>
    </changeSet>
    
    <changeSet id="2" author="fhabermann"  runAlways="true">
        <validCheckSum>any</validCheckSum>
        <preConditions onFail="MARK_RAN">
            <not>
                <tableExists tableName="logging_event_exception"/>
            </not>
        </preConditions>
        <createTable tableName="logging_event_exception">
            <column name="event_id" type="BIGINT"><constraints nullable="false" /></column>
            <column name="i" type="SMALLINT"><constraints nullable="false" /></column>
            <column name="trace_line" type="VARCHAR(255)"><constraints nullable="false" /></column>
        </createTable>
        <addPrimaryKey tableName="logging_event_exception" columnNames="event_id,i"/>
        
        <addForeignKeyConstraint baseColumnNames="event_id"
            baseTableName="logging_event_exception"
            constraintName="logging_event_exception_ibfk_1"
            onDelete="CASCADE"
            onUpdate="RESTRICT"
            referencedColumnNames="event_id"
            referencedTableName="logging_event"/>
            
    </changeSet>
    
    <changeSet id="3" author="fhabermann"  runAlways="true">
        <validCheckSum>any</validCheckSum>
        <preConditions onFail="MARK_RAN">
            <not>
                <tableExists tableName="logging_event_property"/>
            </not>
        </preConditions>
        <createTable tableName="logging_event_property">
            <column name="event_id" type="BIGINT"><constraints nullable="false" /></column>
            <column name="mapped_key" type="VARCHAR(255)"><constraints nullable="false" /></column>
            <column name="mapped_value" type="TEXT"><constraints nullable="true" /></column>
        </createTable>
        <addPrimaryKey tableName="logging_event_property" columnNames="event_id,mapped_key"/>
        
        <addForeignKeyConstraint baseColumnNames="event_id"
            baseTableName="logging_event_property"
            constraintName="logging_event_property_ibfk_1"
            onDelete="CASCADE"
            onUpdate="RESTRICT"
            referencedColumnNames="event_id"
            referencedTableName="logging_event"/>
    </changeSet>

Java XSL Transformation

May12
2016
Written by lordlamer

Für ein aktuelles Projekt in Java benötigte ich eine Funktion/Klasse die es mir ermöglicht XML Code mittels XSL zu Transformieren. Dazu gibt es auch einige Beispiele im Netz die aber meist fertige Dateien von der Festplatte einlesen und Transformieren.

Hier dazu mein Beispiel welches nur mit Strings umgeht:

import java.io.StringReader;
import java.io.StringWriter;import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;class XslTransformer {
/**
* transform given xml with given xsl
*
* @param xml
* @param xsl
* @return
* @throws TransformerException
*/
public static String transform(String xml, String xsl) throws TransformerException {
StringReader srXml = new StringReader(xml);
StringReader srXsl = new StringReader(xsl);
StringWriter result = new StringWriter();TransformerFactory tFactory = TransformerFactory.newInstance();
Transformer transformer = tFactory.newTransformer(
new javax.xml.transform.stream.StreamSource(srXsl));transformer.transform(
new javax.xml.transform.stream.StreamSource(srXml),
new javax.xml.transform.stream.StreamResult(result));

return result.toString();
}

}

Community

  • Forum
  • GitHub
  • Knowledgeroot
  • YouTube

Categories

  • bsd (1)
  • citrix (3)
  • Company (27)
  • Debian (11)
  • docker (1)
  • Familie (75)
  • Geocaching (2)
  • Hausbau (41)
  • IPv6 (5)
  • Java (4)
  • klettern (10)
  • Knowledgeroot (16)
  • Linux (12)
  • LUG Balista (1)
  • misc (22)
  • mysql (1)
  • netscreen (2)
  • postgresql (1)
  • sap (4)
  • Software Architektur (2)
  • solr (2)
  • vim (2)

EvoLve theme by Theme4Press  •  Powered by WordPress LordLamer
Frank Habermann

We use cookies to ensure that we give you the best experience on our website. If you continue to use this site we will assume that you are happy with it.Ok