Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release/1.4.0 #21

Merged
merged 24 commits into from Sep 17, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
7bc1a36
Bump next dev version
ZakarFin Jul 1, 2020
2aa4fe2
Use nightly Oskari build
ZakarFin Jul 1, 2020
a7d3207
Use Oskari 2.0-SNAPSHOT
ZakarFin Aug 13, 2020
d854654
Migrate to Oskari 2.x with newer Flyway
ZakarFin Aug 24, 2020
a953900
Stop using setup files to make initial data more explicit
ZakarFin Aug 25, 2020
b3de3a6
Restore Oskari.org as data provider
ZakarFin Aug 25, 2020
4b7ea99
Content-resources migration
ZakarFin Aug 25, 2020
fe783e6
Merge pull request #13 from ZakarFin/flyway-update
ZakarFin Aug 25, 2020
9d3456c
Merge pull request #14 from ZakarFin/helper-update
ZakarFin Aug 25, 2020
fee763e
Update migrations for 2.x table names
ZakarFin Aug 27, 2020
5ac593c
Merge pull request #15 from ZakarFin/update-migrations
ZakarFin Aug 27, 2020
bced6a6
FlywayHelper -> AppsetupHelper
ZakarFin Aug 28, 2020
c0bfb2d
Rename Appsetup -> AppSetup
ZakarFin Aug 31, 2020
a48355e
Merge pull request #16 from ZakarFin/update-migrations
ZakarFin Aug 31, 2020
6688805
Update references to Oskari
ZakarFin Sep 1, 2020
c06a562
Merge pull request #17 from ZakarFin/maven-renaming
ZakarFin Sep 1, 2020
b181a0b
Add unsd plugin to dependencies (accidentally removed)
ZakarFin Sep 3, 2020
027795f
Merge pull request #18 from ZakarFin/fix-unsd
ZakarFin Sep 3, 2020
72d0155
Use explicit paths for json files
ZakarFin Sep 14, 2020
d36bc9b
Merge pull request #19 from ZakarFin/explicit-paths
ZakarFin Sep 14, 2020
118e457
Add max screenspace error for mesh type tileset
ZakarFin Sep 16, 2020
6279679
Merge pull request #20 from ZakarFin/add-3d-config
ZakarFin Sep 16, 2020
3a06d5e
Bump Oskari version to 2.0.0
ZakarFin Sep 17, 2020
b426ff1
Lock app version
ZakarFin Sep 17, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
4 changes: 2 additions & 2 deletions app-resources/pom.xml
Expand Up @@ -6,14 +6,14 @@
<parent>
<groupId>org.oskari.demo</groupId>
<artifactId>server-extension</artifactId>
<version>1.3.0</version>
<version>1.4.0</version>
</parent>
<artifactId>app-resources</artifactId>
<packaging>jar</packaging>
<name>Resources for application</name>
<dependencies>
<dependency>
<groupId>fi.nls.oskari</groupId>
<groupId>org.oskari</groupId>
<artifactId>content-resources</artifactId>
</dependency>
</dependencies>
Expand Down
@@ -1,15 +1,16 @@
package flyway.example;

import fi.nls.oskari.db.DBHandler;
import org.flywaydb.core.api.migration.jdbc.JdbcMigration;
import org.oskari.helpers.AppSetupHelper;
import org.flywaydb.core.api.migration.BaseJavaMigration;
import org.flywaydb.core.api.migration.Context;

import java.sql.Connection;
public class V1_0_3__initial_db_content extends BaseJavaMigration {

public class V1_0_3__initial_db_content implements JdbcMigration {

public void migrate(Connection connection)
throws Exception {
// run setup based on json under /src/main/resources/setup/app-example.json
DBHandler.setupAppContent(connection, "app-example");
public void migrate(Context context) throws Exception {
// add applications based on json under /src/main/resources/json/views/
AppSetupHelper.create(context.getConnection(), "/json/apps/geoportal-3857.json");
AppSetupHelper.create(context.getConnection(), "/json/apps/publisher-template.json");
AppSetupHelper.create(context.getConnection(), "/json/apps/geoportal-3067.json");
AppSetupHelper.create(context.getConnection(), "/json/apps/embedded-3857.json");
}
}
@@ -1,6 +1,7 @@
package flyway.example;

import org.flywaydb.core.api.migration.jdbc.JdbcMigration;
import org.flywaydb.core.api.migration.BaseJavaMigration;
import org.flywaydb.core.api.migration.Context;

import java.sql.Connection;
import java.sql.PreparedStatement;
Expand All @@ -9,12 +10,13 @@
/**
* Register UN statistics datasource
*/
public class V1_1_1__add_unsd_datasources implements JdbcMigration {
public class V1_1_1__add_unsd_datasources extends BaseJavaMigration {

private static final String layer = "ne_110m_countries";
private static final String prefix = "UN Agenda 2030 SD Goal";

public void migrate(Connection connection) throws Exception {
public void migrate(Context context) throws Exception {
Connection connection = context.getConnection();
addDS(connection, "Affordable and clean energy", "7");
addDS(connection, "Decent work and economic growth", "8");
addDS(connection, "Industry, innovation and infrastructure", "9");
Expand Down Expand Up @@ -42,7 +44,7 @@ private String getDSInsert(String name, String goal) {
}

private String getRegionsetLinkInsert(String name) {
return "INSERT INTO oskari_statistical_layer(datasource_id, layer_id, config) " +
return "INSERT INTO oskari_statistical_datasource_regionsets(datasource_id, layer_id, config) " +
"VALUES(" +
"(SELECT id FROM oskari_statistical_datasource " +
"WHERE locale like '%" + name + "%'), " +
Expand Down
Expand Up @@ -8,24 +8,22 @@
import fi.nls.oskari.service.ServiceException;
import fi.nls.oskari.service.ServiceRuntimeException;
import fi.nls.oskari.service.UserService;
import org.flywaydb.core.api.migration.jdbc.JdbcMigration;
import org.flywaydb.core.api.migration.BaseJavaMigration;
import org.flywaydb.core.api.migration.Context;
import org.oskari.permissions.PermissionService;
import org.oskari.permissions.PermissionServiceMybatisImpl;
import org.oskari.permissions.model.*;

import java.sql.Connection;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;

/**
* Add permissions for regionset: countries
*/
public class V1_1_2__add_permission_for_regionset implements JdbcMigration {
public class V1_1_2__add_permission_for_regionset extends BaseJavaMigration {

public void migrate(Connection connection)
throws SQLException {
public void migrate(Context ignored) throws Exception {
PermissionService service = new PermissionServiceMybatisImpl();
for(Resource resToUpdate : getResources()) {
Optional<Resource> dbRes = service.findResource(ResourceType.maplayer, resToUpdate.getMapping());
Expand Down
@@ -1,17 +1,24 @@
package flyway.example3d;

import fi.nls.oskari.db.DBHandler;
import org.flywaydb.core.api.migration.jdbc.JdbcMigration;

import java.sql.Connection;
import org.flywaydb.core.api.migration.BaseJavaMigration;
import org.flywaydb.core.api.migration.Context;
import org.oskari.helpers.LayerHelper;
import org.oskari.helpers.AppSetupHelper;

/**
* Creates a new 3D view
*/
public class V1_0__create_3D_view implements JdbcMigration {
public class V1_0__create_3D_view extends BaseJavaMigration {

public void migrate(Context context) throws Exception {
// insert layers based on json under /src/main/resources/json/layers/
LayerHelper.setupLayer("/json/layers/hki-3d-model.json");
LayerHelper.setupLayer("/json/layers/hki-3d-buildings.json");
LayerHelper.setupLayer("/json/layers/nasa-features.json");
LayerHelper.setupLayer("/json/layers/nasa-labels.json");
LayerHelper.setupLayer("/json/layers/nasa-water-mask.json");

public void migrate(Connection connection) throws Exception {
// run setup based on json under /src/main/resources/setup/app-example-3d.json
DBHandler.setupAppContent(connection, "app-example-3d.json");
// add applications based on json under /src/main/resources/json/views/
AppSetupHelper.create(context.getConnection(), "/json/apps/geoportal-3d.json");
}
}
@@ -1,36 +1,36 @@
package flyway.example3d;

import fi.nls.oskari.db.ViewHelper;
import fi.nls.oskari.domain.map.view.View;
import fi.nls.oskari.domain.map.view.ViewTypes;
import fi.nls.oskari.map.view.AppSetupServiceMybatisImpl;
import fi.nls.oskari.map.view.ViewService;
import fi.nls.oskari.util.FlywayHelper;
import org.flywaydb.core.api.migration.jdbc.JdbcMigration;
import org.flywaydb.core.api.migration.BaseJavaMigration;
import org.flywaydb.core.api.migration.Context;
import org.oskari.helpers.AppSetupHelper;

import java.sql.Connection;
import java.util.List;

/**
* Creates a publication template for 3D views.
*/
public class V1_1__setup_3D_publishing implements JdbcMigration {
public class V1_1__setup_3D_publishing extends BaseJavaMigration {
private static final String TEMPLATE_JSON = "publisher-template-3d.json";
private static final String METADATA_TEMPLATE_KEY = "publishTemplateUuid";
private static final String APPLICATION_3D_NAME = "geoportal-3d";

private ViewService viewService;

public void migrate(Connection conn) throws Exception {

public void migrate(Context context) throws Exception {
Connection conn = context.getConnection();
viewService = new AppSetupServiceMybatisImpl();

// Create 3D publish template view
long templateViewId = ViewHelper.insertView(conn, TEMPLATE_JSON);
long templateViewId = AppSetupHelper.create(conn, TEMPLATE_JSON);
String templateViewUuid = viewService.getViewWithConf(templateViewId).getUuid();

// Set it as the publication template for the default 3D view.
List<Long> viewIds = FlywayHelper.getViewIdsForApplication(conn, APPLICATION_3D_NAME, ViewTypes.DEFAULT);
List<Long> viewIds = AppSetupHelper.getSetupsForApplicationByType(conn, APPLICATION_3D_NAME, ViewTypes.DEFAULT);
for (long viewId : viewIds) {
View geoportalView = viewService.getViewWithConf(viewId);
geoportalView.getMetadata().put(METADATA_TEMPLATE_KEY, templateViewUuid);
Expand Down
@@ -1,45 +1,39 @@
package flyway.example3d;

import fi.nls.oskari.domain.map.view.Bundle;
import fi.nls.oskari.log.LogFactory;
import fi.nls.oskari.log.Logger;
import fi.nls.oskari.util.FlywayHelper;
import fi.nls.oskari.util.JSONHelper;
import org.flywaydb.core.api.migration.jdbc.JdbcMigration;
import org.flywaydb.core.api.migration.BaseJavaMigration;
import org.flywaydb.core.api.migration.Context;
import org.oskari.helpers.AppSetupHelper;

import java.sql.Connection;
import java.sql.SQLException;
import java.util.List;

public class V1_2__setup_dimension_change implements JdbcMigration {
private static final Logger LOG = LogFactory.getLogger(V1_2__setup_dimension_change.class);
public class V1_2__setup_dimension_change extends BaseJavaMigration {
private static final String BUNDLE_NAME = "dimension-change";
private static final String APPLICATION_3D_NAME = "geoportal-3d";
private static final String APPLICATION_2D_NAME = "geoportal";

public void migrate(Connection conn) throws SQLException {
public void migrate(Context context) throws SQLException {
Connection conn = context.getConnection();
// Set 3D view's uuid for 2D default and user appsetups
List<Long> viewIds2d = FlywayHelper.getUserAndDefaultViewIds(conn, APPLICATION_2D_NAME);
String uuid3d = FlywayHelper.getDefaultViewUuid(conn, APPLICATION_3D_NAME);
setBundleForViews(conn, viewIds2d, uuid3d);
List<Long> viewIds2d = AppSetupHelper.getSetupsForUserAndDefaultType(conn, APPLICATION_2D_NAME);
String uuid3d = AppSetupHelper.getUuidForDefaultSetup(conn, APPLICATION_3D_NAME);
AppSetupHelper.addOrUpdateBundleInApps(conn, generateDimensionChange(uuid3d), viewIds2d);

// Set default 2D view's uuid for 3D default appsetup
List<Long> viewIds3d = FlywayHelper.getUserAndDefaultViewIds(conn, APPLICATION_3D_NAME);
String uuid2d = FlywayHelper.getDefaultViewUuid( conn, APPLICATION_2D_NAME);
setBundleForViews(conn, viewIds3d, uuid2d);
List<Long> viewIds3d = AppSetupHelper.getSetupsForUserAndDefaultType(conn, APPLICATION_3D_NAME);
String uuid2d = AppSetupHelper.getUuidForDefaultSetup( conn, APPLICATION_2D_NAME);
AppSetupHelper.addOrUpdateBundleInApps(conn, generateDimensionChange(uuid2d), viewIds3d);
}
private void setBundleForViews (Connection conn, List<Long> ids, String uuid) throws SQLException {

private Bundle generateDimensionChange(String uuid) {
Bundle bundle = new Bundle(BUNDLE_NAME);
String conf = JSONHelper.getStringFromJSON(
JSONHelper.createJSONObject("uuid", uuid)
,"{}");
for (Long id : ids) {
if (!FlywayHelper.viewContainsBundle(conn, BUNDLE_NAME, id)) {
FlywayHelper.addBundleWithDefaults(conn, id, BUNDLE_NAME);
}
Bundle bundle = FlywayHelper.getBundleFromView(conn, BUNDLE_NAME, id);
bundle.setConfig(conf);
FlywayHelper.updateBundleInView(conn, bundle, id);
}
LOG.info("Set view uuid:", uuid, "to dimension change bundle config. Updated views:", ids);
bundle.setConfig(conf);
return bundle;
}
}
@@ -1,5 +1,6 @@
insert into oskari_dataprovider(locale) values('{ "en":{ "name":"Oskari.org"} }');
insert into oskari_dataprovider(locale) values('{"en":{"name":"NASA EOSDIS"}}');
insert into oskari_dataprovider(locale) values('{"fi":{"name":"Helsingin kaupunki"}, "sv": { "name" : "Helsingfors stad"},"en": { "name" : "City of Helsinki"}}');
INSERT INTO oskari_maplayer_group (locale) values ('{"fi":{"name":"Taustakartat"}, "sv": { "name" : "Bakgrundskartor"},"en": { "name" : "Background maps"}}');
INSERT INTO oskari_maplayer_group (locale) values ('{"fi":{"name":"Rakennukset"}, "sv": { "name" : "Byggnader"},"en": { "name" : "Buildings"}}');

INSERT INTO oskari_dataprovider (locale) VALUES ('{ "en":{ "name":"Oskari.org"} }');
INSERT INTO oskari_dataprovider (locale) VALUES ('{"en":{"name":"NASA EOSDIS"}}');
INSERT INTO oskari_dataprovider (locale) VALUES ('{"fi":{"name":"Helsingin kaupunki"}, "sv": { "name" : "Helsingfors stad"},"en": { "name" : "City of Helsinki"}}');
INSERT INTO oskari_maplayer_group (locale) VALUES ('{"fi":{"name":"Taustakartat"}, "sv": { "name" : "Bakgrundskartor"},"en": { "name" : "Background maps"}}');
INSERT INTO oskari_maplayer_group (locale) VALUES ('{"fi":{"name":"Rakennukset"}, "sv": { "name" : "Byggnader"},"en": { "name" : "Buildings"}}');
@@ -1,21 +1,21 @@
-- insert admin user;
INSERT INTO oskari_users(user_name, first_name, last_name, email, uuid) VALUES('admin', 'Oskari', 'Admin', 'admin@oskari.org', 'asdf-asdf-asdf-asdf-asdf');
INSERT INTO oskari_users (user_name, first_name, last_name, email, uuid) VALUES('admin', 'Oskari', 'Admin', 'admin@oskari.org', 'asdf-asdf-asdf-asdf-asdf');

INSERT INTO oskari_role_oskari_user(user_id, role_id) VALUES((SELECT id FROM oskari_users WHERE user_name = 'admin'), (SELECT id FROM oskari_roles WHERE name = 'User'));
INSERT INTO oskari_role_oskari_user(user_id, role_id) VALUES((SELECT id FROM oskari_users WHERE user_name = 'admin'), (SELECT id FROM oskari_roles WHERE name = 'Admin'));
INSERT INTO oskari_users_roles (user_id, role_id) VALUES((SELECT id FROM oskari_users WHERE user_name = 'admin'), (SELECT id FROM oskari_roles WHERE name = 'User'));
INSERT INTO oskari_users_roles (user_id, role_id) VALUES((SELECT id FROM oskari_users WHERE user_name = 'admin'), (SELECT id FROM oskari_roles WHERE name = 'Admin'));

-- use admin/oskari credentials for admin user (user_name in oskari_users must match login on oskari_jaas_users);
INSERT INTO oskari_jaas_users(login, password) VALUES('admin', '$2a$10$sWFKpoLsaOZ1Jo09b7oOe.B6Ndw8jNvmriO4I2GEcRUl9xVJIn496');
INSERT INTO oskari_users_credentials (login, password) VALUES('admin', '$2a$10$sWFKpoLsaOZ1Jo09b7oOe.B6Ndw8jNvmriO4I2GEcRUl9xVJIn496');

-- insert "normal" user;
INSERT INTO oskari_users(user_name, first_name, last_name, email, uuid) VALUES('user', 'Oskari', 'Demo user', 'user@oskari.org', 'user-user-user-user-user');
INSERT INTO oskari_role_oskari_user(user_id, role_id) VALUES((SELECT id FROM oskari_users WHERE user_name = 'user'), (SELECT id FROM oskari_roles WHERE name = 'User'));
INSERT INTO oskari_users (user_name, first_name, last_name, email, uuid) VALUES('user', 'Oskari', 'Demo user', 'user@oskari.org', 'user-user-user-user-user');
INSERT INTO oskari_users_roles (user_id, role_id) VALUES((SELECT id FROM oskari_users WHERE user_name = 'user'), (SELECT id FROM oskari_roles WHERE name = 'User'));

-- use user/user credentials for "normal" user (user_name in oskari_users must match login on oskari_jaas_users);
INSERT INTO oskari_jaas_users(login, password) VALUES('user', '$2a$10$FUFDkmy9Fw9ieBHRSLeFkOfNTNDUNdCmPdWZxTYku9OXIRRQpivR2');
INSERT INTO oskari_users_credentials (login, password) VALUES('user', '$2a$10$FUFDkmy9Fw9ieBHRSLeFkOfNTNDUNdCmPdWZxTYku9OXIRRQpivR2');


-- For selenium tests
INSERT INTO oskari_users(user_name, first_name, last_name, email, uuid) VALUES('testirobot', 'Test', 'Robot', 'tester@oskari.org', 'beep-bee-boop-pip-doo-weep');
INSERT INTO oskari_role_oskari_user(user_id, role_id) VALUES((SELECT id FROM oskari_users WHERE user_name = 'testirobot'), (SELECT id FROM oskari_roles WHERE name = 'User'));
INSERT INTO oskari_jaas_users(login, password) VALUES('testirobot', '$2a$10$0GVF4vyhSqIQyvjLzOHTx.dyf9KkM5xPH2dePGaFkPxNsX2Szu9EC');
INSERT INTO oskari_users (user_name, first_name, last_name, email, uuid) VALUES('testirobot', 'Test', 'Robot', 'tester@oskari.org', 'beep-bee-boop-pip-doo-weep');
INSERT INTO oskari_users_roles (user_id, role_id) VALUES((SELECT id FROM oskari_users WHERE user_name = 'testirobot'), (SELECT id FROM oskari_roles WHERE name = 'User'));
INSERT INTO oskari_users_credentials (login, password) VALUES('testirobot', '$2a$10$0GVF4vyhSqIQyvjLzOHTx.dyf9KkM5xPH2dePGaFkPxNsX2Szu9EC');
@@ -1,3 +1,3 @@

-- add an application specific bundle (that on the sample app provides additional content for guided tour)
INSERT INTO portti_bundle (name) VALUES ('sample-info');
INSERT INTO oskari_bundle (name) VALUES ('sample-info');
Expand Up @@ -10,7 +10,7 @@
"development_prefix" : "/applications"
},
"selectedLayers" : [
"openmaptiles.json"
"/json/layers/openmaptiles.json"
],
"bundles" : [
{
Expand Down
Expand Up @@ -9,7 +9,7 @@
"page" : "geoportal_white",
"development_prefix" : "/applications"
},
"selectedLayers" : ["wmslayer-kapsi-mml-fi.json"],
"selectedLayers" : ["/json/layers/wmslayer-kapsi-mml-fi.json"],
"bundles" : [
{
"id" : "mapfull",
Expand Down
Expand Up @@ -10,7 +10,7 @@
"development_prefix" : "/applications"
},
"selectedLayers" : [
"openmaptiles.json"
"/json/layers/openmaptiles.json"
],
"bundles" : [
{
Expand Down
Expand Up @@ -10,7 +10,7 @@
"development_prefix" : "/applications"
},
"selectedLayers" : [
"nasa-blue-marble.json"
"/json/layers/nasa-blue-marble.json"
],
"bundles" : [
{
Expand Down
Expand Up @@ -17,6 +17,7 @@
}
},
"options": {
"maximumScreenSpaceError": 0,
"styles": {
"buildings": {
"fill": {
Expand Down
12 changes: 0 additions & 12 deletions app-resources/src/main/resources/setup/app-example-3d.json

This file was deleted.

8 changes: 0 additions & 8 deletions app-resources/src/main/resources/setup/app-example.json

This file was deleted.

6 changes: 3 additions & 3 deletions app-specific-code/pom.xml
Expand Up @@ -6,14 +6,14 @@
<parent>
<groupId>org.oskari.demo</groupId>
<artifactId>server-extension</artifactId>
<version>1.3.0</version>
<version>1.4.0</version>
</parent>
<artifactId>app-specific-code</artifactId>

<dependencies>
<dependency>
<groupId>fi.nls.oskari.service</groupId>
<artifactId>oskari-control-base</artifactId>
<groupId>org.oskari</groupId>
<artifactId>control-base</artifactId>
</dependency>

<dependency>
Expand Down