Archive for the 'java' Category

Курс лекций “Программирование на Java” Донецкого национального технического университета

Thursday, December 21st, 2006

Warning: file_get_contents(http://jug.in.ntu-kpi.kiev.ua/glossary/get) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in /home/www/htdocs/blog/wp-content/plugins/jug-glossary.php on line 40

На сайте Юрия Попова (http://popoff.donetsk.ua) размещён “draft” курса лекций по языку программирования Java: http://popoff.donetsk.ua/text/donntu/java/ Со слов автора, этот курс ещё в разработке, потому охота пожелать успеха и завершить начинание.

Ознакомление с курсом можно начать с первой лекции, “История создания и основные термины”: http://popoff.donetsk.ua/text/donntu/java/lection-1.html

The Finch Wire News: Open Source Java

Tuesday, November 21st, 2006

Warning: file_get_contents(http://jug.in.ntu-kpi.kiev.ua/glossary/get) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in /home/www/htdocs/blog/wp-content/plugins/jug-glossary.php on line 40

Оригинал - из Juggy The Java Finch’s Blog

Open Source Java - GPL

Tuesday, November 21st, 2006

Warning: file_get_contents(http://jug.in.ntu-kpi.kiev.ua/glossary/get) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in /home/www/htdocs/blog/wp-content/plugins/jug-glossary.php on line 40

http://java.sys-con.com/read/302954.htm

Pepperdine, a former Enterprise Editor of Java Developer’s Journal, identifies two controls that, he says “offer us protection from incompatible forks that come with the Java label.

  • The first is that the Java specification is still controlled by the JCP and so “you can’t call something Java unless it passes the compatibility test suite (CTS).” The second key element is the choice of license, the GPL.
    Pepperdine seeks to clear up a widespread misapprehension about the GPL:
  • “What people fear is that GPL license requires that anything that touches a piece of GPL’ed code must be published. The implication is that all Java applications that make use of Sun’s JDK/JRE would be copy-left’ed into the world of open source. This is where the Classpath exception comes into play.

Classspath is the GNU implementation of the Java platform specification. In the license agreement that comes it is a specific exception to the GPL license. That exception limits the reach of the GPL license by stating that only code modifications to Classpath must be republished and code extending or using Classpath does not. Let’s consider this in light of an example using java.util.ArrayList.

If all you were to do was subclass ArrayList than the Classpath exception would apply and you would not have to publish your code. However, if you were to alter the code in ArrayList, than you would be required to publish your modifications. As you can see the Classpath exception leaves business free to build upon yet protects the underlying implementation.”

All on Java Programming

Monday, November 20th, 2006

Warning: file_get_contents(http://jug.in.ntu-kpi.kiev.ua/glossary/get) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in /home/www/htdocs/blog/wp-content/plugins/jug-glossary.php on line 40

В рамках проекта Google Co-Op участниками сообщества создана редактируемая директория сайтов, содержащих документацию по java- и web- программированию. Предложенные участниками сайты выделены; в результатах поиска присутствуют информация и с тех сайтов, которые не были добавлены.

Присоединяйтесь: All on Java Programming !

P.S. Для поиска можете воспользоваться:

  • формой, расположенной справа-вверху этого блога
  • титульной страницей сайта jug.org.ua
  • адресом в проекте Co-Op

JBoss Web Server

Friday, November 17th, 2006

Warning: file_get_contents(http://jug.in.ntu-kpi.kiev.ua/glossary/get) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in /home/www/htdocs/blog/wp-content/plugins/jug-glossary.php on line 40

http://www.jboss.com/products/jbossweb

Enterprise Web Server powered by Apache Tomcat.

JBoss Web Server - новый opensource проект разработки единой высокопроизводительной платформы для развёртывания приложений, основанных на таких технологиях:

  • Java Server Pages (JSP) и Java Servlet
  • Microsoft ASP.NET
  • PHP и CGI.

JBoss Web построен на базе Apache Tomcat и включает такие технологии как Apache Portable Runtime (APR) и Tomcat native technologies, что позволяет достичь характеристик масштабируемости и производительности, сравнимых и превосходящих возможности Apache HTTP Server.

JBoss Web Server характеризуется такими функциональными возможностями:

  • Возможность одновременного обслуживания более чем 10,000 подключений
  • Поддержка протоколов HTTP, HTTPS и AJP (Apache JServ Protocol)
  • OpenSSL для поддержки Secure Sockets Layer (SSL)
  • URL rewriting “на лету” благодаря гибкому механизму обработки URL-запросов, поддерживающему неограниченное количество правил и условий
  • Поддержка “in-” и “out-of-process” техник выполнения CGI и PHP скриптов, а также приложений ASP.NET
  • Улучшенный балансировщик нагрузки, предоставляющий высокий уровень доступности приложений и возможность сегментации удалённых подсистем, выполняющихся в режиме “out-of-process”

Подробности: http://www.jboss.com/products/jbossweb

Эклипсу исполнилось пять лет

Thursday, November 2nd, 2006

Warning: file_get_contents(http://jug.in.ntu-kpi.kiev.ua/glossary/get) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in /home/www/htdocs/blog/wp-content/plugins/jug-glossary.php on line 40

Оригинал

Проекту Eclipse 5 лет!

7 ноября 2001 года IBM выложила Eclipse в опенсорс.

Simple Java Network Transparency

Thursday, November 2nd, 2006

Warning: file_get_contents(http://jug.in.ntu-kpi.kiev.ua/glossary/get) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in /home/www/htdocs/blog/wp-content/plugins/jug-glossary.php on line 40

Оригинал

A short example of how to provide, and use ordinary Java objects across the network, without modification. No XML, no annotations: simply powerful network distributed applications that everyone can immediately understand, and use

Сегодня мы будем обращатся к удаленному объекту физически расположенном на другой тачке, так как будто бы он находится в одной и той же JVM.

Этот пример показывает как использовать класс TransparentItemProxy из проекта cajo. Хм, хотя название у проекта cajo довольно странное название, сделать эту мутку с помощью класса TransparentItemProxy довольно легко, никаких тебе WSDL… :)

Сначала сделаем интерфейс общий для сервера и клиента. Вообще говоря, можем наклепать сколько угодно интерфейсов даже для одного и того же класса.

Duck.java

public interface Duck {
   boolean looks();
   boolean walks();
   boolean talks();
   Duck getDuck();
}

Теперь сделаем простой POJO сервер, реализующий интерфейс, который нужно будет удаленно вызывать.

DuckServer.java

import java.io.Serializable;
import gnu.cajo.invoke.Remote;
import gnu.cajo.utils.ItemServer;
import gnu.cajo.utils.CodebaseServer;

public class DuckServer implements Duck, Serializable {
  public boolean looks() {
     System.out.println(”hi there!”);
     return true;
  }

  public boolean walks() {
     System.out.println(”waddle waddle”);
     return true;
  }

  public boolean talks() {
     System.out.println(”quack quack!”);
     return true;
  }

  public Duck getDuck() {
     return new DuckServer();
  }

public static void main(String args[]) { // simple unit test
  try {
          Remote.config(null, 1198, null, 0); // use cajo port 1198
          new CodebaseServer(null, 0);
          ItemServer.bind(new DuckServer(), “Donald”);
          System.out.println(”duck server running”);
     } catch(Exception x) {
          x.printStackTrace();

   }
  }
}

Компилируем удаленный интерфейс Duck и сервер его реализующий, для этого нужна либа https://cajo.dev.java.net/cajo.jar

Компилируем

javac -classpath . Duck.java
javac -classpath cajo.jar;. DuckServer.java

Запускаем сервер

java -classpath cajo.jar;. DuckServer

Отлично. Теперь быстро напишем клиента, который будет общатся с сервером.

DuckClient.java

import gnu.cajo.invoke.NoSecurityManager;
import gnu.cajo.utils.extra.TransparentItemProxy;

public class DuckClient { // try out DuckServer
  public static void main(String args[]) {
    try {
         System.setSecurityManager(new NoSecurityManager());
          Duck duck = (Duck)TransparentItemProxy.getItem(
              “//serverHost:1198/Donald”,
              new Class[] { Duck.class }
          );

       duck = duck.getDuck(); // by value
       System.out.println(”looks like = ” + duck.looks());
       System.out.println(”walks like = ” + duck.walks());
       System.out.println(”talks like = ” + duck.talks());

    } catch(Exception x) {
        x.printStackTrace();
    }
  }
}

Примечание: замените localhost на имя хоста с запущенным сервером.

Компилируем и запускаем клиент

javac -classpath cajo.jar;. DuckClient.java
java -classpath cajo.jar;. DuckClient

У клиента в консоли будет

looks like = true
walks like = true
talks like = true

а в консоли сервера

hi there!
waddle waddle
quack quack!

Получается, что клиент использует серверный объект так, как будто бы тот был создан пару строчками выше.

В этом примере использовался вызов удаленного объекта по ссылке, вы можете посмотреть пример использования удаленного объекта по значению.