Skip to content

Instantly share code, notes, and snippets.

@mkgl
mkgl / package-local-releases.sh
Last active July 20, 2023 23:24 — forked from admanzoni/gist:8ef4e6eb115d6793ca64d524de803bb5
Package local releases with maven2 repo layout
#!/bin/sh
# Reference: http://roboojack.blogspot.in/2014/12/bulk-upload-your-local-maven-artifacts.html
if [ "$#" -ne 2 ] || ! [ -d "$1" ]; then
echo "Usage:"
echo " ./package-local-releases.sh <repoRootDirectory> <outputDirectory>"
echo ""
echo ""
echo " Where..."
@mkgl
mkgl / H2BackupAllDbs.groovy
Last active December 27, 2022 16:49
Backup and Restore H2 for Magnolia/Jackrabbit workspaces and version DBs. See also https://h2database.com/html/tutorial.html#upgrade_backup_restore
#!/usr/bin/env groovy
/**
* Run me from your magnolia home.
*/
def repositories = new File('./repositories').canonicalFile
def workspaces = repositories.toPath().resolve('magnolia/workspaces').toFile()
def dbsToBackup = workspaces.list().collectEntries({
[(it): "jdbc:h2:${workspaces.toPath().resolve(it).toFile().absolutePath}/db"]
})
@mkgl
mkgl / EffectiveRestResources.groovy
Last active January 31, 2020 10:46
List all REST resources effectively registered into Magnolia's RESTEasy runtime
import info.magnolia.cms.filters.CompositeFilter
import info.magnolia.cms.filters.FilterManager
import info.magnolia.cms.filters.MgnlFilter
import info.magnolia.cms.filters.ServletDispatchingFilter
import info.magnolia.objectfactory.Components
import info.magnolia.rest.RestDispatcherServlet
import java.util.stream.Stream
ServletDispatchingFilter restFilter = findFilter("RestDispatcherServlet-wrapper")
@mkgl
mkgl / VirtualUriMappingEval.groovy
Last active January 31, 2020 10:46
Show all Magnolia Virtual URI mappings that matched a given URI and their associated weights
@Field private registry
import groovy.transform.Field
import info.magnolia.objectfactory.Components
import info.magnolia.virtualuri.VirtualUriRegistry
import static java.util.stream.Collectors.joining
registry = Components.getComponent(VirtualUriRegistry.class)
@mkgl
mkgl / HelloMagnoliaApp.java
Created July 9, 2019 14:44
A sample hello world Vaadin app wrapped for Magnolia 6, featuring the `AlertBuilder`.
package info.magnolia.dev;
import static com.vaadin.ui.Notification.Type.HUMANIZED_MESSAGE;
import info.magnolia.icons.MagnoliaIcons;
import info.magnolia.ui.AlertBuilder;
import info.magnolia.ui.api.app.AppContext;
import info.magnolia.ui.api.app.AppView;
import info.magnolia.ui.api.location.Location;
import info.magnolia.ui.framework.app.BaseApp;
@mkgl
mkgl / ContactsEndpointDefinition.java
Created February 22, 2019 09:21
A sample REST endpoint in Magnolia, returning some contacts.
package info.magnolia.dev.rest;
import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
import info.magnolia.context.Context;
import info.magnolia.rest.AbstractEndpoint;
import info.magnolia.rest.delivery.jcr.QueryBuilder;
import info.magnolia.rest.registry.ConfiguredEndpointDefinition;
import java.util.List;
@mkgl
mkgl / EntryCountValidatorDefinition.java
Last active November 23, 2018 11:28
Validating min/max entries in Multivalue fields in Magnolia 5.6+
package info.magnolia.dev.mgnlui_3527_multifield_validation;
import info.magnolia.ui.form.validator.definition.ConfiguredFieldValidatorDefinition;
import info.magnolia.ui.form.validator.definition.FieldValidatorDefinition;
import info.magnolia.ui.form.validator.factory.AbstractFieldValidatorFactory;
import info.magnolia.ui.form.validator.factory.FieldValidatorFactory;
import java.text.MessageFormat;
import javax.inject.Inject;
@mkgl
mkgl / pom.xml
Last active May 17, 2018 09:38
Magnolia webapp w/ Java 10 (Maven POM snippet)
<properties>
...
<magnolia.version>5.6.6</magnolia.version>
<commons.lang3.version>3.7</commons.lang3.version>
<jackrabbit.version>2.16.1</jackrabbit.version>
<tika.version>1.17</tika.version>
</properties>
<dependencyManagement>
<dependencies>
@mkgl
mkgl / bookmarklet.js
Last active September 23, 2017 16:53
javascript:(function(p){s=location.search;if(!s.includes("?"+p)&&!s.includes("&"+p))location.search+=s.startsWith("?")?"&"+p:"?"+p})("restartApplication")
/**
* This file Copyright (c) 2016 Magnolia International
* Ltd. (http://www.magnolia-cms.com). All rights reserved.
*
*
* This file is dual-licensed under both the Magnolia
* Network Agreement and the GNU General Public License.
* You may elect to use one or the other of these licenses.
*
* This file is distributed in the hope that it will be