java & open source projects

Συζητήσεις για γλώσσες προγραμματισμού και θέματα σχετικά με προγραμματισμό.
User avatar
tsilochr
Wow! Terabyte level
Wow! Terabyte level
Posts: 3246
Joined: Tue Mar 16, 2004 2:47 pm
Academic status: PhD
Gender:
Location: mm.aueb.gr
Contact:

Re: java & open source projects

Post by tsilochr » Tue Jul 01, 2008 11:36 am

rose wrote:Μπορείτε να κατεβάσετε απο εδώ http://www.theserverside.com/tt/books/w ... /index.tss
το βιβλίο Mastering Enterprise JavaBeans 3.0 που το προσφέρει δωρεάν το http://www.theserverside.com/ ;)
Όχι και τόσο free, θέλει login/sign up
User avatar
rose
Gbyte level
Gbyte level
Posts: 1921
Joined: Sun May 20, 2007 8:59 pm
Academic status: 4th year
Gender:

Re: java & open source projects

Post by rose » Tue Jul 01, 2008 11:47 am

tsilochr wrote:
rose wrote:Μπορείτε να κατεβάσετε απο εδώ http://www.theserverside.com/tt/books/w ... /index.tss
το βιβλίο Mastering Enterprise JavaBeans 3.0 που το προσφέρει δωρεάν το http://www.theserverside.com/ ;)
Όχι και τόσο free, θέλει login/sign up
Ελα ρε το πολύ να παίρνεις κανένα αρθρο για server side java.
το theserverside θεωρείται ένα από τα πιο σεβαστά java forum. :-p
που θα πάει θα το δουμε...
User avatar
madMax
byte level
byte level
Posts: 90
Joined: Thu Jul 05, 2007 2:19 pm

Re: java & open source projects

Post by madMax » Wed Jul 02, 2008 10:05 am

http://www.pdfbox.org/
Χρήσιμο για επεξεργασία pdf εγγράφων
User avatar
rose
Gbyte level
Gbyte level
Posts: 1921
Joined: Sun May 20, 2007 8:59 pm
Academic status: 4th year
Gender:

Re: java & open source projects

Post by rose » Thu Jul 10, 2008 4:08 pm

Dependency Injection using GUICE.http://code.google.com/p/google-guice/

add guice-1.0.jar to your classpath

...Basic domain model object,FOO

Code: Select all

public class Foo {

    private Long id;
    private String name;

    //Generate and getters/setters in your IDE

}
...Then create the interface for the FooManager

Code: Select all

public interface FooManager {

    public Foo get(Long id);
    public void save(Foo foo);

}
...Then create an implementation of the FooManager

Code: Select all

public class FooManagerImpl implements FooManager {

    private static Long fooSequence = 1l;
    private static final Map<Long, Foo> foos = new HashMap<Long, Foo>();

    public Foo get(Long id) {
        return foos.get(id);
    }

    public void save(Foo foo) {
        if(foo == null) return;
        if(foo.getId() == null) {
            foo.setId(fooSequence);
            fooSequence++;
        }
        foos.put(foo.getId(), foo);
    }
}

...some business...

Code: Select all

public class FooController {

    private FooManager fooManager;

    //----- Controller Actions -------------------------------------------------
    public Foo create(String name) {
        Foo foo = new Foo();
        foo.setName(name);
        fooManager.save(foo);
        return foo;
    }

    public Foo retrieve(Long id) {
        return fooManager.get(id);
    }

    //----- Getters/Setters ----------------------------------------------------
    public FooManager getFooManager() {
        return fooManager;
    }

    @Inject
    public void setFooManager(FooManager fooManager) {
        this.fooManager = fooManager;
    }

}
....our Guice configuration

Code: Select all

public class FooModule extends AbstractModule {

    protected void configure() {
        bind(FooManager.class)
            .to(FooManagerImpl.class)
            .in(Scopes.SINGLETON);
    }

}

..test it!

Code: Select all

public class FooDispatcher {

    public static void main(String[] args) {

        FooController controller = new FooController();
        Injector injector = Guice.createInjector(new FooModule());
        injector.injectMembers(controller);                                          
        //Our action is now injected with a FooManager, so let's use it
        Foo foo = controller.create("Bar");
        Foo bar = controller.retrieve(foo.getId());
        System.out.println("bar.name => "+bar.getName());

    }

}
Πηγή : http://paulbarry.com/articles/2007/03/1 ... ello-world
που θα πάει θα το δουμε...
User avatar
tsilochr
Wow! Terabyte level
Wow! Terabyte level
Posts: 3246
Joined: Tue Mar 16, 2004 2:47 pm
Academic status: PhD
Gender:
Location: mm.aueb.gr
Contact:

Re: java & open source projects

Post by tsilochr » Thu Jul 10, 2008 4:12 pm

για ποιο λόγο να κάνω switch από Spring σε αυτό?
User avatar
rose
Gbyte level
Gbyte level
Posts: 1921
Joined: Sun May 20, 2007 8:59 pm
Academic status: 4th year
Gender:

Re: java & open source projects

Post by rose » Thu Jul 10, 2008 4:25 pm

tsilochr wrote:για ποιο λόγο να κάνω switch από Spring σε αυτό?

http://code.google.com/p/google-guice/w ... Comparison

http://www.theserverside.com/news/threa ... d_id=44593

Τα συμπεράσματα δικά σου. :-D
που θα πάει θα το δουμε...
User avatar
tsilochr
Wow! Terabyte level
Wow! Terabyte level
Posts: 3246
Joined: Tue Mar 16, 2004 2:47 pm
Academic status: PhD
Gender:
Location: mm.aueb.gr
Contact:

Re: java & open source projects

Post by tsilochr » Fri Jul 11, 2008 11:39 am

το κοιτάζω, μέχρι στιγμής δεν μου αρέσει το θέμα με τα annotations. Έχω βολευτεί με το spring γιατί δεν χρειάζεται πουθενά να γράψω spring-aware κώδικα, δλδ να κάνω import κλάσσεις του spring. Τα περνάω όλα σε xml στο web app και ο κώδικας μου είναι πεντακάθαρος από dependencies. Βέβαια το web app εξαρτάται από το spring αλλά o δικός μου κώδικας δεν το απαιτεί.
User avatar
rose
Gbyte level
Gbyte level
Posts: 1921
Joined: Sun May 20, 2007 8:59 pm
Academic status: 4th year
Gender:

Re: java & open source projects

Post by rose » Fri Jul 11, 2008 12:49 pm

Βασικά νομίζω οτι το spring είναι αρκετά βαρύ για plain java που απλά θέλεις dependency injection
που θα πάει θα το δουμε...
User avatar
cyberpython
Mbyte level
Mbyte level
Posts: 654
Joined: Wed Nov 21, 2007 8:18 pm
Academic status: Alumnus/a
Gender:
Location: Αθηνα
Contact:

Re: java & open source projects

Post by cyberpython » Tue Jul 29, 2008 7:42 pm

http://www.javazoom.net/javalayer/javalayer.html

Για όσους θέλουν να προσθέσουν mp3 playback στις εφαρμογές τους
User avatar
cyberpython
Mbyte level
Mbyte level
Posts: 654
Joined: Wed Nov 21, 2007 8:18 pm
Academic status: Alumnus/a
Gender:
Location: Αθηνα
Contact:

Re: java & open source projects

Post by cyberpython » Thu Jul 31, 2008 6:17 pm

Για όσους θέλουν να κατασκευάσουν εφαρμογές AJAX αλλά προτιμούν να γράφουν σε Java :

http://code.google.com/webtoolkit/
User avatar
rose
Gbyte level
Gbyte level
Posts: 1921
Joined: Sun May 20, 2007 8:59 pm
Academic status: 4th year
Gender:

Re: java & open source projects

Post by rose » Sun Aug 03, 2008 2:18 pm

cyberpython wrote:Για όσους θέλουν να κατασκευάσουν εφαρμογές AJAX αλλά προτιμούν να γράφουν σε Java :

http://code.google.com/webtoolkit/


Δες και αυτό: http://echo.nextapp.com/site/.


Και μια συζήτηση που αξίζει να διαβαστεί, για τα δυο αυτα υπέροχα frameworks.
http://www.theserverside.com/news/threa ... d_id=40804
που θα πάει θα το δουμε...
User avatar
rose
Gbyte level
Gbyte level
Posts: 1921
Joined: Sun May 20, 2007 8:59 pm
Academic status: 4th year
Gender:

Re: java & open source projects

Post by rose » Tue Aug 19, 2008 11:27 am

CSVObjects is a free and open source Java based framework for transparently parsing and unmarshalling Comma Separated Value (CSV) files and records into Plain Old Java Objects without the need to code the parsing logic manually
.

Πολύ απλό και χρήσιμο.


http://www.csvobjects.org/
που θα πάει θα το δουμε...
User avatar
Master_ex
Mbyte level
Mbyte level
Posts: 991
Joined: Tue Nov 06, 2007 11:11 pm
Academic status: N>4
Gender:

Re: java & open source projects

Post by Master_ex » Sat Sep 13, 2008 10:43 pm

Δεν είμαι σίγουρος ότι ανήκει εδώ, αλλά πρόσφατα όταν έψαχνα κάτι σχετικά με DOS έπεσε σε αυτό το οποίο είναι:
http://www-jpc.physics.ox.ac.uk/ wrote:What is JPC?

JPC is an x86 PC emulator written entirely in Java. Read more about what JPC is, and the underlying technology behind it.
Υπάρχει τόσο για DOS όσο και για linux και υπάρχει demo που τρέχει στον Broswer. Στο DOS έχουν και κάποια παιχνίδια όπως το KEEN και κάποιο pacman :-D
http://foss.aueb.gr the penguin strikes back <(' ) | channel #foss-aueb @ irc.freenode.net
Image Play and help!
User avatar
Zifnab
Venus Former Team Member
Posts: 7581
Joined: Tue Nov 15, 2005 2:42 am
Academic status: MSc
Gender:
Location: Connecticut
Contact:

Re: java & open source projects

Post by Zifnab » Sat Sep 13, 2008 11:07 pm

Δυστυχώς αν το JPC τρέχει κάτω από browser δεν νομίζω να τα καταφέρνει πάρα πολύ καλά με παλιότερα παιχνίδια που το simulation είναι ακόμα πιο βαρύ. Χωρίς να το έχω δει και κρίνοντας από το Dosbox που δυσκολεύεται σε ένα Pentium 4 να τρέξει παιχνίδια πρίν το 1992...
User avatar
rose
Gbyte level
Gbyte level
Posts: 1921
Joined: Sun May 20, 2007 8:59 pm
Academic status: 4th year
Gender:

Re: java & open source projects

Post by rose » Fri Sep 19, 2008 10:14 am

xmltool
With XML Tool you will be able to quickly:
Create new XML documents from external sources or new document from scrash
Manage namespaces
Manipulating nodes (add, remove, rename)
Manipulating data (add, remove text or CDATA)
Navigate into the document with shortcuts and XPath (note: XPath supports namespaces)
Tranform an XMlDoc instance to a String or a Document
Validate your document against schemas

http://code.google.com/p/xmltool/
http://code.google.com/p/xmltool/wiki/Manual

Εχει χωθεί για τα καλά η google σε java frameworks....
που θα πάει θα το δουμε...
User avatar
tsilochr
Wow! Terabyte level
Wow! Terabyte level
Posts: 3246
Joined: Tue Mar 16, 2004 2:47 pm
Academic status: PhD
Gender:
Location: mm.aueb.gr
Contact:

Re: java & open source projects

Post by tsilochr » Fri Sep 19, 2008 12:28 pm

Μιας και έβαλες για XML, JAXB και τέρμα το XML handling, μόνο POJOS ;)
User avatar
rose
Gbyte level
Gbyte level
Posts: 1921
Joined: Sun May 20, 2007 8:59 pm
Academic status: 4th year
Gender:

Re: java & open source projects

Post by rose » Fri Sep 19, 2008 12:59 pm

Σωστός, δές και αυτό προσωπικά έχω μείνει απόλυτα ικανοποιημένος.
Many projects read XML configuration files to provide initialization of various Java objects within the system. There are several ways of doing this, and the Digester component was designed to provide a common implementation that can be used in many different projects.


http://commons.apache.org/digester/


http://www.onjava.com/pub/a/onjava/2002 ... ester.html
που θα πάει θα το δουμε...
User avatar
tsilochr
Wow! Terabyte level
Wow! Terabyte level
Posts: 3246
Joined: Tue Mar 16, 2004 2:47 pm
Academic status: PhD
Gender:
Location: mm.aueb.gr
Contact:

Re: java & open source projects

Post by tsilochr » Tue Oct 07, 2008 12:38 am

nWordpres - the Java based Wordpress

http://www.numiton.com/blog/?p=28
User avatar
rose
Gbyte level
Gbyte level
Posts: 1921
Joined: Sun May 20, 2007 8:59 pm
Academic status: 4th year
Gender:

Re: java & open source projects

Post by rose » Fri Oct 31, 2008 2:03 pm

Commons Email aims to provide a API for sending email. It is built on top of the Java Mail API, which it aims to simplify.

Some of the mail classes that are provided are as follows:

SimpleEmail - This class is used to send basic text based emails.
MultiPartEmail - This class is used to send multipart messages. This allows a text message with attachments either inline or attached.
HtmlEmail - This class is used to send HTML formatted emails. It has all of the capabilities as MultiPartEmail allowing attachments to be easily added. It also supports embedded images.
EmailAttachment - This is a simple container class to allow for easy handling of attachments. It is for use with instances of MultiPartEmail and HtmlEmail.
http://commons.apache.org/email/
που θα πάει θα το δουμε...
User avatar
cyberpython
Mbyte level
Mbyte level
Posts: 654
Joined: Wed Nov 21, 2007 8:18 pm
Academic status: Alumnus/a
Gender:
Location: Αθηνα
Contact:

Re: java & open source projects

Post by cyberpython » Sat Jan 17, 2009 3:57 pm

IconLocator
Native εικονίδια σε περιβάλλοντα που ακολουθούν το icon theme specification του Freedesktop.org (Gnome/KDE/XFCE) χωρίς τη χρήση του JNI!
User avatar
rose
Gbyte level
Gbyte level
Posts: 1921
Joined: Sun May 20, 2007 8:59 pm
Academic status: 4th year
Gender:

Re: java & open source projects

Post by rose » Mon Jan 19, 2009 11:11 am

cyberpython wrote:IconLocator
Native εικονίδια σε περιβάλλοντα που ακολουθούν το icon theme specification του Freedesktop.org (Gnome/KDE/XFCE) χωρίς τη χρήση του JNI!
Πές μας κάτι παραπάνω για αυτό...τι ειναι το icon theme specification; :smt023
που θα πάει θα το δουμε...
User avatar
cyberpython
Mbyte level
Mbyte level
Posts: 654
Joined: Wed Nov 21, 2007 8:18 pm
Academic status: Alumnus/a
Gender:
Location: Αθηνα
Contact:

Re: java & open source projects

Post by cyberpython » Mon Jan 19, 2009 2:47 pm

rose wrote: Πές μας κάτι παραπάνω για αυτό...τι ειναι το icon theme specification; :smt023
Τα open-source περιβάλλοντα εργασίας (Gnome/KDE/XFCE κλπ.) μέχρι πριν λίγο καιρό ήταν εντελώς ασύμβατα μεταξύ τους. Για να γεφυρωθεί αυτό το χάσμα δημιουργήθηκε το Freedesktop.org που είναι ένας οργανισμός που προτείνει γενικά πρότυπα έτσι ώστε αυτές οι διαφορές να μην είναι ορατές στον τελικό χρήστη (είτε αυτός είναι άνθρωπος είτε εφαρμογή).

Όσον αφορά τα εικονίδια υπάρχει το Icon Theme Specification, το οποίο ακολουθούν και τα μεγαλύτερα desktop environments (Gnome/KDE/XFCE), σύμφωνα με το οποίο υπάρχουν συγκεκριμένα formats στα οποία μπορούν να αποθηκευθούν τα εικονίδια (PNG, SVG -> και XPM αλλά μόνο για συμβατότητα) αλλά και τοποθεσίες στις οποίες πρέπει να αναζήτήσει μία εφαρμογή ένα εικονίδιο (επίσης καθορίζεται και η σειρά με την οποία πρέπει να γίνει η αναζήτηση κάθε τοποθεσίας). Επίσης προτείνεται και ένας αλγόριθμος για την αναζήτηση δεδομένου του ονόματος του ζητούμενου εικονιδίου και του ονόματος του icon-theme που θέλουμε να χρησιμοποιήσουμε.

Τη βιβλιοθήκη την έγραψα επειδή έψαχνα έναν τρόπο για να έχω native εικονίδια σε Linux και το μόνο που βρήκα είναι το IconService του JDIC, αλλά δε με βόλευε καθώς κάνει χρήση του JNI και επομένως θα έπρεπε μαζί με το JAR της εφαρμογής να εγκαθίστανται και εξωτερικά αρχεία .so (ή .dll σε Windows - ένα μεγάλο συν όμως του IconService είναι οτι επιτρέπει τη χρήση native εικονιδίων σε Windows κάτι που δε μπορεί να γίνει με το IconLocator).

Αν κάποιος τη χρησιμοποιήσει το μόνο που πρέπει να κάνει (πέρα από το να συμπεριλάβει το JAR στο Classpath :) ) είναι να δημιουργήσει ένα αντικείμενο IconManager και να καλέσει τη μέθοδο getIcon(<όνομα_εικονιδίου>, <μέγεθος>).

Η βασική λειτουργικότητα εμπεριέχεται στην τάξη FreedesktopIconLocator (χρησιμοποιείται από την IconManager αυτόματα αν είμαστε σε συστήμα Linux) που κάνει την αναζήτηση για ένα εικονίδιο (για δεδομένο όνομα - μέγεθος) και επιστρέφει ένα java.io.File από το οποίο η τάξη IconManager κατασκευάζει ένα ImageIcon (αν δεν υπάρχει ακριβώς το εικονίδιο που ζητήσαμε αλλά σε άλλη διάσταση τότε γίνεται σμίκρυνση ή κεντράρισμα).
Αν δε βρεθεί το ζητούμενο εικονίδιο τότε χρησιμοποιείται ένα αντικείμενο μίας τάξης που υλοποιεί τη διεπαφή FallbackIconLocator (πρέπει να το περάσουμε ως παράμετρο στον κατασκευαστή του IconManager) ή αν δεν έχουμε δώσει τέτοιο αντικείμενο τότε η αναζήτηση επιστρέφει null.
Αν δεν είμαστε σε Linux, τότε χρησιμοποιείται ένα αντικείμενο της τάξης DefaultIconLocator που επιστρέφει πάντα το αποτέλεσμα του FallbackIconLoader (ή null αν δεν υπάρχει διαθέσιμος FallbackIconLoader).

Προσωπικά, πρώτα κατασκευάζω το GUI στο NetBeans, ορίζω τα εικονίδια που θέλω και στη συνέχεια με την κατασκευή του Frame της εφαρμογής κάνω την αναζήτηση για native εικονίδια - αν βρεθούν τότε αντικαθιστώ αυτά που έχω ορίσει κατά το σχεδιασμό του GUI, αλλιώς τα αφήνω όπως είναι (έτσι έχω τα στανταρ εικονίδια π.χ. σε Windows και αλλάζουν σε Linux ανάλογα με το icon-theme που χρησιμοποιείται).

Για να βρούμε το όνομα ενός standard εικονιδίου που θέλουμε να χρησιμοποιήσουμε μπορούμε να ανατρέξουμε στο Freedesktop Icon Naming Specification.

Ένα πρόβλημα είναι οτι η "αναγνώριση" του desktop environment στο οποίο βρισκόμαστε γίνεται μέσα από την εξέταση των τρεχουσών διεργασιών (οπότε αν μία διεργασία αλλάξει όνομα σε κάποια στιγμή στο μέλλον θα πρέπει να ενημερωθεί ο κώδικας κατάλληλα).
Post Reply

Return to “Προγραμματισμός”