提交 7f3f6d09 编写于 作者: L lana

Merge

......@@ -240,7 +240,12 @@ import_product:
all build:: sanity-all post-sanity-all
SUBDIRS = tools java javax org sun sunw com jpda mkdemo mksample launchers
SUBDIRS = tools java javax sun com
SUBDIRS_tools = launchers
SUBDIRS_misc = org sunw jpda mkdemo mksample
include $(BUILDDIR)/common/Subdirs.gmk
all build::
$(SUBDIRS-loop)
......
......@@ -32,6 +32,8 @@ PRODUCT = com
include $(BUILDDIR)/common/Defs.gmk
SUBDIRS = sun
include $(BUILDDIR)/common/Subdirs.gmk
all build clean clobber::
$(SUBDIRS-loop)
......@@ -38,10 +38,19 @@ ifndef OPENJDK
endif
endif
# jarsigner is part of JRE
SUBDIRS = java security net/ssl jarsigner
SUBDIRS_management = jmx
SUBDIRS_desktop = image inputmethods
SUBDIRS_enterprise = crypto/provider jndi \
org xml rowset net/httpserver
SUBDIRS_misc = $(SCRIPT_SUBDIR) tracing servicetag nio demo
# Omit mirror since it's built with the apt tool.
SUBDIRS = $(SCRIPT_SUBDIR) image security crypto/provider jndi jmx \
java inputmethods org xml rowset net/httpserver net/ssl demo \
tools jarsigner tracing servicetag nio
SUBDIRS_tools = tools
include $(BUILDDIR)/common/Subdirs.gmk
all build clean clobber::
$(SUBDIRS-loop)
......
......@@ -38,6 +38,8 @@ PRODUCT = sun
include $(BUILDDIR)/common/Defs.gmk
SUBDIRS = jvmti
include $(BUILDDIR)/common/Subdirs.gmk
all build clean clobber::
$(SUBDIRS-loop)
......@@ -38,6 +38,8 @@ PRODUCT = sun
include $(BUILDDIR)/common/Defs.gmk
SUBDIRS = hprof
include $(BUILDDIR)/common/Subdirs.gmk
all build clean clobber::
$(SUBDIRS-loop)
......@@ -32,6 +32,8 @@ PRODUCT = sun
include $(BUILDDIR)/common/Defs.gmk
SUBDIRS = indicim thaiim
include $(BUILDDIR)/common/Subdirs.gmk
all build clean clobber::
$(SUBDIRS-loop)
......@@ -31,7 +31,10 @@ BUILDDIR = ../../..
PRODUCT = plugin
include $(BUILDDIR)/common/Defs.gmk
SUBDIRS = browser pack
SUBDIRS = pack
SUBDIRS_misc = browser
include $(BUILDDIR)/common/Subdirs.gmk
all build clean clobber::
$(SUBDIRS-loop)
......@@ -32,6 +32,8 @@ PRODUCT = plugin
include $(BUILDDIR)/common/Defs.gmk
SUBDIRS = dom net
include $(BUILDDIR)/common/Subdirs.gmk
all build clean clobber::
$(SUBDIRS-loop)
......@@ -51,6 +51,8 @@ else
SUBDIRS = snmp
endif
include $(BUILDDIR)/common/Subdirs.gmk
all build:
$(SUBDIRS-loop)
......
......@@ -31,6 +31,8 @@ BUILDDIR = ../../..
include $(BUILDDIR)/common/Defs.gmk
SUBDIRS = toolkit cosnaming ldap rmi dns
include $(BUILDDIR)/common/Subdirs.gmk
all build clean clobber::
$(SUBDIRS-loop)
......
......@@ -31,6 +31,8 @@ BUILDDIR = ../../../..
include $(BUILDDIR)/common/Defs.gmk
SUBDIRS = registry
include $(BUILDDIR)/common/Subdirs.gmk
all build clean clobber::
$(SUBDIRS-loop)
......
......@@ -31,6 +31,8 @@ BUILDDIR = ../../..
include $(BUILDDIR)/common/Defs.gmk
SUBDIRS = sctp
include $(BUILDDIR)/common/Subdirs.gmk
all build clean clobber::
$(SUBDIRS-loop)
......
......@@ -32,6 +32,8 @@ PRODUCT = org
include $(BUILDDIR)/common/Defs.gmk
SUBDIRS = apache
include $(BUILDDIR)/common/Subdirs.gmk
all build clean clobber::
$(SUBDIRS-loop)
......@@ -31,6 +31,7 @@ BUILDDIR = ../../../..
include $(BUILDDIR)/common/Defs.gmk
SUBDIRS = xml
include $(BUILDDIR)/common/Subdirs.gmk
all build clean clobber::
$(SUBDIRS-loop)
......@@ -30,7 +30,10 @@
BUILDDIR = ../../..
include $(BUILDDIR)/common/Defs.gmk
SUBDIRS = jgss sasl auth auth/module
SUBDIRS = auth
SUBDIRS_misc = jgss sasl auth/module
include $(BUILDDIR)/common/Subdirs.gmk
all build clean clobber::
$(SUBDIRS-loop)
......
......@@ -35,6 +35,8 @@ include $(BUILDDIR)/common/Defs.gmk
AUTO_FILES_JAVA_DIRS = com/sun/tools/extcheck
SUBDIRS = attach
include $(BUILDDIR)/common/Subdirs.gmk
all build:
$(SUBDIRS-loop)
clean clobber::
......
......@@ -33,6 +33,8 @@ PRODUCT = sun
include $(BUILDDIR)/common/Defs.gmk
SUBDIRS = dtrace
include $(BUILDDIR)/common/Subdirs.gmk
all build:
$(SUBDIRS-loop)
clean clobber::
......
......@@ -576,17 +576,17 @@ endef
define install-file
$(prep-target)
$(CP) $< $@
$(install-module-file)
@$(install-module-file)
endef
define chmod-file
$(CHMOD) $1 $@
$(call chmod-module-file, $1)
@$(call chmod-module-file, $1)
endef
define install-sym-link
$(LN) -s $1 $@
$(call install-module-sym-link, $1)
@$(call install-module-sym-link, $1)
endef
#
......@@ -607,131 +607,9 @@ define java-vm-cleanup
if [ -w $(HOTSPOT_LOG_NAME) ] ; then $(RM) $(HOTSPOT_LOG_NAME); fi
endef
# Default make settings for processing SUBDIRS with clobber or clean names
SUBDIRS_MAKEFLAGS-clobber = INCREMENTAL_BUILD=false
SUBDIRS_MAKEFLAGS-clean = INCREMENTAL_BUILD=false
# Current directory
CURRENT_DIRECTORY := $(shell $(PWD))
# If no timing wanted, we need to define these as empty
ifdef NO_TIMING
TIMING_ID:=NA
define TIMING_start
t=0:0:0:0
endef
define TIMING_end
time_used=0
endef
else # NO_TIMING
# Default timing id
TIMING_ID:=$(shell $(BASENAME) $(CURRENT_DIRECTORY))
# Timing start (must be used in same shell, e.g. same command line)
# Defines the shell variable $1 to have the start time.
define TIMING_start
$1=`$(DATE) +%j:%H:%M:%S`
endef
# Timing end (must be used in same shell, e.g. same command line)
# Expects shell variable $1 to have been defined as the start time.
# Expects shell variable $2 to have timing id string
# Sets total_seconds shell variable as the total seconds used.
# Sets time_used shell variable to contain format "%dh%dm%ds"
define TIMING_end
begTime="$${$1}"; \
timing_id="$${$2}"; \
endTime=`$(DATE) +%j:%H:%M:%S`; \
d1=`$(ECHO) $${begTime} | $(CUT) -d':' -f1 | $(SED) -e 's@^0*@@'`; \
if [ "$${d1}" = "" ] ; then d1=0; fi; \
h1=`$(ECHO) $${begTime} | $(CUT) -d':' -f2 | $(SED) -e 's@^0*@@'`; \
if [ "$${h1}" = "" ] ; then h1=0; fi; \
m1=`$(ECHO) $${begTime} | $(CUT) -d':' -f3 | $(SED) -e 's@^0*@@'`; \
if [ "$${m1}" = "" ] ; then m1=0; fi; \
s1=`$(ECHO) $${begTime} | $(CUT) -d':' -f4 | $(SED) -e 's@^0*@@'`; \
if [ "$${s1}" = "" ] ; then s1=0; fi; \
d2=`$(ECHO) $${endTime} | $(CUT) -d':' -f1 | $(SED) -e 's@^0*@@'`; \
if [ "$${d2}" = "" ] ; then d2=0; fi; \
h2=`$(ECHO) $${endTime} | $(CUT) -d':' -f2 | $(SED) -e 's@^0*@@'`; \
if [ "$${h2}" = "" ] ; then h2=0; fi; \
m2=`$(ECHO) $${endTime} | $(CUT) -d':' -f3 | $(SED) -e 's@^0*@@'`; \
if [ "$${m2}" = "" ] ; then m2=0; fi; \
s2=`$(ECHO) $${endTime} | $(CUT) -d':' -f4 | $(SED) -e 's@^0*@@'`; \
if [ "$${s2}" = "" ] ; then s2=0; fi; \
t1_secs=`$(EXPR) $${d1} '*' 60 '*' 60 '*' 24 '+' $${h1} '*' 60 '*' 60 \
'+' $${m1} '*' 60 '+' $${s1}`; \
t2_secs=`$(EXPR) $${d2} '*' 60 '*' 60 '*' 24 '+' $${h2} '*' 60 '*' 60 \
'+' $${m2} '*' 60 '+' $${s2}`; \
total_seconds=`$(EXPR) $${t2_secs} '-' $${t1_secs}`; \
if [ "$${total_seconds}" -lt 0 ] ; then total_seconds=0; fi; \
t_hour=`$(EXPR) $${total_seconds} '/' '(' 60 '*' 60 ')'`h; \
t_min=`$(EXPR) '(' $${total_seconds} '%' '(' 60 '*' 60 ')' ')' '/' 60`m; \
t_sec=`$(EXPR) $${total_seconds} '%' 60`s; \
time_used=$${t_sec}; \
if [ "$${t_hour}" != "0h" ] ; then \
time_used=$${t_hour}$${t_min}$${t_sec}; \
elif [ "$${t_min}" != "0m" ] ; then \
time_used=$${t_min}$${t_sec}; \
else \
time_used=$${t_sec}; \
fi; \
$(PRINTF) " Timing: %05d seconds or %s for %s\n" \
$${total_seconds} $${time_used} $${timing_id}
endef
endif # NO_TIMING
# Given a SUBDIRS list, cd into them and make them
# SUBDIRS_MAKEFLAGS Make settings for a subdir make
# SUBDIRS_MAKEFLAGS-$@ Make settings specific to this target
define SUBDIRS-loop
@$(ECHO) "Begin Processing SUBDIRS: $(SUBDIRS)"
@for i in DUMMY $(SUBDIRS) ; do \
if [ "$$i" != "DUMMY" ] ; then \
$(ECHO) ">>>Recursively making "$$i" "$@" @ `$(DATE)` ..."; \
timing_id="$(TIMING_ID)-`$(BASENAME) $${i}`"; \
$(call TIMING_start,startTime); \
curDir=$(CURRENT_DIRECTORY); \
$(CD) $$i; $(MAKE) $@ TIMING_ID=$${timing_id} \
$(SUBDIRS_MAKEFLAGS) \
$(SUBDIRS_MAKEFLAGS-$@) \
FULL_VERSION=$(FULL_VERSION) \
RELEASE=$(RELEASE) || exit 1; \
$(CD) $${curDir}; \
$(call TIMING_end,startTime,timing_id); \
$(ECHO) "<<<Finished Recursively making "$$i" "$@" @ `$(DATE)`." ; \
fi ; \
done
@$(ECHO) "Done Processing SUBDIRS: $(SUBDIRS)"
endef
# Given a OTHERSUBDIRS list, cd into them and make them (extra loop define)
# OTHERSUBDIRS_MAKEFLAGS Make settings for a subdir make
define OTHERSUBDIRS-loop
@$(ECHO) "Begin Processing OTHERSUBDIRS: $(OTHERSUBDIRS)"
@for i in DUMMY $(OTHERSUBDIRS) ; do \
if [ "$$i" != "DUMMY" ] ; then \
$(ECHO) ">>>Recursively making "$$i" "$@" @ `$(DATE)` ..."; \
timing_id="$(TIMING_ID)-`$(BASENAME) $${i}`"; \
$(call TIMING_start,startTime); \
curDir=$(CURRENT_DIRECTORY); \
$(CD) $$i; $(MAKE) $@ TIMING_ID=$${timing_id} \
$(OTHERSUBDIRS_MAKEFLAGS) \
FULL_VERSION=$(FULL_VERSION) \
RELEASE=$(RELEASE) || exit 1; \
$(CD) $${curDir}; \
$(call TIMING_end,startTime,timing_id); \
$(ECHO) "<<<Finished Recursively making "$$i" "$@" @ `$(DATE)`." ; \
fi ; \
done
@$(ECHO) "Done Processing OTHERSUBDIRS: $(OTHERSUBDIRS)"
endef
#
# Create BYFILE OPT and DBG settings, if CFLAGS_OPT/foobar.o is set then it is
# used for this file, otherwise the default settings are used.
......@@ -819,7 +697,7 @@ endef
define install-import-file
$(install-importonly-file)
$(install-module-file)
@$(install-module-file)
endef
.PHONY: all build clean clobber
......@@ -71,7 +71,8 @@ sanity-base: pre-sanity \
sane-cacerts \
sane-ant_version \
sane-zip_version \
sane-msvcrt_path
sane-msvcrt_path \
sane-build_modules
# The rules sanity-* have a one-to-one correspondence with the major targets
# Each sanity-* rule should have no body to ensure that the post-sanity-* is the
......
# Copyright 2010 Sun Microsystems, Inc. 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. Sun designates this
# particular file as subject to the "Classpath" exception as provided
# by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
# CA 95054 USA or visit www.sun.com if you need additional information or
# have any questions
#
#
# Generic makefile for building subdirectories.
#
# SUBDIRS variables to specify the subdirectories to build recursively.
# Makefile has to include Subdirs.gmk AFTER all SUBDIRS variables are
# defined.
#
# This file does not contain any rule.
#
# WARNING: This file is shared with other workspaces.
# So when it includes other files, it must use JDK_TOPDIR.
#
# SUBDIRS subdirs for the base module always get built
# SUBDIRS_<group> subdirs for the named group
#
# By default, subdirs specified in the SUBDIRS and all SUBDIRS_*
# variables will be built.
#
# BUILD_MODULES variable can be used to specify one or more groups
# to be built (BUILD_MODULES=all will build all groups).
#
# Variables of the currently supported groups are:
# SUBDIRS_desktop
# SUBDIRS_management
# SUBDIRS_enterprise
# SUBDIRS_misc
# SUBDIRS_tools
#
# Change to the above list also need to update
# make/common/shared/Sanity.gmk. NOTE: this list is subject
# to change till the JDK 7 SE profiles/modules are finalized.
#
# Eventually we want to restructure the make directory
# according to these grouping (e.g. make/desktop/...) and
# the SUBDIRS_<group> variables would not be needed.
#
# To build the desktop and tools groups only, you can do:
# gnumake BUILD_MODULES="desktop tools" ...
#
# Iterate the subdirectories specified in $1.
# - cd into each subdir and make them
# Given a SUBDIRS* list (first argument), cd into them and make them
# SUBDIRS_MAKEFLAGS Make settings for a subdir make
# SUBDIRS_MAKEFLAGS-$@ Make settings specific to this target
#
define subdirs-group-loop
@$(ECHO) "Begin Processing SUBDIRS: $($1)"
@for i in DUMMY $($1) ; do \
if [ "$$i" != "DUMMY" ] ; then \
$(MAKE) -C $$i $@ $(SUBDIRS_MAKEFLAGS) $(SUBDIRS_MAKEFLAGS-$@) \
FULL_VERSION=$(FULL_VERSION) RELEASE=$(RELEASE) || exit 1; \
fi ; \
done
@$(ECHO) "Done Processing SUBDIRS: $($1)"
endef
# Given a OTHERSUBDIRS list, cd into them and make them (extra loop define)
# OTHERSUBDIRS_MAKEFLAGS Make settings for a subdir make
define OTHERSUBDIRS-loop
@$(ECHO) "Begin Processing OTHERSUBDIRS: $(OTHERSUBDIRS)"
@for i in DUMMY $(OTHERSUBDIRS) ; do \
if [ "$$i" != "DUMMY" ] ; then \
$(MAKE) -C $$i $@ $(OTHERSUBDIRS_MAKEFLAGS) \
FULL_VERSION=$(FULL_VERSION) RELEASE=$(RELEASE) || exit 1; \
fi ; \
done
@$(ECHO) "Done Processing OTHERSUBDIRS: $(OTHERSUBDIRS)"
endef
#
# Iterate the list specified in SUBDIRS_<group> only if
# SUBDIRS_<group> is set and <group> or "all" is specified
# in the BUILD_MODULES variable
#
ifdef SUBDIRS_desktop
ifneq (,$(findstring desktop, $(BUILD_MODULES)))
define subdirs-desktop-loop
@$(call subdirs-group-loop,SUBDIRS_desktop)
endef
else
define subdirs-desktop-loop
endef
endif
else
define subdirs-desktop-loop
endef
endif # SUBDIRS_desktop
ifdef SUBDIRS_enterprise
ifneq (,$(findstring enterprise, $(BUILD_MODULES)))
define subdirs-enterprise-loop
@$(call subdirs-group-loop,SUBDIRS_enterprise)
endef
else
define subdirs-enterprise-loop
endef
endif
else
define subdirs-enterprise-loop
endef
endif # SUBDIRS_enterprise
ifdef SUBDIRS_management
ifneq (,$(findstring management, $(BUILD_MODULES)))
define subdirs-management-loop
@$(call subdirs-group-loop,SUBDIRS_management)
endef
else
define subdirs-management-loop
endef
endif
else
define subdirs-management-loop
endef
endif # SUBDIRS_management
ifdef SUBDIRS_misc
ifneq (,$(findstring misc, $(BUILD_MODULES)))
define subdirs-misc-loop
@$(call subdirs-group-loop,SUBDIRS_misc)
endef
else
define subdirs-misc-loop
endef
endif
else
define subdirs-misc-loop
endef
endif # SUBDIRS_misc
ifdef SUBDIRS_tools
ifneq (,$(findstring tools, $(BUILD_MODULES)))
define subdirs-tools-loop
@$(call subdirs-group-loop,SUBDIRS_tools)
endef
else
define subdirs-tools-loop
endef
endif
else
define subdirs-tools-loop
endef
endif # SUBDIRS_tools
#
# If BUILD_MODULES is not set or it's set to "all",
# iterate all groups.
SUBDIRS_all = $(SUBDIRS) $(SUBDIRS_desktop) $(SUBDIRS_enterprise) \
$(SUBDIRS_management) $(SUBDIRS_misc) $(SUBDIRS_tools)
ifndef BUILD_MODULES
define SUBDIRS-loop
@$(call subdirs-group-loop,SUBDIRS_all)
endef
else
ifneq (,$(findstring all, $(BUILD_MODULES)))
define SUBDIRS-loop
@$(call subdirs-group-loop,SUBDIRS_all)
endef
else # BUILD_MODULES set
#
# Iterate SUBDIRS and the groups specified in BUILD_MODULES
#
define SUBDIRS-loop
@$(call subdirs-group-loop,SUBDIRS)
@$(subdirs-desktop-loop)
@$(subdirs-enterprise-loop)
@$(subdirs-management-loop)
@$(subdirs-misc-loop)
@$(subdirs-tools-loop)
endef
endif
endif # BUILD_MODULES
......@@ -218,7 +218,8 @@ include $(JDK_MAKE_SHARED_DIR)/Sanity-Settings.gmk
sane-zip_version \
sane-unzip_version \
sane-msvcrt_path \
sane-freetype
sane-freetype \
sane-build_modules
######################################################
# check for COPYRIGHT_YEAR variable
......@@ -844,6 +845,21 @@ else
sane-freetype:
endif
######################################################
# if specified, BUILD_MODULES must contain valid values.
######################################################
MODULES_REGEX="all|base|desktop|management|enterprise|misc|tools"
sane-build_modules:
ifdef BUILD_MODULES
@for m in $(BUILD_MODULES) ; do \
valid=`$(ECHO) $$m | $(EGREP) $(MODULES_REGEX)`; \
if [ "x$$valid" = "x" ] ; then \
$(ECHO) "ERROR: $$m set in the BUILD_MODULES variable is invalid.\n" \
"" >> $(ERROR_FILE); \
fi \
done
endif
######################################################
# CUPS_HEADERS_PATH must be valid
######################################################
......
......@@ -38,9 +38,13 @@ SUBDIRS += hpi version jvm redist verify fdlibm java sun_nio jli main zip
# Others
# Note: java_crw_demo java_hprof_demo are demos but must be delivered built in sdk
SUBDIRS += security npt java_crw_demo java_hprof_demo \
math awt util text applet net nio dyn \
sql rmi jar beans logging management instrument
SUBDIRS += security math util text net nio jar
SUBDIRS_desktop = awt applet beans
SUBDIRS_management = management
SUBDIRS_misc = npt java_crw_demo java_hprof_demo \
logging instrument dyn sql rmi
ifeq ($(PLATFORM), solaris)
......@@ -53,6 +57,8 @@ ifeq ($(PLATFORM), linux)
SUBDIRS += jexec
endif # PLATFORM
include $(BUILDDIR)/common/Subdirs.gmk
all build clean clobber::
$(SUBDIRS-loop)
......@@ -34,6 +34,8 @@ include $(BUILDDIR)/common/Defs.gmk
# Build specified the HPI implementations
#
SUBDIRS = $(HPIS)
include $(BUILDDIR)/common/Subdirs.gmk
all build clean clobber::
$(SUBDIRS-loop)
......@@ -218,6 +218,8 @@ ifeq ($(PLATFORM), solaris)
endif
SUBDIRS = reflect
include $(BUILDDIR)/common/Subdirs.gmk
all build:
$(SUBDIRS-loop)
clean clobber::
......
......@@ -49,7 +49,7 @@ Euro_Resources_properties := $(FILES_compiled_properties)
# $(BUILDDIR)/java/text/FILES_java.gmk contains the "sun.text.resources" for
# European language support
include $(BUILDDIR)/java/text/FILES_java.gmk
include $(BUILDDIR)/java/text/base/FILES_java.gmk
Euro_Resources_java += $(FILES_java)
......
......@@ -36,6 +36,8 @@ SUBDIRS = java javaw
else
SUBDIRS = java
endif
include $(BUILDDIR)/common/Subdirs.gmk
all build clean clobber::
$(SUBDIRS-loop)
......@@ -26,7 +26,6 @@
FILES_src = \
java/nio/Bits.java \
java/nio/Buffer.java \
java/nio/BufferPoolMXBean.java \
java/nio/ByteOrder.java \
java/nio/MappedByteBuffer.java \
java/nio/StringCharBuffer.java \
......
......@@ -304,7 +304,11 @@ endif # PLATFORM
# Rules
#
SUBDIRS_management = mxbean
include $(BUILDDIR)/common/Subdirs.gmk
build: sources
$(SUBDIRS-loop)
clean clobber::
$(RM) -r $(NIO_GEN) $(SNIO_GEN)
......
#
# Copyright 2010 Sun Microsystems, Inc. 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. Sun designates this
# particular file as subject to the "Classpath" exception as provided
# by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
# CA 95054 USA or visit www.sun.com if you need additional information or
# have any questions.
#
BUILDDIR = ../../..
MODULE = management
PACKAGE = java.nio
PRODUCT = java
include $(BUILDDIR)/common/Defs.gmk
FILES_java = java/nio/BufferPoolMXBean.java
include $(BUILDDIR)/common/Classes.gmk
......@@ -62,7 +62,10 @@ CLASSSHARINGDATA_DIR = $(BUILDDIR)/tools/sharing
# Needed to do file copy
ABS_BUILDDIR :=$(call FullPath,$(BUILDDIR))
SUBDIRS = fonts sajdi
SUBDIRS_desktop = fonts
SUBDIRS_tools = sajdi
include $(BUILDDIR)/common/Subdirs.gmk
all clean clobber::
$(SUBDIRS-loop)
......
#
# Copyright 1996-2006 Sun Microsystems, Inc. All Rights Reserved.
# Copyright 2010 Sun Microsystems, Inc. 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
......@@ -23,86 +23,19 @@
# have any questions.
#
BUILDDIR = ../..
MODULE = base
PACKAGE = java.text
PRODUCT = sun
include $(BUILDDIR)/common/Defs.gmk
#
# Files
#
include FILES_java.gmk
#
# Include
#
include $(BUILDDIR)/common/Classes.gmk
#
# Rules to add data files BreakIterator
#
TEXT_CLASSES = $(BUILDTOOLCLASSDIR)/java.text/classes
# input
#
# Notes: sun.text.resources.BreakIteratorRules no longer goes to runtime.
# They are used at JDK build phase in order to create $(BIFILES) which
# are used on runtime instead.
# Makefile for building all of java.text
#
TEXT_SRCDIR = $(SHARE_SRC)/classes/sun/text/resources
TEXT_SOURCES = $(TEXT_SRCDIR)/BreakIteratorRules.java \
$(TEXT_SRCDIR)/BreakIteratorInfo.java
UNICODEDATA = $(BUILDDIR)/tools/UnicodeData
# output
TEXT_CLASSDIR = $(CLASSBINDIR)/sun/text/resources
BIFILES = $(TEXT_CLASSDIR)/CharacterBreakIteratorData \
$(TEXT_CLASSDIR)/WordBreakIteratorData \
$(TEXT_CLASSDIR)/LineBreakIteratorData \
$(TEXT_CLASSDIR)/SentenceBreakIteratorData
ICU_FILES = $(TEXT_CLASSDIR)/unorm.icu \
$(TEXT_CLASSDIR)/uprops.icu \
$(TEXT_CLASSDIR)/ubidi.icu
# builder
GENERATEBREAKITERATORDATA_JARFILE = \
$(BUILDTOOLJARDIR)/generatebreakiteratordata.jar
$(BIFILES): $(GENERATEBREAKITERATORDATA_JARFILE) \
$(UNICODEDATA)/UnicodeData.txt \
$(TEXT_SOURCES)
$(prep-target)
$(RM) -r $(TEXT_CLASSES)
$(MKDIR) -p $(TEXT_CLASSES)
$(BOOT_JAVAC_CMD) -d $(TEXT_CLASSES) \
-sourcepath $(TEXT_SRCDIR) \
$(TEXT_SOURCES)
$(MKDIR) -p $(TEXT_CLASSDIR)
$(BOOT_JAVA_CMD) -Xbootclasspath/p:$(TEXT_CLASSES) \
-jar $(GENERATEBREAKITERATORDATA_JARFILE) \
-o $(TEXT_CLASSDIR) \
-spec $(UNICODEDATA)/UnicodeData.txt
@$(java-vm-cleanup)
build: $(BIFILES) $(ICU_FILES)
#
# Extra rules to copy unorm.icu, uprops.icu, and ubidi.icu
#
$(TEXT_CLASSDIR)/unorm.icu: $(TEXT_SRCDIR)/unorm.icu
$(install-file)
BUILDDIR = ../..
PRODUCT = sun
include $(BUILDDIR)/common/Defs.gmk
$(TEXT_CLASSDIR)/uprops.icu: $(TEXT_SRCDIR)/uprops.icu
$(install-file)
SUBDIRS = base
SUBDIRS_desktop = bidi
$(TEXT_CLASSDIR)/ubidi.icu: $(TEXT_SRCDIR)/ubidi.icu
$(install-file)
include $(BUILDDIR)/common/Subdirs.gmk
clean clobber::
$(RM) -r $(TEXT_CLASSES)
$(RM) -r $(BIFILES)
$(RM) $(ICU_FILES)
all build clean clobber::
$(SUBDIRS-loop)
......@@ -29,7 +29,6 @@ FILES_java = \
java/text/AttributedString.java \
java/text/BreakDictionary.java \
java/text/BreakIterator.java \
java/text/Bidi.java \
java/text/CharacterIterator.java \
java/text/CharacterIteratorFieldDelegate.java \
java/text/ChoiceFormat.java \
......@@ -76,10 +75,6 @@ FILES_java = \
sun/text/Normalizer.java \
sun/text/SupplementaryCharacterData.java \
sun/text/UCompactIntArray.java \
sun/text/bidi/BidiBase.java \
sun/text/bidi/BidiLine.java \
sun/text/bidi/BidiRun.java \
\
sun/text/normalizer/CharTrie.java \
sun/text/normalizer/CharacterIteratorWrapper.java \
sun/text/normalizer/ICUBinary.java \
......
#
# Copyright 1996-2006 Sun Microsystems, Inc. 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. Sun designates this
# particular file as subject to the "Classpath" exception as provided
# by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
# CA 95054 USA or visit www.sun.com if you need additional information or
# have any questions.
#
BUILDDIR = ../../..
MODULE = base
PACKAGE = java.text
PRODUCT = sun
include $(BUILDDIR)/common/Defs.gmk
#
# Files
#
include FILES_java.gmk
#
# Include
#
include $(BUILDDIR)/common/Classes.gmk
#
# Rules to add data files BreakIterator
#
TEXT_CLASSES = $(BUILDTOOLCLASSDIR)/java.text/classes
# input
#
# Notes: sun.text.resources.BreakIteratorRules no longer goes to runtime.
# They are used at JDK build phase in order to create $(BIFILES) which
# are used on runtime instead.
#
TEXT_SRCDIR = $(SHARE_SRC)/classes/sun/text/resources
TEXT_SOURCES = $(TEXT_SRCDIR)/BreakIteratorRules.java \
$(TEXT_SRCDIR)/BreakIteratorInfo.java
UNICODEDATA = $(BUILDDIR)/tools/UnicodeData
# output
TEXT_CLASSDIR = $(CLASSBINDIR)/sun/text/resources
BIFILES = $(TEXT_CLASSDIR)/CharacterBreakIteratorData \
$(TEXT_CLASSDIR)/WordBreakIteratorData \
$(TEXT_CLASSDIR)/LineBreakIteratorData \
$(TEXT_CLASSDIR)/SentenceBreakIteratorData
ICU_FILES = $(TEXT_CLASSDIR)/unorm.icu \
$(TEXT_CLASSDIR)/uprops.icu \
$(TEXT_CLASSDIR)/ubidi.icu
# builder
GENERATEBREAKITERATORDATA_JARFILE = \
$(BUILDTOOLJARDIR)/generatebreakiteratordata.jar
$(BIFILES): $(GENERATEBREAKITERATORDATA_JARFILE) \
$(UNICODEDATA)/UnicodeData.txt \
$(TEXT_SOURCES)
$(prep-target)
$(RM) -r $(TEXT_CLASSES)
$(MKDIR) -p $(TEXT_CLASSES)
$(BOOT_JAVAC_CMD) -d $(TEXT_CLASSES) \
-sourcepath $(TEXT_SRCDIR) \
$(TEXT_SOURCES)
$(MKDIR) -p $(TEXT_CLASSDIR)
$(BOOT_JAVA_CMD) -Xbootclasspath/p:$(TEXT_CLASSES) \
-jar $(GENERATEBREAKITERATORDATA_JARFILE) \
-o $(TEXT_CLASSDIR) \
-spec $(UNICODEDATA)/UnicodeData.txt
@$(java-vm-cleanup)
build: $(BIFILES) $(ICU_FILES)
#
# Extra rules to copy unorm.icu, uprops.icu, and ubidi.icu
#
$(TEXT_CLASSDIR)/unorm.icu: $(TEXT_SRCDIR)/unorm.icu
$(install-file)
$(TEXT_CLASSDIR)/uprops.icu: $(TEXT_SRCDIR)/uprops.icu
$(install-file)
$(TEXT_CLASSDIR)/ubidi.icu: $(TEXT_SRCDIR)/ubidi.icu
$(install-file)
clean clobber::
$(RM) -r $(TEXT_CLASSES)
$(RM) -r $(BIFILES)
$(RM) $(ICU_FILES)
#
# Copyright 2010 Sun Microsystems, Inc. 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. Sun designates this
# particular file as subject to the "Classpath" exception as provided
# by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
# CA 95054 USA or visit www.sun.com if you need additional information or
# have any questions.
#
BUILDDIR = ../../..
PACKAGE = java.text
PRODUCT = sun
include $(BUILDDIR)/common/Defs.gmk
#
# Files for Bidi that is not in the base module
#
FILES_java = \
java/text/Bidi.java \
sun/text/bidi/BidiBase.java \
sun/text/bidi/BidiLine.java \
sun/text/bidi/BidiRun.java \
sun/text/CodePointIterator.java
#
# Include
#
include $(BUILDDIR)/common/Classes.gmk
......@@ -30,19 +30,24 @@
BUILDDIR = ..
include $(BUILDDIR)/common/Defs.gmk
SUBDIRS = others
SUBDIRS_management = management
SUBDIRS_misc = \
crypto \
sql \
rmi
# imageio uses xml, so build it last
SUBDIRS_desktop = \
accessibility \
print \
swing \
sound \
imageio
SUBDIRS = \
others \
accessibility \
print \
swing \
crypto \
sound \
sql \
rmi \
management \
imageio
include $(BUILDDIR)/common/Subdirs.gmk
all build:
$(SUBDIRS-loop)
......
......@@ -31,6 +31,8 @@ BUILDDIR = ../..
include $(BUILDDIR)/common/Defs.gmk
SUBDIRS = ssl
include $(BUILDDIR)/common/Subdirs.gmk
all build clean clobber::
$(SUBDIRS-loop)
......@@ -159,6 +159,7 @@ vpath %.cpp $(PLATFORM_SRC)/native/com/sun/media/sound
# Include rules
#
include $(BUILDDIR)/common/Library.gmk
include $(BUILDDIR)/common/Subdirs.gmk
#
# Rules that copy files.
......
......@@ -40,6 +40,7 @@ AUTO_JAVA_PRUNE = plaf
SUBDIRS = html32dtd plaf
include $(BUILDDIR)/common/Classes.gmk
include $(BUILDDIR)/common/Subdirs.gmk
build: other_files
$(SUBDIRS-loop)
......
......@@ -35,6 +35,7 @@ include $(BUILDDIR)/common/Defs.gmk
# Core.
#
SUBDIRS = jdwp back front transport expr tty bdi gui
include $(BUILDDIR)/common/Subdirs.gmk
all build clean clobber::
$(SUBDIRS-loop)
......
......@@ -36,6 +36,8 @@ SUBDIRS = socket
ifeq ($(PLATFORM), windows)
SUBDIRS += shmem
endif # PLATFORM
include $(BUILDDIR)/common/Subdirs.gmk
all build clean clobber::
$(SUBDIRS-loop)
......
......@@ -31,7 +31,13 @@ BUILDDIR = ..
PRODUCT = demos
include $(BUILDDIR)/common/Defs.gmk
SUBDIRS = applets jfc jvmti management jni scripting jpda
SUBDIRS = jni
SUBDIRS_desktop = applets jfc
SUBDIRS_management = management
SUBDIRS_misc = scripting
SUBDIRS_tools = jpda jvmti
include $(BUILDDIR)/common/Subdirs.gmk
all build:: nbproject
$(SUBDIRS-loop)
......
......@@ -40,6 +40,7 @@ endif
SUBDIRS_MAKEFLAGS += DEMO_IS_APPLET=true
include $(BUILDDIR)/common/Subdirs.gmk
all build clean clobber::
$(SUBDIRS-loop)
......
......@@ -46,6 +46,7 @@ ifndef OPENJDK
SUBDIRS += Java2D SwingSet2 Stylepad
endif
include $(BUILDDIR)/common/Subdirs.gmk
all build clean clobber::
$(SUBDIRS-loop)
......@@ -37,6 +37,8 @@ ifeq ($(PLATFORM),solaris)
SUBDIRS += Poller
endif
include $(BUILDDIR)/common/Subdirs.gmk
all build clean clobber::
$(SUBDIRS-loop)
......@@ -48,6 +48,8 @@ SUBDIRS = \
waiters \
hprof
include $(BUILDDIR)/common/Subdirs.gmk
all build clean clobber::
$(SUBDIRS-loop)
......
......@@ -38,6 +38,8 @@ SUBDIRS = FullThreadDump \
MemoryMonitor \
JTop
include $(BUILDDIR)/common/Subdirs.gmk
all build clean clobber::
$(SUBDIRS-loop)
......
......@@ -32,6 +32,7 @@ PRODUCT = demos
include $(BUILDDIR)/common/Defs.gmk
SUBDIRS = jconsole-plugin
include $(BUILDDIR)/common/Subdirs.gmk
all build clean clobber::
$(SUBDIRS-loop)
......
......@@ -37,13 +37,18 @@ else
WEBSERVICES_SUBDIR = webservices
endif
SUBDIRS = nio jmx scripting $(WEBSERVICES_SUBDIR) nbproject
SUBDIRS =
SUBDIRS_misc = nio scripting nbproject
SUBDIRS_enterprise = $(WEBSERVICES_SUBDIR)
SUBDIRS_management = jmx
# include dtrace samples in Solaris builds
ifeq ($(PLATFORM), solaris)
SUBDIRS += dtrace
endif
include $(BUILDDIR)/common/Subdirs.gmk
all build clean clobber::
$(SUBDIRS-loop)
......
......@@ -32,6 +32,8 @@ PRODUCT = java
include $(BUILDDIR)/common/Defs.gmk
SUBDIRS = jmx-scandir
include $(BUILDDIR)/common/Subdirs.gmk
all build clean clobber::
$(SUBDIRS-loop)
......
......@@ -32,6 +32,8 @@ PRODUCT = java
include $(BUILDDIR)/common/Defs.gmk
SUBDIRS = file multicast server
include $(BUILDDIR)/common/Subdirs.gmk
all build clean clobber::
$(SUBDIRS-loop)
......
......@@ -32,6 +32,8 @@ PRODUCT = java
include $(BUILDDIR)/common/Defs.gmk
SUBDIRS = scriptpad
include $(BUILDDIR)/common/Subdirs.gmk
all build clean clobber::
$(SUBDIRS-loop)
......
......@@ -32,6 +32,7 @@ PRODUCT = java
include $(BUILDDIR)/common/Defs.gmk
SUBDIRS = EbayClient EbayServer
include $(BUILDDIR)/common/Subdirs.gmk
all build clean clobber::
$(SUBDIRS-loop)
......
......@@ -32,6 +32,7 @@ PRODUCT = org
include $(BUILDDIR)/common/Defs.gmk
SUBDIRS = ietf jcp
include $(BUILDDIR)/common/Subdirs.gmk
all build clean clobber::
$(SUBDIRS-loop)
......@@ -31,6 +31,8 @@ BUILDDIR = ../..
include $(BUILDDIR)/common/Defs.gmk
SUBDIRS = jgss
include $(BUILDDIR)/common/Subdirs.gmk
all build clean clobber::
$(SUBDIRS-loop)
......@@ -58,13 +58,18 @@ ifdef OPENJDK
else
RENDER_SUBDIR = dcpr
endif
# nio need to be compiled before awt to have all charsets ready
SUBDIRS = jar security javazic misc jkernel net audio $(RENDER_SUBDIR) image \
nio awt splashscreen $(XAWT_SUBDIR) \
$(HEADLESS_SUBDIR) $(DGA_SUBDIR) \
font jpeg cmm applet rmi beans $(JDBC_SUBDIR) \
jawt text launcher management $(ORG_SUBDIR) \
native2ascii serialver tools jconsole tracing
SUBDIRS = jar security javazic misc net nio text launcher
SUBDIRS_desktop = audio $(RENDER_SUBDIR) image \
awt splashscreen $(XAWT_SUBDIR) \
$(HEADLESS_SUBDIR) $(DGA_SUBDIR) \
jawt font jpeg cmm applet beans
SUBDIRS_management = management
SUBDIRS_misc = jkernel $(ORG_SUBDIR) \
rmi $(JDBC_SUBDIR) tracing
SUBDIRS_tools = native2ascii serialver tools jconsole
include $(BUILDDIR)/common/Subdirs.gmk
all build clean clobber::
$(SUBDIRS-loop)
......
......@@ -36,6 +36,8 @@ else # !OPENJDK
ICCPROFILE_SRC_DIR = $(CLOSED_SRC)/share/lib/cmm/kcms
endif # OPENJDK
include $(BUILDDIR)/common/Subdirs.gmk
#
# ICC Profiles used by the CMM.
#
......
......@@ -43,6 +43,8 @@ ifeq ($(PLATFORM),solaris)
endif
endif
include $(BUILDDIR)/common/Subdirs.gmk
all build clean clobber::
$(SUBDIRS-loop)
......@@ -47,6 +47,8 @@ else
endif
SUBDIRS += jmxremote
include $(BUILDDIR)/common/Subdirs.gmk
all build clean clobber::
$(SUBDIRS-loop)
......
......@@ -29,6 +29,8 @@ PRODUCT = sun
include $(BUILDDIR)/common/Defs.gmk
SUBDIRS = others spi
include $(BUILDDIR)/common/Subdirs.gmk
all build clean clobber::
$(SUBDIRS-loop)
......@@ -26,7 +26,9 @@
BUILDDIR = ../../..
include $(BUILDDIR)/common/Defs.gmk
SUBDIRS = nameservice
SUBDIRS_misc = nameservice
include $(BUILDDIR)/common/Subdirs.gmk
all build clean clobber::
$(SUBDIRS-loop)
......@@ -27,6 +27,8 @@ BUILDDIR = ../../../..
include $(BUILDDIR)/common/Defs.gmk
SUBDIRS = dns
include $(BUILDDIR)/common/Subdirs.gmk
all build clean clobber::
$(SUBDIRS-loop)
......@@ -29,6 +29,8 @@ PRODUCT = sun
include $(BUILDDIR)/common/Defs.gmk
SUBDIRS = cs
include $(BUILDDIR)/common/Subdirs.gmk
all build clean clobber::
$(SUBDIRS-loop)
......@@ -32,6 +32,8 @@ PRODUCT = org
include $(BUILDDIR)/common/Defs.gmk
SUBDIRS = mozilla
include $(BUILDDIR)/common/Subdirs.gmk
all build clean clobber::
$(SUBDIRS-loop)
......@@ -32,6 +32,8 @@ PRODUCT = org
include $(BUILDDIR)/common/Defs.gmk
SUBDIRS = javascript
include $(BUILDDIR)/common/Subdirs.gmk
all build clean clobber::
$(SUBDIRS-loop)
......@@ -43,6 +43,8 @@ ifeq ($(PLATFORM), windows)
SUBDIRS += cgi
endif # PLATFORM
include $(BUILDDIR)/common/Subdirs.gmk
# Then do the rest
all build clean clobber ::
$(SUBDIRS-loop)
......
......@@ -67,8 +67,10 @@ ifdef DISABLE_INTREE_EC
INTREE_EC =
endif
SUBDIRS = $(INTREE_EC) other action util tools jgss krb5 smartcardio \
$(PKCS11) $(JGSS_WRAPPER) $(MSCAPI)
SUBDIRS = $(INTREE_EC) other action util krb5
SUBDIRS_misc = jgss $(PKCS11) $(JGSS_WRAPPER) $(MSCAPI) smartcardio
SUBDIRS_tools = tools
include $(BUILDDIR)/common/Subdirs.gmk
all build clean clobber::
$(SUBDIRS-loop)
......
......@@ -33,6 +33,8 @@ PRODUCT = sun
include $(BUILDDIR)/common/Defs.gmk
SUBDIRS = dtrace
include $(BUILDDIR)/common/Subdirs.gmk
all build:
$(SUBDIRS-loop)
clean clobber::
......
......@@ -56,6 +56,8 @@ ifndef DISABLE_NIMBUS
SUBDIRS += generate_nimbus
endif
include $(BUILDDIR)/common/Subdirs.gmk
all build clean clobber::
$(SUBDIRS-loop)
......
......@@ -27,7 +27,6 @@ package com.sun.java.util.jar.pack;
import java.io.*;
import java.util.*;
import java.util.logging.Level;
import com.sun.java.util.jar.pack.Package.Class;
import com.sun.java.util.jar.pack.Package.File;
import com.sun.java.util.jar.pack.Package.InnerClass;
......@@ -162,7 +161,7 @@ class PackageReader extends BandStructure {
ok = true;
} catch (Exception ee) {
Utils.log.log(Level.WARNING, "Error on input: "+ee, ee);
Utils.log.warning("Error on input: "+ee, ee);
if (verbose > 0)
Utils.log.info("Stream offsets:"+
" served="+in.getBytesServed()+
......
......@@ -27,7 +27,6 @@ package com.sun.java.util.jar.pack;
import java.io.*;
import java.util.*;
import java.util.logging.Level;
import com.sun.java.util.jar.pack.Package.Class;
import com.sun.java.util.jar.pack.Package.File;
import com.sun.java.util.jar.pack.Package.InnerClass;
......@@ -84,7 +83,7 @@ class PackageWriter extends BandStructure {
ok = true;
} catch (Exception ee) {
Utils.log.log(Level.WARNING, "Error on output: "+ee, ee);
Utils.log.warning("Error on output: "+ee, ee);
//if (verbose > 0) ee.printStackTrace();
// Write partial output only if we are verbose.
if (verbose > 0) finalOut.close();
......
......@@ -28,9 +28,10 @@ package com.sun.java.util.jar.pack;
import java.util.*;
import java.util.jar.*;
import java.util.zip.*;
import java.util.logging.*;
import java.io.*;
import sun.util.logging.PlatformLogger;
class Utils {
static final String COM_PREFIX = "com.sun.java.util.jar.pack.";
static final String METAINF = "META-INF";
......@@ -130,31 +131,53 @@ class Utils {
= Boolean.getBoolean(Utils.COM_PREFIX+"nolog");
static final Logger log
= new Logger("java.util.jar.Pack200", null) {
public void log(LogRecord record) {
int verbose = currentPropMap().getInteger(DEBUG_VERBOSE);
if (verbose > 0) {
if (nolog &&
record.getLevel().intValue() < Level.WARNING.intValue()) {
System.out.println(record.getMessage());
} else {
super.log(record);
}
}
static class Pack200Logger {
private final String name;
private PlatformLogger log;
Pack200Logger(String name) {
this.name = name;
}
private synchronized PlatformLogger getLogger() {
if (log == null) {
log = PlatformLogger.getLogger(name);
}
return log;
}
public void warning(String msg, Object param) {
int verbose = currentPropMap().getInteger(DEBUG_VERBOSE);
if (verbose > 0) {
getLogger().warning(msg, param);
}
}
public void fine(String msg) {
int verbose = currentPropMap().getInteger(DEBUG_VERBOSE);
if (verbose > 0) {
System.out.println(msg);
public void warning(String msg) {
warning(msg, null);
}
public void info(String msg) {
int verbose = currentPropMap().getInteger(DEBUG_VERBOSE);
if (verbose > 0) {
if (nolog) {
System.out.println(msg);
} else {
getLogger().info(msg);
}
}
};
static {
LogManager.getLogManager().addLogger(log);
}
public void fine(String msg) {
int verbose = currentPropMap().getInteger(DEBUG_VERBOSE);
if (verbose > 0) {
System.out.println(msg);
}
}
}
static final Pack200Logger log
= new Pack200Logger("java.util.jar.Pack200");
// Returns the Max Version String of this implementation
static String getVersionString() {
return "Pack200, Vendor: Sun Microsystems, Version: " +
......
......@@ -68,27 +68,42 @@ class Flag {
}
static Flag getFlag(String name) {
Flag[] fs = new Flag[1];
String[] names = new String[1];
names[0] = name;
int count = getFlags(names, fs, 1);
if (count == 1) {
return fs[0];
} else {
List<Flag> flags = getFlags(names, 1);
if (flags.isEmpty()) {
return null;
} else {
// flags should have only one element
return flags.get(0);
}
}
static List<Flag> getAllFlags() {
int numFlags = getInternalFlagCount();
Flag[] fs = new Flag[numFlags];
// Get all internal flags with names = null
int count = getFlags(null, fs, numFlags);
return Arrays.asList(fs);
return getFlags(null, numFlags);
}
private static List<Flag> getFlags(String[] names, int numFlags) {
Flag[] flags = new Flag[numFlags];
int count = getFlags(names, flags, numFlags);
List<Flag> result = new ArrayList<Flag>();
for (Flag f : flags) {
if (f != null) {
result.add(f);
}
}
return result;
}
private static native String[] getAllFlagNames();
// getFlags sets each element in the given flags array
// with a Flag object only if the name is valid and the
// type is supported. The flags array may contain null elements.
private static native int getFlags(String[] names, Flag[] flags, int count);
private static native int getInternalFlagCount();
......
......@@ -111,7 +111,7 @@ public abstract class AuthenticationInfo extends AuthCacheValue implements Clone
* at the same time, then all but the first will block until
* the first completes its authentication.
*/
static private HashMap requests = new HashMap ();
static private HashMap<String,Thread> requests = new HashMap<>();
/* check if a request for this destination is in progress
* return false immediately if not. Otherwise block until
......@@ -125,7 +125,7 @@ public abstract class AuthenticationInfo extends AuthCacheValue implements Clone
synchronized (requests) {
Thread t, c;
c = Thread.currentThread();
if ((t=(Thread)requests.get(key))==null) {
if ((t = requests.get(key)) == null) {
requests.put (key, c);
return false;
}
......@@ -147,8 +147,11 @@ public abstract class AuthenticationInfo extends AuthCacheValue implements Clone
*/
static private void requestCompleted (String key) {
synchronized (requests) {
boolean waspresent = requests.remove (key) != null;
assert waspresent;
Thread thread = requests.get(key);
if (thread != null && thread == Thread.currentThread()) {
boolean waspresent = requests.remove(key) != null;
assert waspresent;
}
requests.notifyAll();
}
}
......
......@@ -423,7 +423,7 @@ public class HttpURLConnection extends java.net.HttpURLConnection {
// Try keep-alive only on first attempt
if (!failedOnce && http.getHttpKeepAliveSet()) {
if (http.usingProxy) {
if (http.usingProxy && tunnelState() != TunnelState.TUNNELING) {
requests.setIfNotSet("Proxy-Connection", "keep-alive");
} else {
requests.setIfNotSet("Connection", "keep-alive");
......
......@@ -151,7 +151,7 @@ public final class KeyTool {
enum Command {
CERTREQ("Generates a certificate request",
ALIAS, SIGALG, FILEOUT, KEYPASS, KEYSTORE,
ALIAS, SIGALG, FILEOUT, KEYPASS, KEYSTORE, DNAME,
STOREPASS, STORETYPE, PROVIDERNAME, PROVIDERCLASS,
PROVIDERARG, PROVIDERPATH, V, PROTECTED),
CHANGEALIAS("Changes an entry's alias",
......@@ -167,7 +167,7 @@ public final class KeyTool {
STORETYPE, PROVIDERNAME, PROVIDERCLASS, PROVIDERARG,
PROVIDERPATH, V, PROTECTED),
GENKEYPAIR("Generates a key pair",
ALIAS, KEYALG, KEYSIZE, SIGALG, DESTALIAS,
ALIAS, KEYALG, KEYSIZE, SIGALG, DESTALIAS, DNAME,
STARTDATE, EXT, VALIDITY, KEYPASS, KEYSTORE,
STOREPASS, STORETYPE, PROVIDERNAME, PROVIDERCLASS,
PROVIDERARG, PROVIDERPATH, V, PROTECTED),
......@@ -176,7 +176,7 @@ public final class KeyTool {
STOREPASS, STORETYPE, PROVIDERNAME, PROVIDERCLASS,
PROVIDERARG, PROVIDERPATH, V, PROTECTED),
GENCERT("Generates certificate from a certificate request",
RFC, INFILE, OUTFILE, ALIAS, SIGALG,
RFC, INFILE, OUTFILE, ALIAS, SIGALG, DNAME,
STARTDATE, EXT, VALIDITY, KEYPASS, KEYSTORE,
STOREPASS, STORETYPE, PROVIDERNAME, PROVIDERCLASS,
PROVIDERARG, PROVIDERPATH, V, PROTECTED),
......
......@@ -84,6 +84,7 @@ Java_sun_management_Flag_getFlags
jint num_flags, i, index;
jmmVMGlobal* globals;
size_t gsize;
const char* class_name = "sun/management/Flag";
const char* signature = "(Ljava/lang/String;Ljava/lang/Object;ZZLcom/sun/management/VMOption$Origin;)V";
jobject origin;
......@@ -100,12 +101,14 @@ Java_sun_management_Flag_getFlags
return 0;
}
globals = (jmmVMGlobal*) malloc(count * sizeof(jmmVMGlobal));
gsize = count * sizeof(jmmVMGlobal);
globals = (jmmVMGlobal*) malloc(gsize);
if (globals == NULL) {
JNU_ThrowOutOfMemoryError(env, 0);
return 0;
}
memset(globals, 0, gsize);
num_flags = jmm_interface->GetVMGlobals(env, names, globals, count);
if (num_flags == 0) {
free(globals);
......
......@@ -44,6 +44,7 @@
* The GConf-2 settings used are:
* - /system/http_proxy/use_http_proxy boolean
* - /system/http_proxy/use_authentcation boolean
* - /system/http_proxy/use_same_proxy boolean
* - /system/http_proxy/host string
* - /system/http_proxy/authentication_user string
* - /system/http_proxy/authentication_password string
......@@ -158,6 +159,7 @@ Java_sun_net_spi_DefaultProxySelector_getSystemProxy(JNIEnv *env,
char *mode = NULL;
int pport = 0;
int use_proxy;
int use_same_proxy = 0;
const char* urlhost;
jobject isa = NULL;
jobject proxy = NULL;
......@@ -179,6 +181,15 @@ Java_sun_net_spi_DefaultProxySelector_getSystemProxy(JNIEnv *env,
* entries.
*/
use_same_proxy = (*my_get_bool_func)(gconf_client, "/system/http_proxy/use_same_proxy", NULL);
if (use_same_proxy) {
use_proxy = (*my_get_bool_func)(gconf_client, "/system/http_proxy/use_http_proxy", NULL);
if (use_proxy) {
phost = (*my_get_string_func)(gconf_client, "/system/http_proxy/host", NULL);
pport = (*my_get_int_func)(gconf_client, "/system/http_proxy/port", NULL);
}
}
/**
* HTTP:
* /system/http_proxy/use_http_proxy (boolean)
......@@ -188,8 +199,10 @@ Java_sun_net_spi_DefaultProxySelector_getSystemProxy(JNIEnv *env,
if (strcasecmp(cproto, "http") == 0) {
use_proxy = (*my_get_bool_func)(gconf_client, "/system/http_proxy/use_http_proxy", NULL);
if (use_proxy) {
phost = (*my_get_string_func)(gconf_client, "/system/http_proxy/host", NULL);
pport = (*my_get_int_func)(gconf_client, "/system/http_proxy/port", NULL);
if (!use_same_proxy) {
phost = (*my_get_string_func)(gconf_client, "/system/http_proxy/host", NULL);
pport = (*my_get_int_func)(gconf_client, "/system/http_proxy/port", NULL);
}
CHECK_NULL(type_proxy = (*env)->GetStaticObjectField(env, ptype_class, ptype_httpID));
}
}
......@@ -203,8 +216,10 @@ Java_sun_net_spi_DefaultProxySelector_getSystemProxy(JNIEnv *env,
if (strcasecmp(cproto, "https") == 0) {
mode = (*my_get_string_func)(gconf_client, "/system/proxy/mode", NULL);
if (mode != NULL && (strcasecmp(mode,"manual") == 0)) {
phost = (*my_get_string_func)(gconf_client, "/system/proxy/secure_host", NULL);
pport = (*my_get_int_func)(gconf_client, "/system/proxy/secure_port", NULL);
if (!use_same_proxy) {
phost = (*my_get_string_func)(gconf_client, "/system/proxy/secure_host", NULL);
pport = (*my_get_int_func)(gconf_client, "/system/proxy/secure_port", NULL);
}
use_proxy = (phost != NULL);
if (use_proxy)
type_proxy = (*env)->GetStaticObjectField(env, ptype_class, ptype_httpID);
......@@ -220,8 +235,10 @@ Java_sun_net_spi_DefaultProxySelector_getSystemProxy(JNIEnv *env,
if (strcasecmp(cproto, "ftp") == 0) {
mode = (*my_get_string_func)(gconf_client, "/system/proxy/mode", NULL);
if (mode != NULL && (strcasecmp(mode,"manual") == 0)) {
phost = (*my_get_string_func)(gconf_client, "/system/proxy/ftp_host", NULL);
pport = (*my_get_int_func)(gconf_client, "/system/proxy/ftp_port", NULL);
if (!use_same_proxy) {
phost = (*my_get_string_func)(gconf_client, "/system/proxy/ftp_host", NULL);
pport = (*my_get_int_func)(gconf_client, "/system/proxy/ftp_port", NULL);
}
use_proxy = (phost != NULL);
if (use_proxy)
type_proxy = (*env)->GetStaticObjectField(env, ptype_class, ptype_httpID);
......@@ -237,8 +254,10 @@ Java_sun_net_spi_DefaultProxySelector_getSystemProxy(JNIEnv *env,
if (strcasecmp(cproto, "gopher") == 0) {
mode = (*my_get_string_func)(gconf_client, "/system/proxy/mode", NULL);
if (mode != NULL && (strcasecmp(mode,"manual") == 0)) {
phost = (*my_get_string_func)(gconf_client, "/system/proxy/gopher_host", NULL);
pport = (*my_get_int_func)(gconf_client, "/system/proxy/gopher_port", NULL);
if (!use_same_proxy) {
phost = (*my_get_string_func)(gconf_client, "/system/proxy/gopher_host", NULL);
pport = (*my_get_int_func)(gconf_client, "/system/proxy/gopher_port", NULL);
}
use_proxy = (phost != NULL);
if (use_proxy)
type_proxy = (*env)->GetStaticObjectField(env, ptype_class, ptype_httpID);
......@@ -254,8 +273,10 @@ Java_sun_net_spi_DefaultProxySelector_getSystemProxy(JNIEnv *env,
if (strcasecmp(cproto, "socks") == 0) {
mode = (*my_get_string_func)(gconf_client, "/system/proxy/mode", NULL);
if (mode != NULL && (strcasecmp(mode,"manual") == 0)) {
phost = (*my_get_string_func)(gconf_client, "/system/proxy/socks_host", NULL);
pport = (*my_get_int_func)(gconf_client, "/system/proxy/socks_port", NULL);
if (!use_same_proxy) {
phost = (*my_get_string_func)(gconf_client, "/system/proxy/socks_host", NULL);
pport = (*my_get_int_func)(gconf_client, "/system/proxy/socks_port", NULL);
}
use_proxy = (phost != NULL);
if (use_proxy)
type_proxy = (*env)->GetStaticObjectField(env, ptype_class, ptype_socksID);
......
......@@ -692,7 +692,6 @@ java/net/URLConnection/TimeoutTest.java generic-all
java/net/URLConnection/ZeroContentLength.java generic-all
# Solaris 11 i586 fails with samevm, not sure why
java/net/Authenticator/B4769350.java generic-all
java/net/HttpURLConnection/HttpResponseCode.java generic-all
java/net/ResponseCache/B6181108.java generic-all
java/net/ResponseCache/ResponseCacheTest.java generic-all
......
......@@ -26,9 +26,12 @@
* @bug 4769350
* @library ../../../sun/net/www/httptest/
* @build HttpCallback HttpServer ClosedChannelList HttpTransaction AbstractCallback
* @run main B4769350 server
* @run main B4769350 proxy
* @run main/othervm B4769350 server
* @run main/othervm B4769350 proxy
* @summary proxy authentication username and password caching only works in serial case
* Run in othervm since the test sets system properties that are read by the
* networking stack and cached when the HTTP handler is invoked, and previous
* tests may already have invoked the HTTP handler.
*/
import java.io.*;
......
/*
* Copyright 2010 Sun Microsystems, Inc. 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.
*
* 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
* CA 95054 USA or visit www.sun.com if you need additional information or
* have any questions.
*/
/*
* This is a manual test to determine the proxies set on the system for various
* protocols. See bug 6912868.
*/
import java.net.Proxy;
import java.net.ProxySelector;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.List;
public class SystemProxies {
static final String uriAuthority = "myMachine/";
static final ProxySelector proxySel = ProxySelector.getDefault();
public static void main(String[] args) {
if (! "true".equals(System.getProperty("java.net.useSystemProxies"))) {
System.out.println("Usage: java -Djava.net.useSystemProxies SystemProxies");
return;
}
printProxies("http://");
printProxies("https://");
printProxies("ftp://");
}
static void printProxies(String proto) {
String uriStr = proto + uriAuthority;
try {
List<Proxy> proxies = proxySel.select(new URI(uriStr));
System.out.println("Proxies returned for " + uriStr);
for (Proxy proxy : proxies)
System.out.println("\t" + proxy);
} catch (URISyntaxException e) {
System.err.println(e);
}
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册