
Pavel ?
28.10.2016
12:06:07
а не миграции)

Stanislav
28.10.2016
13:43:07
Гайз, помогите решить проблему. У меня есть какой-то абстрактный класс Condition и две его реализации MinMaxCondition и WhateverCondition.
А я хочу странного, я хочу десериализовать json вида {"conditions": [{"type":"minmax", "min":0, "max":10}, {"type": "whatever"}] } в список из двух объектов: MinMaxCondition и WhateverCondition
Желательно через джексоновский ObjectMapper
можно как бэ в 2 прохода, в первый доставать type, а потом исходя из тайпа подсовывать в мэппер нужный нужный класс

Митко Соловец?
28.10.2016
13:44:57
полиморфизм в джэксоне

Google

Митко Соловец?
28.10.2016
13:46:06
@JsonTypeInfo@JsonSubTypes - можно в сторону этих аннотаций посмотреть, они управляют полиморфизмом в Джэксоне

Stanislav
28.10.2016
13:46:38
типа так
String json = readJson()
String type = mapper.readObject(json).get("type");
switch(type) {
case "minmax": return mapper.readObject(json, MinMaxCondition.class);
case "whatever": return mapper.readObject(json, WhateverCondition.class);
}
мм, полиморфизм джейсона звучит неплохо, спасибо

Митко Соловец?
28.10.2016
13:49:44
ща у себя в коде найду

Stanislav
28.10.2016
13:50:06
ну да

Митко Соловец?
28.10.2016
13:50:18
а то он по аннотациям и настройки сам будет за тебя такую развертку делать)

Stanislav
28.10.2016
13:50:20
и от этого плохо сплю по ночам


Митко Соловец?
28.10.2016
13:51:29
единственное, я не пробовал в одной коллекции держать детей одного типа и сериализовать
хотя
был и такой кейс
@JsonTypeInfo(
use = JsonTypeInfo.Id.NAME,
include = JsonTypeInfo.As.PROPERTY,
property = "category",
visible = true,
defaultImpl = ItemDTO.class)
@JsonSubTypes({
@JsonSubTypes.Type(value = BodyDTO.class, name = "BODY"),
@JsonSubTypes.Type(value = MotherboardDTO.class, name = "MOTHERBOARD"),
@JsonSubTypes.Type(value = CPUDTO.class, name = "CPU"),
@JsonSubTypes.Type(value = CPUCoolingDTO.class, name = "CPUCOOLING"),
@JsonSubTypes.Type(value = RAMDTO.class, name = "RAM"),
@JsonSubTypes.Type(value = VideoCardDTO.class, name = "VIDEOCARD"),
@JsonSubTypes.Type(value = SoundCardDTO.class, name = "SOUNDCARD"),
@JsonSubTypes.Type(value = HDDDTO.class, name = "HDD"),
@JsonSubTypes.Type(value = SSDDTO.class, name = "SSD"),
@JsonSubTypes.Type(value = ODDDTO.class, name = "ODD"),
@JsonSubTypes.Type(value = PSUDTO.class, name = "PSU"),
@JsonSubTypes.Type(value = OperationSystemDTO.class, name = "OS"),
})
public class ItemDTO {

Google

Pavel
28.10.2016
13:52:38
можешь детям засунуть publci методы
и опраишвать их
ODDDO
это кто такой?))

Митко Соловец?
28.10.2016
13:52:55
реализация
JsonTypeName("BODY")
@JsonIgnoreProperties(ignoreUnknown = true)
public class BodyDTO extends ItemDTO {
он автоматически разрезолвит

Pavel
28.10.2016
13:53:40
optical disk drive
ппц

Митко Соловец?
28.10.2016
13:53:49
?


Pavel
28.10.2016
13:53:56
@JsonTypeInfo(
use = JsonTypeInfo.Id.NAME,
include = JsonTypeInfo.As.PROPERTY,
property = "category",
visible = true,
defaultImpl = ItemDTO.class)
@JsonSubTypes({
@JsonSubTypes.Type(value = BodyDTO.class, name = "BODY"),
@JsonSubTypes.Type(value = MotherboardDTO.class, name = "MOTHERBOARD"),
@JsonSubTypes.Type(value = CPUDTO.class, name = "CPU"),
@JsonSubTypes.Type(value = CPUCoolingDTO.class, name = "CPUCOOLING"),
@JsonSubTypes.Type(value = RAMDTO.class, name = "RAM"),
@JsonSubTypes.Type(value = VideoCardDTO.class, name = "VIDEOCARD"),
@JsonSubTypes.Type(value = SoundCardDTO.class, name = "SOUNDCARD"),
@JsonSubTypes.Type(value = HDDDTO.class, name = "HDD"),
@JsonSubTypes.Type(value = SSDDTO.class, name = "SSD"),
@JsonSubTypes.Type(value = ODDDTO.class, name = "ODD"),
@JsonSubTypes.Type(value = PSUDTO.class, name = "PSU"),
@JsonSubTypes.Type(value = OperationSystemDTO.class, name = "OS"),
})
public class ItemDTO {
а зачем тебе оно?
я к тому, что ты сериализириуешь?


Митко Соловец?
28.10.2016
13:54:13
там были дженерик круд методы + немного агрегации

Pavel
28.10.2016
13:54:46
я к тому, а нельзя была сделать интерфейс?

Митко Соловец?
28.10.2016
13:54:48
поэтому джэксон сам рулил все, что надо) мне только мапперы оставалось написать

Pavel
28.10.2016
14:03:48
я просто одно время пегттеры завернул в интерфейс
нужных мне вещей

Google

Pavel
28.10.2016
14:04:07
и теперь спокойно дай директора, дай название

Anton
28.10.2016
14:21:10
Всем привет, может кто подскажет, есть варка, запускаю ее в докер контейнере, надо поменять порт томката с 8080 на какой-то другой, можно ли это сделать через консоль?

Stanislav
28.10.2016
14:22:07
можно через консоль поменять конфиг томката и перезапустить его
или через консоль поменять мэппинг портов контейнера

Anton
28.10.2016
14:23:06
надо чтобы докер файл при сборке образа запускал томкат на другом порту

Stanislav
28.10.2016
14:23:29
ну тогда поменяй конфиг томката

Anton
28.10.2016
14:23:32
ну вернее менял порт

Stanislav
28.10.2016
14:23:33
но это странное желание

Anton
28.10.2016
14:23:45
почему?
ну просто когда спринг бутовский джар запускать порт можно задать в апликейшене

Stanislav
28.10.2016
14:24:22
потому что ты же все равно этот порт как-то меппишь на хост систему

Митко Соловец?
28.10.2016
14:24:26

Митко Соловец?
28.10.2016
14:24:45
плевать на каком порту томкат, маппишь на нужны порт контейнера и все

Pavel
28.10.2016
14:25:02
Дима, а ты смотрю в докер играл?)

Anton
28.10.2016
14:25:04
мне на хост не надо, надо чтобы другие контейнеры могли к нему обращаться
но не по дефолтному порту
что-то я походу упустил

Митко Соловец?
28.10.2016
14:25:54

Anton
28.10.2016
14:26:36
линки ж скоро деприкейтед вроде)

Google

Митко Соловец?
28.10.2016
14:26:46
https://telegram.me/docker_ru
уточни тут

Anton
28.10.2016
14:27:01
спасибо

Dima
28.10.2016
14:33:58
Приветики

Vitaliy
28.10.2016
14:34:31
Киньте ссылку на чат, где можно хантить
У Димы есть неплохое предложение

Lesika
28.10.2016
14:35:04
так может ты его просто сюда выложишь?:)

Vitaliy
28.10.2016
14:35:20
Вроде бы нельзя по правилам хантить тут?

Admin
ERROR: S client not available

Igor
28.10.2016
14:37:07
ну если Дима ответит на все вопросы, то может и выкладывать :)

Pavel
28.10.2016
14:37:38
Можно. Если готов на вопросы отвечать

Lesika
28.10.2016
14:38:52
А где есть полные правила канала?

Igor
28.10.2016
14:39:07

Dima
28.10.2016
14:39:13
https://vk.com/wall-58810575_2469

Igor
28.10.2016
14:39:20
хотя вроде где-то еще Паша писал

Dima
28.10.2016
14:39:31
На вопросы могу отвить

Lesika
28.10.2016
14:39:33
вот это: Сообщество разработчиков под JVM и Android Java Scala Kotlin Groovy Clojure Тут отборный bytecode))) Наш сайт: projvm.com projvm.ru Наш канал: @proJVM https://telegram.me/proJVM ⚠ Оффтоп -> @flood ❌Переход на личности ❌Троллинг ❌Реклама ❌HH (вакансии) ?

Stanislav
28.10.2016
14:40:36
а почему жаба _или_ го ?

Igor
28.10.2016
14:40:39
какая вилка зп хоть?

Google

Dima
28.10.2016
14:40:50
3-5

Lesika
28.10.2016
14:41:00
а что такое 3-5?

Dima
28.10.2016
14:41:05
k$

Lesika
28.10.2016
14:41:18
а. Ок, спасибо

Dima
28.10.2016
14:41:50
Если посчитать по налогам, то это уровень европы, но при этом работаете и живете в питере, а тут все дешевле в 2 раза

Pavel
28.10.2016
14:41:51

Dima
28.10.2016
14:42:29
У нас ребята мелатонин очень любят

Lesika
28.10.2016
14:42:43
У вас все настолько сурово? :)

Dima
28.10.2016
14:43:12
Нет просто после разработки Vinci осталась привычка

Igor
28.10.2016
14:43:14
настолько нету понятия рабочего времени)

Dima
28.10.2016
14:43:56
Понятие времени есть, но если человеку нравится :) Зачем сжигать кадры

Lesika
28.10.2016
14:44:29
Жаль, что у меня уровень маловат и я не в Питере :( Зарплата хорошая для Питера

Pavel
28.10.2016
14:45:14
чем занимается

Dima
28.10.2016
14:45:22
Главное желание

Митко Соловец?
28.10.2016
14:49:28

Dima
28.10.2016
14:49:51

Митко Соловец?
28.10.2016
14:50:03
Офигеть)

Pavel
28.10.2016
14:50:52
вкусно, на самом деле
почему все самое вкусное творится в питере...