(define-module (gnu packages java-additions) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix utils) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix gexp) #:use-module (guix git-download) #:use-module (guix build-system ant) #:use-module (guix build-system maven) #:use-module (gnu packages) #:use-module (gnu packages java) #:use-module (gnu packages compression)) (define-public java-javax-jcr (package (name "java-javax-jcr") (version "2.0") (source (origin (method url-fetch) (uri (string-append "https://repo1.maven.org/maven2/" "javax/jcr/jcr/" version "/jcr-" version "-sources.jar")) (sha256 (base32 "163c9y71rm31mgazzxar28r3k4fb9vzk7a1dfs1cgf7d9rnx4i33")))) (build-system ant-build-system) (arguments `(#:tests? #f ; no tests #:jar-name "javax-jcr.jar")) (home-page "https://jcp.org/aboutJava/communityprocess/final/jsr283/index.html") (synopsis "Specifies a standard API to access content repositories in Java independently of implementation") (description " The API should be a standard, implementation independent, way to access content bi-directionally on a granular level within a content repository. A Content Repository is a high-level information management system that is a superset of traditional data repositories. A content repository implements \"content services\" such as: author based versioning, full textual searching, fine grained access control, content categorization and content event monitoring. It is these \"content services\" that differentiate a Content Repository from a Data Repository. Many of today's (web)applications are interacting with a content repository in various ways. This API proposes that content repositories have a dedicated, standard way of interaction with applications that deal with content. This API will focus on transactional read/write access, binary content (stream operations), textual content, full-text searching, filtering, observation, versioning, handling of hard and soft structured content.") ;; Day Specification License (license license:gpl2))) (define-public java-oak-jackrabbit-api (package (name "java-oak-jackrabbit-api") (version "1.42.0") (source (origin (method url-fetch) (uri (string-append "https://dlcdn.apache.org/jackrabbit/oak/" version "/jackrabbit-oak-" version "-src.zip")) (sha256 (base32 "17ra69nn4fl7ja2m23d3995570j5j5ni3fi4kfvfsp82jdmryy6r")))) (build-system ant-build-system) (arguments `(#:jar-name "oak-jackrabbit-api.jar" #:phases (modify-phases %standard-phases (add-after 'unpack 'chdir (lambda _ (chdir "oak-jackrabbit-api") #t)) (add-before 'build 'prepare (lambda _ (with-directory-excursion "src/test/java/org/apache/jackrabbit/api/" ;; remove test which has build error (delete-file "JackrabbitSessionTest.java")) #t))))) (inputs (list unzip java-commons-logging-minimal java-mockito-1 java-junit java-jetbrains-annotations java-javax-jcr java-osgi-annotation)) (home-page "https://jackrabbit.apache.org/oak/docs/index.html") (synopsis "Jackrabbit Oak - the next generation content repository") (description "This component contains the interface extensions that Apache Jackrabbit and Jackrabbit Oak support in addition to the standard JCR API. You can use these interfaces to access implementation-specific functionality.") (license license:asl2.0))) (define-public java-jackrabbit-oak (package (name "java-jackrabbit-oak") (version "1.42.0") (source (origin (method url-fetch) (uri (string-append "https://dlcdn.apache.org/jackrabbit/oak/" version "/jackrabbit-oak-" version "-src.zip")) (sha256 (base32 "17ra69nn4fl7ja2m23d3995570j5j5ni3fi4kfvfsp82jdmryy6r")))) (build-system maven-build-system) (arguments `(#:exclude ( ; ("org.apache.maven.plugins" . ; ("maven-deploy-plugin" "maven-javadoc-plugin" "maven-idea-plugin" ; "maven-eclipse-plugin" "maven-release-plugin")) ("org.apache.rat" . ("apache-rat-plugin")) ("org.codehaus.mojo" . ("animal-sniffer-maven-plugin")) ("org.jacoco" . ("jacoco-maven-plugin")) ("org.apache.felix" . ("maven-bundle-plugin"))) #:local-packages (("javax.jcr" . (("jcr" . "2.0"))) ("org.osgi" . (("org.osgi.annotation" . "6.0.0"))) ("org.jetbrains" . (("annotations". "19.0.0"))) ("org.mockito" . (("mockito-core" . "1.10.19")))))) (native-inputs (list unzip java-javax-jcr)) (synopsis "Jackrabbit Oak - the next generation content repository") (description "Jackrabbit Oak is an effort to implement a scalable and performant hierarchical content repository for use as the foundation of modern world-class web sites and other demanding content applications. The Oak effort is a part of the Apache Jackrabbit project. Apache Jackrabbit is a project of the Apache Software Foundation. ") (home-page "https://jackrabbit.apache.org/oak/docs/index.html") (license license:asl2.0))) (define-public java-jackrabbit (package (name "java-jackrabbit") (version "2.21.10") (source (origin (method url-fetch) (uri (string-append "https://dlcdn.apache.org/jackrabbit/" version "/jackrabbit-" version "-src.zip")) (sha256 (base32 "1g902qacdpn4hm6mi560bbxjjrrrsja4yddv8cp8bg2naf4jivic")))) (build-system maven-build-system) (arguments `(#:exclude (("org.apache.maven.plugins" . ("maven-deploy-plugin" "maven-javadoc-plugin" "maven-idea-plugin" "maven-eclipse-plugin" "maven-release-plugin")) ("org.apache.rat" . ("apache-rat-plugin")) ("org.codehaus.mojo" . ("animal-sniffer-maven-plugin")) ("org.jacoco" . ("jacoco-maven-plugin")) ("org.apache.felix" . ("maven-bundle-plugin"))) #:local-packages (("javax.jcr" . (("jcr" . "2.0"))) ("org.apache.jackrabbit" . (("oak-jackrabbit-api" . "1.42.0"))) ("org.osgi" . (("org.osgi.annotation" . "6.0.0"))) ("cglib" . (("cglib" . "3.2.4")))))) (native-inputs (list unzip java-junit java-javax-jcr)) (synopsis "This is the WebDAV Library component of the Apache Jackrabbit project") (description "This component provides interfaces and common utility classes used for building a WebDAV server or client. The following RFC have been integrated: * RFC 2518 (WebDAV - HTTP Extensions for Distributed Authoring) * RFC 3253 (DeltaV - Versioning Extensions to WebDAV) * RFC 3648 (Ordered Collections Protocol) * RFC 3744 (Access Control Protocol) * DAV Searching and Locating (DASL) * Binding Extensions to Web Distributed Authoring and Versioning (WebDAV) (experimental) In addition this library defines (unspecified) * Observation * Bundling multiple request with extensions to locking") (home-page "https://jackrabbit.apache.org/jcr/index.html") (license license:asl2.0))) (define-public java-jackrabbit-webdav (package (name "java-jackrabbit-webdav") (version "2.21.10") (source (origin (method url-fetch) (uri (string-append "https://dlcdn.apache.org/jackrabbit/" version "/jackrabbit-" version "-src.zip")) (sha256 (base32 "1g902qacdpn4hm6mi560bbxjjrrrsja4yddv8cp8bg2naf4jivic")))) (build-system ant-build-system) (arguments `(#:jar-name "jackrabbit-webdav.jar" #:test-exclude (list "**/ParserTest.java") ;; fails unexpected #:phases (modify-phases %standard-phases (add-after 'unpack 'chdir (lambda _ (chdir "jackrabbit-webdav") #t))))) (native-inputs (list unzip java-junit java-slf4j-simple java-httpcomponents-httpcore java-httpcomponents-httpclient java-javaee-servletapi java-osgi-annotation)) (synopsis "This is the WebDAV Library component of the Apache Jackrabbit project") (description "This component provides interfaces and common utility classes used for building a WebDAV server or client. The following RFC have been integrated: * RFC 2518 (WebDAV - HTTP Extensions for Distributed Authoring) * RFC 3253 (DeltaV - Versioning Extensions to WebDAV) * RFC 3648 (Ordered Collections Protocol) * RFC 3744 (Access Control Protocol) * DAV Searching and Locating (DASL) * Binding Extensions to Web Distributed Authoring and Versioning (WebDAV) (experimental) In addition this library defines (unspecified) * Observation * Bundling multiple request with extensions to locking") (home-page "https://jackrabbit.apache.org") (license license:asl2.0))) (define-public java-davmail (package (name "java-davmail") (version "6.0.1") (source (origin (method url-fetch) (uri (string-append "https://sourceforge.net/projects/davmail/files/davmail/" version "/davmail-srconly-" version "-3390.tgz")) (sha256 (base32 "0q5yix25i253w9kpqc8wiryvzpfrbqalky8byf5bz66v13c07y7p")))) (build-system ant-build-system) (arguments `(#:modules ((guix build ant-build-system) (guix build java-utils) (guix build utils) (srfi srfi-1) (ice-9 match)) ;#:build-target "jar" #:jar-name "davmail.jar" #:build-target "jar")) ;#:phases ;(modify-phases %standard-phases ; (add-after 'unpack 'create-libdir ; (lambda* (#:key inputs #:allow-other-keys) ; (mkdir-p "lib") ; ;(for-each ; ; (lambda (file) ; ; (let ((target (string-append "lib/" (basename file)))) ; ; (unless (file-exists? target) ; ; (symlink file target)))) ; ; (append-map (match-lambda ; ; (dir ; ; (find-files dir "\\.jar$"))) ; ; inputs)) ; #t))))) (inputs (list ;java-junit java-log4j-core java-javax-mail ;java-slf4j-simple java-httpcomponents-httpcore java-httpcomponents-httpclient ;java-javaee-servletapi ;java-osgi-annotation )) (synopsis "DavMail POP/IMAP/SMTP/Caldav/Carddav/LDAP Exchange and Office 365 Gateway") (description "Ever wanted to get rid of Outlook ? DavMail is a POP/IMAP/SMTP/Caldav/Carddav/LDAP exchange gateway allowing users to use any mail/calendar client (e.g. Thunderbird with Lightning or Apple iCal) with an Exchange server, even from the internet or behind a firewall through Outlook Web Access. DavMail now includes an LDAP gateway to Exchange global address book and user personal contacts to allow recipient address completion in mail compose window and full calendar support with attendees free/busy display.") (home-page "http://davmail.sourceforge.net/index.html") (license license:gpl2))) java-davmail