#
# Copyright (c) 1996, 2007, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation.  Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#

FILES_java = \
	sun/net/InetAddressCachePolicy.java \
	sun/net/URLCanonicalizer.java \
	sun/net/NetworkClient.java \
	sun/net/NetworkServer.java \
	sun/net/ProgressMonitor.java \
	sun/net/ProgressSource.java \
	sun/net/ProgressEvent.java \
	sun/net/ProgressListener.java \
	sun/net/ProgressMeteringPolicy.java \
	sun/net/TelnetInputStream.java \
	sun/net/TelnetOutputStream.java \
	sun/net/TelnetProtocolException.java \
	sun/net/TransferProtocolClient.java \
	sun/net/ConnectionResetException.java \
	sun/net/NetProperties.java \
	sun/net/NetHooks.java \
	sun/net/util/IPAddressUtil.java \
	sun/net/util/URLUtil.java \
	sun/net/dns/ResolverConfiguration.java \
	sun/net/dns/ResolverConfigurationImpl.java \
	sun/net/ftp/FtpClient.java \
	sun/net/ftp/FtpClientProvider.java \
	sun/net/ftp/FtpDirEntry.java \
	sun/net/ftp/FtpReplyCode.java \
	sun/net/ftp/FtpDirParser.java \
	sun/net/ftp/FtpLoginException.java \
	sun/net/ftp/FtpProtocolException.java \
	sun/net/ftp/impl/FtpClient.java \
	sun/net/ftp/impl/DefaultFtpClientProvider.java \
	sun/net/spi/DefaultProxySelector.java \
	sun/net/spi/nameservice/NameServiceDescriptor.java \
	sun/net/spi/nameservice/NameService.java \
	sun/net/smtp/SmtpClient.java \
	sun/net/smtp/SmtpProtocolException.java \
	sun/net/www/content/text/Generic.java \
	sun/net/www/content/text/plain.java \
	sun/net/www/content/text/PlainTextInputStream.java \
	sun/net/www/MessageHeader.java \
	sun/net/www/HeaderParser.java \
	sun/net/www/MeteredStream.java \
	sun/net/www/MimeEntry.java \
	sun/net/www/MimeLauncher.java \
	sun/net/www/ApplicationLaunchException.java \
	sun/net/www/MimeTable.java \
	sun/net/www/URLConnection.java \
	sun/net/www/ParseUtil.java \
	sun/net/www/protocol/file/Handler.java \
	sun/net/www/protocol/file/FileURLConnection.java \
	sun/net/www/http/HttpClient.java \
	sun/net/www/http/HttpCapture.java \
	sun/net/www/http/HttpCaptureInputStream.java \
	sun/net/www/http/HttpCaptureOutputStream.java \
	sun/net/www/http/PosterOutputStream.java \
	sun/net/www/http/ChunkedInputStream.java \
	sun/net/www/http/ChunkedOutputStream.java \
	sun/net/www/http/KeepAliveCache.java \
	sun/net/www/http/KeepAliveStream.java \
	sun/net/www/http/KeepAliveStreamCleaner.java \
	sun/net/www/http/Hurryable.java \
	sun/net/www/protocol/http/Handler.java \
	sun/net/www/protocol/http/HttpURLConnection.java \
	sun/net/www/protocol/http/HttpAuthenticator.java \
	sun/net/www/protocol/http/AuthenticationHeader.java \
	sun/net/www/protocol/http/AuthenticationInfo.java \
	sun/net/www/protocol/http/AuthCache.java \
	sun/net/www/protocol/http/AuthCacheImpl.java \
	sun/net/www/protocol/http/AuthCacheValue.java \
	sun/net/www/protocol/http/AuthScheme.java \
	sun/net/www/protocol/http/BasicAuthentication.java \
	sun/net/www/protocol/http/DigestAuthentication.java \
	sun/net/www/protocol/http/NTLMAuthenticationProxy.java \
	sun/net/www/protocol/http/NegotiateAuthentication.java \
	sun/net/www/protocol/http/Negotiator.java \
	sun/net/www/protocol/http/ntlm/NTLMAuthentication.java \
	sun/net/www/protocol/http/spnego/NegotiatorImpl.java \
	sun/net/www/protocol/http/spnego/NegotiateCallbackHandler.java \
	sun/net/www/protocol/http/logging/HttpLogFormatter.java \
	sun/net/www/protocol/https/AbstractDelegateHttpsURLConnection.java \
	sun/net/www/protocol/https/HttpsClient.java \
	sun/net/www/protocol/https/DefaultHostnameVerifier.java \
	sun/net/www/protocol/https/HttpsURLConnectionImpl.java \
	sun/net/www/protocol/https/DelegateHttpsURLConnection.java \
	sun/net/www/protocol/https/Handler.java \
	sun/net/www/protocol/jar/Handler.java \
	sun/net/www/protocol/jar/URLJarFile.java \
	sun/net/www/protocol/jar/JarFileFactory.java \
	sun/net/www/protocol/jar/JarURLConnection.java \
	sun/net/www/protocol/netdoc/Handler.java \
	sun/net/www/content/image/gif.java \
	sun/net/www/content/image/jpeg.java \
	sun/net/www/content/image/x_xbitmap.java \
	sun/net/www/content/image/x_xpixmap.java \
	sun/net/www/content/image/png.java \
	sun/net/www/content/audio/aiff.java \
	sun/net/www/content/audio/basic.java \
	sun/net/www/content/audio/wav.java \
	sun/net/www/content/audio/x_aiff.java \
	sun/net/www/content/audio/x_wav.java \
	sun/net/www/protocol/ftp/Handler.java \
	sun/net/www/protocol/ftp/FtpURLConnection.java \
	sun/net/www/protocol/gopher/GopherClient.java \
	sun/net/www/protocol/gopher/Handler.java \
	sun/net/www/protocol/mailto/Handler.java \
	sun/net/www/protocol/mailto/MailToURLConnection.java \
	sun/net/idn/Punycode.java \
	sun/net/idn/UCharacterEnums.java \
	sun/net/idn/UCharacterDirection.java \
	sun/net/idn/StringPrepDataReader.java \
	sun/net/idn/StringPrep.java

ifeq ($(PLATFORM), windows)
    FILES_java += sun/net/www/protocol/http/ntlm/NTLMAuthSequence.java 
endif

ifeq ($(PLATFORM), solaris)
    FILES_java += sun/net/spi/SdpProvider.java
endif
