Eine aufbereitete Darstellung der Quelle

 
     
 
 
Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 

Benutzer

Quelle  README.txt

  Sprache: Text
 

2009/04/20.

-------
1- Goal
-------

MkStub is small tool that takes a given JAR and filters all the private stuff we don't want to
expose, e.g.:
- remove all private members.
- only include a subset of classes.
- exclude specific classes, fields or methods.

Each method body is replaced by the bytecode for 'throw new RuntimeException("stub");'.


--------
2- Usage
--------

To control it, you give it patterns like this:

  +foo  => accepts all items which signature is exactly "foo"
  +foo* => accepts all items which signature starts by "foo"
  -bar  => rejects all items which signature is exactly "bar"
  -bar* => rejects all items which signature starts by "bar"

Signatures are defined by:
- a package name, e.g. com.android.blah
- a dot followed by a class name
- a # followed by a field or method name
- an internal "Java method signature" that define parameters types and return value. 

Examples of signatures:
 com.android.blah
 com.android.blah.MyClass
 com.android.blah.MyClass$MyInnerClass
 com.android.blah.MyClass#mPrivateField
 com.android.blah.MyClass#getInternalStuff
 com.android.blah.MyClass#getInternalStuff(Ljava/lang/String;I)V

An example of configuration file:
 +com.android.blah
 -com.android.blah.MyClass$MyInnerClass
 -com.android.blah.MyClass#mPrivateField
 -com.android.blah.MyClass#getInternalStuff(Ljava/lang/String;I)V

This would include only the indicated package yet would totally exclude the inner class
and the specific field and the method with the exact given signature.



To invoke MkStub, the syntax is:

  $ java -jar mkstubs input.jar output.jar [@configfile -pattern +pattern ...]
    


--------------------
3- Known Limitations
--------------------

Most of the following limitations exist solely because of the short development time and
because the tool was designed to solve one task and not just to be super generic. That means
any limitation here can be easily lifted.

- The generated constructors are not proper. They do not invoke the matching super()
  before the generated throw exception. Any attempt to load such a class should trigger
  an error from the byte code verifier or the class loader.

- We do not currently check whether a class or method uses only included types.
  Suggestion: if type x.y.z is excluded, then any field, annotation, generic type,
  method parameter or return value that uses that type should generate a fatal error.

- We do not filter out private classes. Their .class will still be present in the
  output (and stubbed), unless they are explicitly excluded.
  This is not orthogonal to the fact that private fields and methods are automatically
  excluded.

- Private fields and methods are automatically excluded. There is no command line
  switch to prevent that.

- The stubbed source is always generated. For example if the output jar name is
  given as ~/somedir/myfinal.jar, there will be a directory created at
  ~/somedir/myfinal.jar_sources that will contain the equivalent Java sources.
  There is not command line switch to prevent that.

- There is no attempt to match features or behavior with DroidDoc.

-- 
end

Messung V0.5 in Prozent
C=94 H=78 G=86

¤ Dauer der Verarbeitung: 0.20 Sekunden  (vorverarbeitet am  2026-06-27) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Quellcodebibliothek
     Eigene Quellcodes
     Fremde Quellcodes
     Suchen

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik