Я думаю на Хабре существует много разработчиков, которые так или иначе связаны с такой технологией как SWING. Недавно, я прочитал новость, означающую неопределенность его дальнейшего существования, и был удивлен, что здесь про это ничего не написали. Поэтому — читаем.

174.33
Рейтинг
Java *
Объектно-ориентированный язык программирования
Сначала показывать
Порог рейтинга
Уровень сложности
Доступ к COM-порту из Java-апплета
6 мин
25KПривет всем. Хочу поделиться решением одной задачи, которая встала передо мной некоторое время назад. Состояла она в том, что было необходимо дать веб-сервису возможность получать доступ и обмениваться информацией с некоторым устройством (в моем случае карт-ридер) через COM-порт на компьютере пользователя. Для этого было решено использовать Java-апплет, и в процессе реализации возникало несколько затруднений, решение которых я и хочу описать в статье. Замечу, что в интернете мне не удалось найти единого руководства «от начала и до конца», как решить мою задачу, так что надеюсь, кому-нибудь моя статья может сэкономить несколько часов времени.
+15
Java: Тестирование страниц ВебПриложений при помощи JWebUnit и Cargo Container
4 мин
4.5KВ бытность мою j2ee программистом, приходилось разрабатывать сайты с достаточно большим количеством страниц, использующие для визуализации ajax и прочие красивости. Контроллеры можно было протестировать при помощи JUnit и моковых запросов\ответов. Но для огромного количества ftl шаблонов и их JavaScript кода такой вариант не подходил.
+10
Java: Socks 4 Proxy работа с неблокирующими сокетами
21 мин
24KНачиная с версии 1.4 в j2se появился package java.nio, который позволяет работать с сокетами в неблокирующем режиме, что зачастую повышает производительность, упрощает код и даёт дополнительные возможности и функционал. А начиная с версии j2se 1.6 на серверах под упралением ОС линукс(kernel 2.6) реализация класса Selector выполнена с использованием epoll, что обеспечивает максимально возможную производительность.
В примере описанном ниже я постараюсь продемонстрироватьь основные принципе работы с неблокирующими сокетами, на примере вполне реальной задачи – реализации Socks 4 прокси сервер.
В примере описанном ниже я постараюсь продемонстрироватьь основные принципе работы с неблокирующими сокетами, на примере вполне реальной задачи – реализации Socks 4 прокси сервер.
+32
Тестирование Spring приложений. Транзакции в тестировании
6 мин
23K
Про полезность подхода TDD (разработка через тестирование, test driven development) не слышал только ленивый или глухой. Но сегодня мы не будем обсуждать всю его полезность и красоту, а также проблемы и недостатки. Сегодня мы попробуем посмотреть, как разрабатывать unit-тесты для spring приложений. Также мы немного тронем ручное управление транзакциями в unit-тестах.
+21
Deep Dive: JDK 7 With Danny Coward
1 мин
748Я с нетерпением жду когда уже выйдет релиз JDK 7. И меня, как, наверное, и любого java разработчика, интересует что же будет нового в релизе. Рассказ о новшествах в JDK 7 от Danny Coward (Главный архитектор клиентского ПО в Sun Microsystems) можно посмотреть тут.
Итак, основные нововведения платформы:
Итак, основные нововведения платформы:
- модульность;
- кросс-языковость;
- новый сборщик мусора;
- NIO.2;
- новые Swing API.
+4
Что же всё-таки будет в Java 7 — окончательный список
3 мин
5.4KJoe Darcy (лидер проекта Project Coin из Sun) выложил окончательный список нововведений языка Java 7 (оригинал тут). Вот эти нововведения:
+57
Структура байт-кода виртуальной машины Java
4 мин
27KВ последнее время на Хабре появились статьи которые затрагивают манипуляцию байт-кода. Что заставило меня опубликовать следую статью посвященную его структуре.
У платформы java имеется две особенности. Для обеспечения кроссплатформенности программа сначала компилируется в промежуточный язык низкого уровня — байт-код. Вторая особенность загрузка исполняемых классов происходит с помощью расширяемых classloader. Это механизм обеспечивает большую гибкость и позволяет модифицировать исполняемый код при загрузке, создавать и подгружать новые классы во время выполнения программы.
Такая техника широко применяется для реализации AOP, создания тестовых фреймворков, ORM. Особенно хочется отметить terracotta, продукт с красивой идеей кластеризации jvm и на всю катушку использующей модификации байт-кода. Эта заметка будет посвящена обзору структуры байт-кода, первой части этой сильной связки.
У платформы java имеется две особенности. Для обеспечения кроссплатформенности программа сначала компилируется в промежуточный язык низкого уровня — байт-код. Вторая особенность загрузка исполняемых классов происходит с помощью расширяемых classloader. Это механизм обеспечивает большую гибкость и позволяет модифицировать исполняемый код при загрузке, создавать и подгружать новые классы во время выполнения программы.
Такая техника широко применяется для реализации AOP, создания тестовых фреймворков, ORM. Особенно хочется отметить terracotta, продукт с красивой идеей кластеризации jvm и на всю катушку использующей модификации байт-кода. Эта заметка будет посвящена обзору структуры байт-кода, первой части этой сильной связки.
+33
Разбор выражений, bytecode-way
3 мин
3.8KПриходилось ли вам разбирать выражение? Рисовать график функции по введенной с клавиатуры пользователем строке?
Согласитесь, занятие приносит больше головной боли, чем радости от результата. Возможно вы знакомы с библиотеками antlr или javacc, тогда вы отделаетесь малой кровью. Но приобретете хвост из некрасивых сгенерированных классов, который как можно быстрее скроете от посторонних глаз в самом дальнем пакете.
Написав вчера о cglib, я заметил в документации главу о модификации байт-кода. И само собой напрашивается вопрос, а можно ли в runtime заставить класс выполнять, то что очень хочется, а не то что хочет класс?
Согласитесь, занятие приносит больше головной боли, чем радости от результата. Возможно вы знакомы с библиотеками antlr или javacc, тогда вы отделаетесь малой кровью. Но приобретете хвост из некрасивых сгенерированных классов, который как можно быстрее скроете от посторонних глаз в самом дальнем пакете.
Написав вчера о cglib, я заметил в документации главу о модификации байт-кода. И само собой напрашивается вопрос, а можно ли в runtime заставить класс выполнять, то что очень хочется, а не то что хочет класс?
+16
Делаем reflection быстрой как прямые вызовы
12 мин
50KПеревод
Большинство программистов знают о reflection, которая (она — рефлексия) упрощает добавление динамических возможностей в статические языки, такие как Java/C#. Однако reflection упрекают в том, что вызовы работают очень медленно — до 500 раз медленнее. Все же это можно c легкостью исправить — покажем в этой статье как сделать reflection-вызов таким же быстрым, как и прямой (direct) вызов.
+50
HTTP сервер за 15 минут
2 мин
204KЗадача
За минимальное время написать HTTP сервер, который после запуска сможет корректно ответить браузеру и отдать простую HTML страничку (минимальное время, чтобы кода было мало, чтобы новичку вникать было проще).
У меня это заняло около 15 минут. Сервер вроде справляется с поставленной задачей.
Суть примера — показать что такое Socket, ServerSocket, InputStream, OutputStream, и Thread.
+85
Интересная работа сборщика мусора
3 мин
2.2KПроблема
Явой занялся я недавно, и столкнулся с интересной проблемой связанной с динамическим переопределением методов во время исполнения. После выхода из переопределенного метода терялась ссылка на объект. Решение проблемы затянулось в связи с тем, что на одном компьютере она была, а на другом нет.
Явой занялся я недавно, и столкнулся с интересной проблемой связанной с динамическим переопределением методов во время исполнения. После выхода из переопределенного метода терялась ссылка на объект. Решение проблемы затянулось в связи с тем, что на одном компьютере она была, а на другом нет.
+3
Знакомство с Bean Validation API
4 мин
71KНе так давно в Яве не существовало стандарта, описывающего способ валидации данных. Каждый выкручивался как мог, писались (и пишутся) свои поделки а так же используются некоторые возможности широко распространенных сервисов как Spring или Hibernate. Наибольшей проблемой было то, что валидация могла быть реализована отдельно от предметной модели и быть редунданто расбросанной по фронт- и бэкэнду. Теперь, при помощи стандарта JSR 303: Bean Validation (практически это явлается стандартизированным валидатором Hibernate) становится возможным следовать принципу «Don't Repeat Yourself»: объявлять ограничения для данных прямо в предметной модели и валидировать данные где угодно, хоть на сервере, хоть в десктопном приложении.
+32
Ближайшие события
Улучшаем документацию Java
1 мин
1.3KВ MSDN Library мне нравились пометки вида «Overrides Foo.bar()», «Inherited from Xyzzy» в обзорной таблице методов класса.
Решив, что документация должна быть удобной, я сделал пользовательский скрипт Obvious Overrides, который привносит подобные удобства в документацию Java.

Проверено в Firefox 3.5, Opera 9.6, Google Chrome.
Решив, что документация должна быть удобной, я сделал пользовательский скрипт Obvious Overrides, который привносит подобные удобства в документацию Java.

Проверено в Firefox 3.5, Opera 9.6, Google Chrome.
+5
Continuous integration and code metrics
7 мин
8.1KВ этой статье рассматривается настройка continuous integration процесса с метриками кода. Предполагается работа с java кодом и библиотеками: junit, cobertura, findbugs. В качестве системы сборки используем ant, а сам процесс будет управляться из cruise control. В качестве scm будет немного git'а.
Что мы получим в итоге? Ява проект с ant'овским сценарием сборки. Итогом сборки будет откомпилированный проект и набор метрик: отчеты по junit тестам, процент покрытия кода тестами и отчет о потенциальных ошибках. В дополнение, весь процесс сборки будет проходить ежедневно в автоматическом режиме и вся история метрик сохраняется для групповых отчетов.

Что мы получим в итоге? Ява проект с ant'овским сценарием сборки. Итогом сборки будет откомпилированный проект и набор метрик: отчеты по junit тестам, процент покрытия кода тестами и отчет о потенциальных ошибках. В дополнение, весь процесс сборки будет проходить ежедневно в автоматическом режиме и вся история метрик сохраняется для групповых отчетов.

+18
32-bit Java 6 для Mac
1 мин
1.4K
По словам очевидцев в Snow Leopard появится 32-битная версия Java 6. На данный момент обладатели Intel Core Duo(в том числе и я =) могли довольствоваться только 5 версией Java, либо BSD-портом OpenJDK.
0
Самые глупые вещи, которые я сделал будучи программистом
2 мин
8.7KПеревод
Оригинальное название статьи: «The * stupidest things I’ve done in my programming job», поэтому перевод названия статьи не очень точен, однако то, что автор имел ввиду под "*" мы опустим — мы ведь не знаем наверняка :)
Я больше не стыжусь своих грешков, так что — вперед:
Создал собственную ORM (Object Relational Mapping) библиотеку
Неразбериха в проекте после двух лет поддержки, в следствие хаков-обходов моей ORM библиотеки для запуска прямых SQL запросов
Использовать Hibernate, iBATIS, Cayenne или нечто подобное.
Я больше не стыжусь своих грешков, так что — вперед:
1. ORM
Глупость
Создал собственную ORM (Object Relational Mapping) библиотеку
Следствие
Неразбериха в проекте после двух лет поддержки, в следствие хаков-обходов моей ORM библиотеки для запуска прямых SQL запросов
Что я должен был сделать
Использовать Hibernate, iBATIS, Cayenne или нечто подобное.
+92
Java по-русски. Часть вторая: интернет-ресурсы
3 мин
206KВ продолжение первой части. Сегодня будем рассматривать ресурсы о Java в интернете, которые подразделим на 4 части: вендоры, JUG, форумы, новости. А заодно подведём итоги.

Основной сайт компании Sun содержит чисто рекламную информацию, поэтому рассматривать мы будем Сеть Разработчиков. Итак, что же здесь есть:
Вендоры
Sun Microsystems

Основной сайт компании Sun содержит чисто рекламную информацию, поэтому рассматривать мы будем Сеть Разработчиков. Итак, что же здесь есть:
- JavaFX — хит сезона. В рамках продвижения Sun проводит конкурсы по этой технологии, ещё вы можете найти документацию на русском языке и даже Wiki.
- Академические программы — информация об образовательных программах. В основном это курсы для преподавателей и учебные материалы — лекции, написанные в рамках грантов.
- Java SE, Java EE, Java ME, JavaCard за 2009 год не содержат практически никаких обновлений, а за предыдущие года есть разве что переводы некоторых статей.
- Форум довольно мёртвый, за исключением раздела о JavaFX.
- Ещё есть переводы англоязычных блогов The Aquarium и The Planetarium, посвящённых новостям о Java EE и Java для всех других платформ(SE, ME, FX, etc...) соответственно.
+13
Другие возможности Java
4 мин
6.8KЯ продолжаю переводить источник первой статьи. Всё больше очевидных вещей, не смотря на это я все же решил, что повторение — не такое плохое занятие.
И коли источник исчерпыет себя — призыв кхабра-java-сообществу : «Don’t be jealous!», дополните этот список в комментариях, поделитесь опытом. А пока — продолжение предыдущей статьи, после монтажа, дубляжа и разбавления собственным опытом:
Почти все в курсе, что в поставку JDK входит внушительное число tools’ов. Однако в повседневной работе, думаю, многие кроме как java, javac, jar не используют. Что же ещё можно взять из папки bin:
И коли источник исчерпыет себя — призыв к
JDK tools
Почти все в курсе, что в поставку JDK входит внушительное число tools’ов. Однако в повседневной работе, думаю, многие кроме как java, javac, jar не используют. Что же ещё можно взять из папки bin:
+42
Книжная полка: Java
6 мин
108KПо мотивам «JAVA → Java по-русски. Часть первая: Книги» habrahabr.ru/blogs/java/66568
Добрый день, уважаемые хабровчане!
В предыдущем обзоре Java книг, проведенном пользователем Scala, было рассказано о «практических» книгах, вышедших на рынок в последние три года. Я же хочу рассказать об этих и других книгах с несколько иного ракурса: попытаться выделить ценность информации книг.
Я не любитель читать с монитора, и предпочитаю книги покупать в бумажном варианте. Чтобы сделать осознанный выбор, следует отдавать себе отчет в том, что книга несет некие фундаментальные знания, но никак не сборник «последние фишки». Также в данной статье я хочу упомянуть о других известнейших трудах, не касающихся Java напрямую. Посмотрим, что лучше всего выбрать для обучения языку?
+23
Вклад авторов
olegchir 4056.4tagir_valeev 2369.0phillennium 1516.423derevo 1271.0ARG89 1078.2spring_aio 1016.5igor_suhorukov 945.2dbelob 902.0doom369 826.0alizar 756.0