2009-08-04 23 views
11

Qual è lo scopo delle classi in questo pacchetto?Pacchetto "repackaged" Google App Engine

Desidero utilizzare la codifica Base64 nella mia app. Mentre sto digitando via in Eclipse, mi viene richiesto se voglio importare una classe chiamata "com.google.appengine.repackaged.com.google.common.util.Base64"

Non riesco a trovare alcuna documentazione su cosa fa questa classe. No javadoc, o nessuna menzione nel manuale di Google App Engine (che posso vedere). È una specie di API "nascosta" a cui non dovrei avere accesso?

+0

Mi sembra che non ci sia una buona codifica Base64 nelle librerie standard GAE/J (lo trovo un po 'strano). Immagino che le migliori opzioni siano apache.commons.codec o guava. – Tom

risposta

12

È una specie di API "nascosta" a cui non dovrei avere accesso?

Sì.

Lo scopo del repackaging delle classi Java è quello di avere una copia privata di una libreria che altrimenti potrebbe entrare in conflitto con un'altra versione di quella libreria (che lo sviluppatore dell'applicazione aggiunge al suo progetto come file jar).

È una possibile risposta a JAR-hell.

Anche il JDK utilizza questo meccanismo, ad es. con com.sun.org.apache.xerces che è una libreria di analisi XML sviluppata dal progetto Apache che Sun ha scelto di includere (riconfezionato).

Non chiamare direttamente queste classi. (Si potrebbe, e probabilmente funzionerebbero bene, ma poiché non fanno parte dell'API ufficiale, potrebbero scomparire nella prossima versione).

+1

Puoi nascondere questi pacchetti da mostrare in Eclipse automaticamente completando: http://stackoverflow.com/questions/5538714/how-to-hide-some-eclipse-autocomplete-results –