пятница, 30 января 2015 г.

Java, синхронизация и видимость переменных

Не забыть - по выходу из synchronized блока jvm делает flush для значений переменных из локальных кэшей, новые значения становятся видимы всем потокам.

четверг, 15 января 2015 г.

Получить информацию о том, откуда загружен Java класс

this.getClass().getProtectionDomain().getCodeSource().getLocation()
покажет источник, откуда class loader загрузил тот или иной класс (путь и имя jar)

воскресенье, 4 января 2015 г.

Настройка jrebel + maven локально

Для отслеживания изменений на локальной машине:
1. В параметры запуска сервера добавлем опцию jvm
-javaagent:C:\jrebel\jrebel.jar
2. В pom.xml добавляем
           <plugin>
                <groupId>org.zeroturnaround</groupId>
                <artifactId>jrebel-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <id>generate-rebel-xml</id>
                        <phase>process-resources</phase>
                        <goals>
                            <goal>generate</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

Создание символьной ссылки в windows

Для создания symlink команда:
MKLINK

Пример симлинка на папку с именем с пробелом:
mklink /D google_drive "C:\Users\user1\Google Диск"