0

for my research I would like to know the authors of some of the Java standard library classes like Socket. I tried it with openjdk but was not that successful. I would like to see which author wrote what part of the API documentation.

Selphiron
  • 897
  • 1
  • 12
  • 30
  • 2
    there is an annotation `@author unascribed`. – DimaSan Aug 30 '16 at 11:25
  • If you have any issue with api, you can probably file a bug here - http://bugreport.java.com/ – Fairoz Aug 30 '16 at 11:30
  • Use Ide Like netbeans or eclipse type some code and Press ctlr+right mouse at Like "ArrayList" to find out what you looking for – Bibek Shakya Aug 30 '16 at 11:31
  • @DimaSan Where did you find that? According to [this](http://www.oracle.com/technetwork/java/javase/documentation/index-137868.html) "unascribed" means author unknown. Is it really possible that the authors of the Socket class and its documentation are unknown? – Selphiron Aug 30 '16 at 12:50
  • 2
    @Selphiron Yes, it is. Josh Bloch said several times (including at Devoxx several years ago) that he designed some parts of the API, but he didn't recollect precisely who wrote what for everything. So even if you put a name on it, the author might not be able to actually say "yes, it's me who wrote that". – Olivier Grégoire Aug 30 '16 at 13:02

1 Answers1

2

I found it in the JavaDoc to the java.net.Socket class:

/**
 * This class implements client sockets (also called just
 * "sockets"). A socket is an endpoint for communication
 * between two machines.
 * <p>
 * The actual work of the socket is performed by an instance of the
 * {@code SocketImpl} class. An application, by changing
 * the socket factory that creates the socket implementation,
 * can configure itself to create sockets appropriate to the local
 * firewall.
 *
 * @author  unascribed
 * @see     java.net.Socket#setSocketImplFactory(java.net.SocketImplFactory)
 * @see     java.net.SocketImpl
 * @see     java.nio.channels.SocketChannel
 * @since   JDK1.0
 */
public
class Socket implements java.io.Closeable

The same way you can get the author of SocketChannel class:

* @author Mark Reinhold
* @author JSR-51 Expert Group
* @since 1.4

And SocketImplFactory interface:

* @author  Arthur van Hoff
* @see     java.net.Socket
* @see     java.net.ServerSocket
* @since   JDK1.0

You see this class was included to JDK 1.0 version, that was released in 1996. Probably there were a group of authors, and they don't specify their names in JavaDoc.

UPDATE. As @Selphiron found, there are OpenJDK Mercurial Reposotories. There are a lot of useful technical information on the left upper corner such as log, branches, tags and so on.

Example for Gregorian Calendar class.

DimaSan
  • 12,264
  • 11
  • 65
  • 75
  • Ah I seem, thanks. That is almost what I need. Now is there a way to see which author did what? (assuming that there are multiple authors). Maybe in the history of the file? Where could I find that? – Selphiron Aug 30 '16 at 13:04
  • 1
    Usually there also some information (like author's name, email and date of creating) is included into SVN log, but I'm not sure there is one in JDK. While some people consider annotating with `@author` to be a good practice, another ones think it's useless information, that nobody care or want to know, who wrote which parts of API. As example see this answer by @Paul - [http://stackoverflow.com/a/17271433/4390212](http://stackoverflow.com/a/17271433/4390212) – DimaSan Aug 30 '16 at 13:13
  • Do you know where I can find the SVN log? Maybe if there is something like the [Python Mercurial](https://hg.python.org/cpython/log/aca5c1d1c569/Doc/library/socketserver.rst), I can find out manually how many authors contributed how much to an API documentation. – Selphiron Aug 30 '16 at 13:33
  • 1
    You can find such info for each GitHub public repository. But I don't know about JDK sources. If you find any info about it please let me know. I will also notify you if i find something. – DimaSan Aug 30 '16 at 13:40
  • 2
    I think I found it. Java seems to use Mercurial like Python does as a public repository. Look [here](http://hg.openjdk.java.net/). Edit: You have to navigate through the system. Here for example is the class [GregorianCalendar](http://hg.openjdk.java.net/jdk7/jdk7/jdk/file/9b8c96f96a0f/src/share/classes/java/util/GregorianCalendar.java) Edit2: On the left bottom corner is "annotate" and "file log", which is quite near to what I needed. You can add that to your answer, so I can mark it as correct (I found this with your help after all) – Selphiron Aug 30 '16 at 14:10
  • yeah, there are really tons of history info in the logs. Great work! Thanks @Selphiron but this actually YOU found this useful info, not sure I have done a great service for your answer. – DimaSan Aug 30 '16 at 14:26
  • 1
    Ok, I marked it as answered, so anybody else with the same problem maybe reads the comments as well and is happy with the solution. – Selphiron Aug 30 '16 at 14:29
  • 1
    I updated it, now I'm sure this post will be helpful for everyone how is searching for such info. – DimaSan Aug 30 '16 at 14:47