Size: a a a

Java/Kotlin Web and more

2020 October 21

B

Bromles in Java/Kotlin Web and more
Vladimir Smirnov
А да, чёт казалось что наши делали
Постгресс pro русский потому что
источник

AE

Alexandr Emelyanov in Java/Kotlin Web and more
Bromles
Постгресс pro русский потому что
Ага, и его достаточно что бы пихать в гос структуры
источник

R

Ruslan in Java/Kotlin Web and more
Дмитрий
Повышаем патриотизм intellij idea тож парнями из России придуманна
Снижаем патриотизм, с нового года придется НДС платить за их лицензии.
источник

B

Bromles in Java/Kotlin Web and more
Alexandr Emelyanov
Ага, и его достаточно что бы пихать в гос структуры
Слышал по прошке отзывы типа "штука классная, но стоит, как чугунный мост"
источник

AE

Alexandr Emelyanov in Java/Kotlin Web and more
Ruslan
Снижаем патриотизм, с нового года придется НДС платить за их лицензии.
это где написано?
источник

AE

Alexandr Emelyanov in Java/Kotlin Web and more
Bromles
Слышал по прошке отзывы типа "штука классная, но стоит, как чугунный мост"
хз, мы не пробовали
источник

AE

Alexandr Emelyanov in Java/Kotlin Web and more
Cyclone
Есть некоторая единица данных - пусть это будет String - который мы получаем из источника и применяем к ней некоторые обёртки с обработкой. Что можно сделать со строкой? Ну, пускай её кодинг в base64 и цифровая подпись.

(весь код на пасте: https://pastebin.com/xwrprjY5 )

interface StringService { String getString() }
class StringServiceImpl implements StringService { String getString() { return "hi"; }

class EncodingStringServiceWrapper implements StringService {
private StringService stringService;
 public EncodingStringServiceWrapper(StringService stringService) { this.stringService = stringService; }
public String getString() {
 return base64encode(stringService.getString());
}
private String base64encode(String s) { return "encodedhi" }
}

class SigningStringServiceWrapper implements StringService {
private StringService stringService;
 public SigningStringServiceWrapper(StringService stringService) { this.stringService = stringService; }
public String getString() {
 return sign(stringService.getString());
}
private String sign(String s) { return "signedencodedhi" }
}

Всё обернули, как будто получилось красиво.
String result = new SigningStringServiceWrapper(
 new EncodingStringServiceWrapper(
   new StringServiceImpl() // привет, Егор
 )
).getString();

Тут, вроде, всё понятно. Теперь скажем, что наша единица данных - это не String, а большая бинарная штука, получаемая как InputStream.  Как будто всё должно быть также, но нифига, потому что результат обработки Стринга - это Стринг, а результат обработки  InputStream сторонней библиотекой - это OutputStream.

interface BinaryService { BinaryDto getBinaryDto() }
class BinaryServiceImpl implements BinaryService { BinaryDto getBinaryDto() { return new BinaryDto(read inputSteam from source); }

ThirdPartyBinaryServiceWrapper implements BinaryService {
private BinaryService binaryService;
BinaryDto getBinaryDto() {
 BinaryDto binaryDto = binaryService.getBinaryDto();
 thirdParty.process(binaryService.getBinaryDto().getInputStream(), ??resultOutputStream??);
 binaryDto.setInputStream(?? convert resultOutputStream to inputStream ??);
 return binaryDto;
}
}


Чувак до меня не парился и просто пробросил HttpServletResponse через все слои логики. Что я считаю некошерно.

Интернеты повествуют о PipedInput/OutputStream для конвертации OutputStream в InputStream, но я их, видимо, не понял. Какой подать outputStream в
thirdParty.process
? Вариант с временным new ByteArrayOutputStream приводит к зависанию программы - видимо, созданный поток не читается.

Конкретный пример: получаем оригинал картинки с метаданными из источника и применяем к ней обёртку с обработкой изображения. Файлы могут быть большими, и большая конкурентность, загрузить всё в память в byte[] нельзя.
конкретно эта задача больше звучит как врапить стрим на каждом шаге, если не хочется его копирования на каждой итерации
источник

DT

Denis Timakov in Java/Kotlin Web and more
Alexandr Emelyanov
это где написано?
источник

AE

Alexandr Emelyanov in Java/Kotlin Web and more
Нежданчик
источник

R

Ruslan in Java/Kotlin Web and more
Alexandr Emelyanov
это где написано?
У меня в почте
источник

Д

Дмитрий in Java/Kotlin Web and more
Ruslan
У меня в почте
Авторитетные источник!
источник

R

Ruslan in Java/Kotlin Web and more
Выше ссылка на их блог
источник

Д

Дмитрий in Java/Kotlin Web and more
Ну это пусть работодатель думает, я всем обеспечен на рабочем месте.
источник

AL

Aleksander Lemyagov in Java/Kotlin Web and more
Ребят. Работаю с Jackson Core для считывания и записи объектов в/из json-а. И у меня проблема с новым тайм апи, а именно с LocalTime. Уже перерыл все. Зависимости jsr310 подключена, WRITE_DATES_AS_TIMESTAMPS выключаю, Регистрацию модуля делаю objectMapper.registerModule(new JavaTimeModule());, но все он отказывается работать с LocalTime пока к полю не пропишешь явно сериализатор и десиарелазтор:

@JsonSerialize(using = LocalTimeSerializer.class)
@JsonDeserialize(using = LocalTimeDeserializer.class)

Как можно это победить?
источник

VS

Vitaly Sirotkin in Java/Kotlin Web and more
Alexandr Emelyanov
Нежданчик
Там если им на почту написать - присылают ссылку на продление на 2 года без НДС
источник

AE

Alexandr Emelyanov in Java/Kotlin Web and more
Aleksander Lemyagov
Ребят. Работаю с Jackson Core для считывания и записи объектов в/из json-а. И у меня проблема с новым тайм апи, а именно с LocalTime. Уже перерыл все. Зависимости jsr310 подключена, WRITE_DATES_AS_TIMESTAMPS выключаю, Регистрацию модуля делаю objectMapper.registerModule(new JavaTimeModule());, но все он отказывается работать с LocalTime пока к полю не пропишешь явно сериализатор и десиарелазтор:

@JsonSerialize(using = LocalTimeSerializer.class)
@JsonDeserialize(using = LocalTimeDeserializer.class)

Как можно это победить?
заводится с пол пинка, может не тот маппер?
источник

AE

Alexandr Emelyanov in Java/Kotlin Web and more
Vitaly Sirotkin
Там если им на почту написать - присылают ссылку на продление на 2 года без НДС
норм. а с НДС в итоге сколько?
источник

VS

Vitaly Sirotkin in Java/Kotlin Web and more
Alexandr Emelyanov
норм. а с НДС в итоге сколько?
Ну 20% по закону
источник

AE

Alexandr Emelyanov in Java/Kotlin Web and more
Aleksander Lemyagov
Ребят. Работаю с Jackson Core для считывания и записи объектов в/из json-а. И у меня проблема с новым тайм апи, а именно с LocalTime. Уже перерыл все. Зависимости jsr310 подключена, WRITE_DATES_AS_TIMESTAMPS выключаю, Регистрацию модуля делаю objectMapper.registerModule(new JavaTimeModule());, но все он отказывается работать с LocalTime пока к полю не пропишешь явно сериализатор и десиарелазтор:

@JsonSerialize(using = LocalTimeSerializer.class)
@JsonDeserialize(using = LocalTimeDeserializer.class)

Как можно это победить?
я бы еще версию маппера проверил
источник

AL

Aleksander Lemyagov in Java/Kotlin Web and more
Alexandr Emelyanov
заводится с пол пинка, может не тот маппер?
та нет. он один.
источник