Size: a a a

2020 April 26

ПК

Павел Кулис in Java & Co
ping
источник

ПК

Павел Кулис in Java & Co
почему-то мои сообщения удаляются
источник

ПК

Павел Кулис in Java & Co
Попробую по частям
Привет! Подскажите по лямбдам в жаве. Точнее, поправьте, если я не прав:
В байт коде создание лямбды выглядит как INDY, который в рантайме сделает следующее:
1) В точке INDY будет статическая переменная CallSite callsite, при первом выполнении INDY вызовется бутстрап метод LambdaMetafactory с параметром - ссылкой на синтетический метод с телом лямбды, и результат запишется в эту переменную.
2) Вызовется Метод CallSite объекта, где в параметрах передадутся ссылки на переменные для замыкания, создастся объект анонимного класса, реализующего нужный интерфейс.
источник

ПК

Павел Кулис in Java & Co
Вопросы:
1) Я правильно понимаю, что callsite работает как синглтон в случае лямбд? В общем случае INDY так же будут синглтоны? Или при каких-либо обстоятельствах заново будет вызываться Bootstrap метод, который вернет другой объект?
2) Что за метод вызывается у объекта callsite? Будет ли он одинаковый для всех лямбд? Например:
Interface ILambda {
public int foo(int x, int y);
}
// …
ILambda l1 = (int x, int y) -> x + y;
ILambda l2 = (int x, int y) -> x * y;

Я правильно понимаю, что я получу два разных callsite объекта, у которых будут два разных метода? То есть не будет такого, что просто ссылка на тело лямбды запишется в поле callsite, и у двух объектов будет одинаковая функция, которая просто подсасывает нужное тело из поля?
источник

ПК

Павел Кулис in Java & Co
3) Про объект анонимного класса(назовем его NewClass`), который вернет `callsite: Верно ли, что вызов NewClass.foo(1, 2) вызовет какой-нибудь прокси метод, который вызовет синтетический метод с телом лямбды, передав дополнительно ссылки на переменные для замыкания?
Извините за много буков, заранее благодарен всем, кто откликнется
источник

AS

Alex Sagent in Java & Co
@banofbot опять биток
источник

B

Banof in Java & Co
🔫 Yothd Z Woldemaryam has been kicked — the only way to get this user back is for admins to manualy unban in chat settings.

Voters who chose to kick:
@alexsagent, Роман Нагаев, @VitBlokhin, Yothd Z Woldemaryam, @inkvirg, @IlyaFrontend, @romm1, @Kiryl_Hrybouski, @Marty_The_King, @Doublefire
источник

R

Roman in Java & Co
Ребята, если допустим у меня подключен Spring Security с Oauth2, но для юнит тестов я не хочу использовать их. Как бы вы поступили? Просто в пропертях поставить enabled=false (security) не получится, так как он уже deprecated. Думаю походу надо создавать кастомный конфигурационный security класс для своего тест профиля, но тут ещё загвоздка в том что я хочу иметь дефолтный профиль для тестов и ещё один (допустим тест), так как у меня application.yml и application-test.yml уже есть. Буду благодарен за любую подсказку 🙂
источник

AK

Artyom Krikheli in Java & Co
Roman
Ребята, если допустим у меня подключен Spring Security с Oauth2, но для юнит тестов я не хочу использовать их. Как бы вы поступили? Просто в пропертях поставить enabled=false (security) не получится, так как он уже deprecated. Думаю походу надо создавать кастомный конфигурационный security класс для своего тест профиля, но тут ещё загвоздка в том что я хочу иметь дефолтный профиль для тестов и ещё один (допустим тест), так как у меня application.yml и application-test.yml уже есть. Буду благодарен за любую подсказку 🙂
security:
 ignored: /**
источник

AK

Artyom Krikheli in Java & Co
а, это уже вроде тоже не сработает
источник

R

Roman in Java & Co
Artyom Krikheli
а, это уже вроде тоже не сработает
Да я пробовал, подсвечевалось как невалид (походу deprecated тоже)
источник

AK

Artyom Krikheli in Java & Co
Roman
Да я пробовал, подсвечевалось как невалид (походу deprecated тоже)
источник

AK

Artyom Krikheli in Java & Co
в эту сторону смотрел?
источник

AK

Artyom Krikheli in Java & Co
источник

R

Roman in Java & Co
Да видел на со, но были сомнения что оно пойдет с auth2.
источник

AK

Artyom Krikheli in Java & Co
Roman
Да видел на со, но были сомнения что оно пойдет с auth2.
тогда такой вариант
источник

AK

Artyom Krikheli in Java & Co
в mockMvc при build'е можно передать в метод apply
источник

AK

Artyom Krikheli in Java & Co
SecurityMockMvcConfigurers.springSecurity()
источник

R

Roman in Java & Co
Ух ты никогда не приходилось таким пользоваться. Пока погуглил, есть опасения что не заведется с h2 базой (юзаю её для юнит тестов)
источник

R

Roman in Java & Co
Но всеравно спасибо, завтра попробую это все дело затестить, о результатах отпишу :)
источник