自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

随笔记录-分享&记忆

读书之法,----------------在循序而渐进,-----------熟读而精思 --------朱熹

  • 博客(14)
  • 资源 (99)
  • 收藏
  • 关注

原创 wdatepicker 日历控件,起始日期和结束日期 ,相差60天,并且在当时时间之前

官方地址:http://www.my97.net/dp/index.asp开始时间和结束时间的最大间隔为60天,并且不大于当前时间查询了官方文档demo,发现可以满足"开始时间和结束时间的最大间隔为60天"条件,但是不满足并且不大于当前时间。在网上查了一些例子:自己应用步骤如下 :(前提是已经引入WdatePicker.js) div class

2017-02-22 13:33:30 3493

原创 eclipse版本信息, Oxygen Packages Neon Packages Mars Packages Luna Packages Kepler Packages Juno Packages

Oxygen PackagesNeon PackagesMars PackagesLuna PackagesKepler PackagesJuno PackagesIndigo PackagesHelios PackagesGalileo Packages

2017-02-14 13:56:53 5910

原创 JVM中堆空间划分、参数设置

上图中,刻画了Java程序运行时的堆空间,可以简述成如下2条1.JVM中堆空间可以分成三个大区,新生代、老年代、永久代2.新生代可以划分为三个区,Eden区,两个幸存区在JVM运行时,可以通过配置以下参数改变整个JVM堆的配置比例1.JVM运行时堆的大小  -Xms堆的最小值  -Xmx堆空间的最大值2.新生代堆空间大小调整  -XX:NewSize新生代的最小值

2017-02-09 18:06:54 2411

转载 JVM的基本结构及JVM的内存溢出方式

JVM内部结构图Java虚拟机主要分为五个区域:方法区、堆、Java栈、PC寄存器、本地方法栈。下面来看一些关于JVM结构的重要问题。1.哪些区域是共享的?哪些是私有的?Java栈、本地方法栈、程序计数器是随用户线程的启动和结束而建立和销毁的,每个线程都有独立的这些区域。而方法区、堆是被整个JVM进程中的所有线程共享的。 2.方法区保存什么?会被回收吗?

2017-02-09 17:54:38 607

转载 JVM内存结构图解 (四)

四 数据类型占用空间分析  操作数栈:long和double需要占用2个栈深单位(unit of depth),其它类型占用1个栈深单位。  局部变量表:long和double需要占用2个局部变量空间(slot),其它类型占用1个局部变量空间。  运行时常量池:byte、short和int被存储为CONSTANT_Integer_info 结构;float被存储为CONST

2017-02-09 17:06:30 1185

转载 JVM内存结构图解 (三)

㈢ 构造方法图解1.操作数栈初始为空,执行0:aload_0指令,局部变量表的当前方法所属对象的引用(this) 复制到操作数栈的栈顶。实例对象保存在java堆,方法引用指向非堆方法区。2.执行1:invokespecial #1指令,调用父类的初始化方法。父类初始化方法会在当前栈帧上添加一层新的栈帧。父类初始化方法执行完毕后,其对应栈帧销毁。3.执行4:return指令返

2017-02-09 17:00:00 1017

转载 JVM内存结构图解 (-)

一 真实系统中的概念  JVM(Java Virtual Machine),顾名思义是对真实计算机系统的模拟,正因如此才能屏蔽物理机器的变化,从而实现“一次编译,到处运行”。  相信很多Java程序员经常听到堆、栈等概念,也会进行设置调优以让Java应用能够更好地运行,但对于JVM与真实计算机系统之间的关系并没有特别清晰的认识。因此,这里先简单介绍下真实计算机系统中的一些概念。

2017-02-09 16:34:48 521

原创 理解JVM,用代码说明下抽象的概念,易理解和学习 (二)

源码:package com.shl.test;/** * Created by IntelliJ IDEA. * Created by Freddy on 2017/2/9. */public class HelloWorld { //声明全局变量a并赋值 public static final int a = 10; public static v

2017-02-09 16:13:20 467

原创 了解JVM原理、结构;代码说明抽象概念

程序计数器(Program Counter Register)类似于PC寄存器,是一块较小的内存区域,通过程序计数器中的值寻找要执行的指令的字节码,由于多线程间切换时要恢复每一个线程的当前执行位置,所以每个线程都有自己的程序计算器。这一个区域不会有OutOfMemeryError。当执行Java方法时,这里存储的执行的指令的地址,如果执行的是本地方法,这里的值是Undefined。也可以这

2017-02-09 15:12:13 616

原创 枚举 TimeUnit 使用和说明

long millis = TimeUnit.NANOSECONDS.toMillis(long duration);java.util.concurrent 枚举 TimeUnitjava.lang.Object java.lang.EnumTimeUnit> java.util.concurrent.TimeUnit所有已实现的接口: Serializab

2017-02-09 11:58:03 3712

原创 System.nanoTime()和System.currentTimeMillis()区别 (还是直接看API比较清晰)

先来看看System的静态方法nanoTime()public static long nanoTime()返回最准确的可用系统计时器的当前值,以毫微秒为单位。 此方法只能用于测量已过的时间,与系统或钟表时间的其他任何时间概念无关。返回值表示从某一固定但任意的时间算起的毫微秒数(或许从以后算起,所以该值可能为负)。此方法提供毫微秒的精度,但不是必要的毫微秒的准确度。它对于值的更改频

2017-02-09 11:50:23 4116 1

转载 十大Intellij IDEA快捷键 for System.out、main快捷键

Intellij IDEA中有很多快捷键让人爱不释手,stackoverflow上也有一些有趣的讨论。每个人都有自己的最爱,想排出个理想的榜单还真是困难。以前也整理过Intellij的快捷键,这次就按照我日常开发时的使用频率,简单分类列一下我最喜欢的十大快捷-神-键吧。1 智能提示Intellij首当其冲的当然就是Intelligence智能!基本的代码提示用Ctrl+Space,

2017-02-09 10:44:22 11881

转载 String、StringBuffer、Stringbuild区别、性能比较

原文地址:http://www.iteye.com/topic/522167作者:每次上网冲杯Java时,都能看到关于String无休无止的争论。还是觉得有必要让这个讨厌又很可爱的String美眉,赤裸裸的站在我们这些Java色狼面前了。嘿嘿....众所周知,String是由字符组成的串,在程序中使用频率很高。Java中的String是一个类,而并非基本数据类型。 不过她却不是普通

2017-02-07 13:49:52 5759 1

原创 Java字节码深入解析 || 使用Intellij idea如何快速查看Java类字节码

注意:javap 查看【class文件的字节码】信息 Java字节码深入解析一:Java字节代码的组织形式  类文件{  OxCAFEBABE,小...

2017-02-04 11:50:17 9007 3

prometheus-2.29.2.linux-amd64.tar

prometheus

2021-09-22

thanos-0.22.0.linux-amd64.tar

thanos

2021-09-22

IDC:容器新势力,市场新动力.zip

IDC最新报告:容器新势力,市场新动力

2021-08-15

bookmarks_12_28_20.html

CKA ,考试标签页

2020-12-30

k8s-gcr-io-metrics-server-metrics-server-v0.4.1.rar

k8s.gcr.io/metrics-server/metrics-server:v0.4.1 components.yaml 博客地址:https://blog.csdn.net/shenhonglei1234/category_7260434.html

2020-12-14

gcr-io-distroless-stati.rar

gcr.io/distroless/static:latest,制作k8s.gcr.io/metrics-server/metrics-server:v0.4.1的基础资源

2020-12-14

k8s fundamentals-LFS258-

Kubernetes 基础课程个人笔记整理包含内容:01.课程介绍 02. KUBERNETES的基础 03.安装与配置 04. KUBERNETES 架构 05. API和访问(ACCESS) 06. API对象(API Objects) 07.通过部署管理状态(managing state with deployments) 08.卷和数据(Volumes and Data) 09.服务(services) 10. INGRESS 11.Scheduling 12.记录和故障排除(Logging and Troubleshooting) 13.Custom Resource Definit

2020-12-10

最新三级地址json格式数据

最新三级地址json 格式数据,和京东进行对照同步! 一些省市重新划分导致三级地址不准确或者无法验证,该文件数据是最新的数据同步,可放心下载。

2020-12-03

demo4shl.zip

demo项目war tomcat集成JMX,添加dockerfile,制作镜像images,运行在docker或者k8s上。

2020-05-26

Prometheus+Grafana监控Kubernetes-配套yaml20200524.zip

Prometheus+Grafana监控Kubernetes-配套yaml20200524.zip, 最新资源更新,之前那个版本有个别错误的地方,哎,可惜无法删除

2020-05-24

Prometheus+Grafana监控Kubernetes-配套yaml.zip

Prometheus+Grafana监控Kubernetes-配套yaml.zip grafana.yaml、Kubernetes Pod Resources.json、namespace.yaml、node-exporter.yaml、prometheus.yaml

2020-05-22

OpenShift Container Platform 4.4 更新集群

第 1 章 在在次次版版本本间更更新新集集群群 1.1. 关于 OPENSHIFT CONTAINER PLATFORM 更新服务 1.2. OPENSHIFT CONTAINER PLATFORM 升级频道和发行版本 1.3. 使用WEB控制台更新集群 第 2 章 通过 WEB 控控制制台台将将集集群群更更新新为一一个个新新的的次次版版本本 2.1. 关于 OPENSHIFT CONTAINER PLATFORM 更新服务 2.2. OPENSHIFT CONTAINER PLATFORM 升级频道和发行版本 2.3. 使用WEB控制台更新集群 第 3 章 使使用用 CLI 将将集集群群更更新新为一一个个新新的的次次版版本本 3.1. 关于 OPENSHIFT CONTAINER PLATFORM 更新服务 3.2. OPENSHIFT CONTAINER PLATFORM 升级频道和发行版本 3.3. 使用 CLI 更新集群 第 4 章 更更新新包包含含使使用用 RHEL 的计算算((COMPUTE))系系统的的集集群群 4.1. 关于 OPENSHIFT CONTAINER PLATFORM 更新服务 4.2. OPENSHIFT CONTAINER PLATFORM 升级频道和发行版本 4.3. 使用WEB控制台更新集群 4.4. (可选)添加 HOOK 以在RHEL系统上执行ANSIBLE任务 4.5. 更新集群中的RHEL COMPUTE 系统 33467779111111 13161617182021

2020-05-21

OpenShift_Container_Platform-4.4-Installing_on_bare_metal-zh-CN.pdf

第 1 章 在在裸裸机机上上安安装装 1.1. 在裸机上安装集群 1.2. 使用网络自定义在裸机上安装集群 1.3. 在受限网络中的裸机上安装集群

2020-05-21

OpenShift_Container_Platform-4.4-Architecture-zh-CN.pdf

第 1 章 OPENSHIFT CONTAINER PLATFORM 架构 1.1. OPENSHIFT CONTAINER PLATFORM 简介 第 2 章 安安装装和和更更新新 2.1. OPENSHIFT CONTAINER PLATFORM 安装概述 2.2. 关于 OPENSHIFT CONTAINER PLATFORM 更新服务 2.3. 支持非受管 OPERATOR 的策略 第 3 章 OPENSHIFT CONTAINER PLATFORM CONTROL PLANE 3.1. 了解 OPENSHIFT CONTAINER PLATFORM CONTROL PLANE 第 4 章 了了解解 OPENSHIFT CONTAINER PLATFORM 开发 4.1. 关于容器化应用程序开发 4.2. 构建一个简单容器 4.3. 为 OPENSHIFT CONTAINER PLATFORM 创建 KUBERNETES 清单 4.4. 面向 OPERATOR 进行开发 第 5 章 RED HAT ENTERPRISE LINUX COREOS (RHCOS) 5.1. 关于 RHCOS 5.2. 查看 IGNITION 配置文件 5.3. 安装后更改 IGNITION 配置 33771111 1313171717202223232628

2020-05-21

Introducing Red Hat CodeReady Containers.pdf

Table of Contents 1. Introducing Red Hat CodeReady Containers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.1. About CodeReady Containers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.2. Differences from a production OpenShift installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2. Installation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2.1. Minimum system requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2.1.1. Hardware requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2.1.2. Operating system requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.2. Required software packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.3. Installing CodeReady Containers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.4. Upgrading CodeReady Containers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 3. Using CodeReady Containers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 3.1. Setting up CodeReady Containers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 3.2. Starting the virtual machine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 3.3. Accessing the OpenShift cluster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 3.3.1. Accessing the OpenShift web console . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 3.3.2. Accessing the OpenShift cluster with oc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 3.4. Stopping the virtual machine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 3.5. Deleting the virtual machine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 4. Configuring CodeReady Containers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 4.1. About CodeReady Containers configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 4.2. Viewing CodeReady Containers configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 4.3. Configuring the virtual machine. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 5. Networking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 5.1. DNS configuration details. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 5.1.1. General DNS setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 5.1.2. Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 5.1.3. macOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 5.2. Starting CodeReady Containers behind a proxy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 6. Administrative tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 6.1. Starting Monitoring, Alerting, and Telemetry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 7. Troubleshooting Red Hat CodeReady Containers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 7.1. Basic troubleshooting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 7.2. Getting shell access to the OpenShift cluster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 7.3. Troubleshooting expired certifi

2020-05-21

demo4shl.war

博客配套资源包下载,demo4shl.war,kubernetes的Container&initContainer

2020-05-21

eudic-Version 3.9.1 (1032).zip

官方网站 www.eudic.net Icon Design by VIRUS 《欧路词典》是共享软件,您可以通过Internet传播。但通过其它途径传播该软件时,必须事先通过我们许可。《欧路词典》作为共享软件,将收取一定的注册费,以供我们进行软件的后续开发,但这不意味注册用户拥有辞典数据的版权。

2019-08-08

mac net.downloadhelper.coapp-1.3.0.zip

net.downloadhelper.coapp-1.3.0.pkg mac使用方法: 1.先在chorme中安装插件Video DownloadHelper 7.3.7.0 2.再下载这个coapp,就可以直接下载使用。 安装成功后显示: Found companion app: VdhCoApp 1.3.0 Companion app binary: /Applications/net.downloadhelper.coapp.app/Contents/MacOS/bin/net.downloadhelper.coapp-mac-64

2019-07-24

Red_Hat_CloudForms-4.5

Red_Hat_CloudForms-4.5-Red_Hat_CloudForms_REST_API-en-US.

2017-09-08

Alfresco文档管理系统

1 Alfresco基础功能操作 4 1.1 Alfresco概览 4 1.2 定制你的Alfresco仪表板 5 1.3 更新你的ALFRESCO档案 5 1.4 设置你的ALFRESCO主页 5 1.5 创建ALFRESCO站点 5 1.6 加入或离开一个ALFRESCO站点 5 1.7 定制站点仪表板 6 1.8 添加ALFRESCO站点功能 6 1.9 拖拽方式上传文件夹 -- (NEW) 6 1.10 添加内容到ALFRESCO 6 1.11 在ALFRESCO中创建内容 6 1.12 离线编辑文件 6 1.13 在AFRESCO中寻找文件 6 1.14 在ALFRESCO中预览文件 7 1.15 版本化文件 7 1.16 在ALFRESCO中创建规则 7 1.17 创建用户 7 1.18 创建用户组 7 1.19 添加用户到站点 7 1.20 ALFRESCO站点管理员 7 1.21 在ALFRESCO中创建任务 8 1.22 ALFRESCO搜索管理器 8 1.23 使用模型管理器创建模型 8 1.24 使用模型 8 2 功能说明 8 2.1 仪表盘 8 2.2 站点管理 8 2.3 文档管理 9 2.3.1 新增文档 10 2.3.2 编辑文档 10 2.3.3 删除文档 12 2.3.4 检索文档 12 2.4 文件夹管理 13 2.4.1 创建文件夹 14 2.4.2 文件夹规则 14 2.4.3 删除文件夹 16 2.5 用户和用户组管理 16 2.5.1 创建用户和组 16 2.5.2 修改用户信息 18 2.5.3 人员检索 18 2.5.4 用户组管理、邀请用户和删除用户 19 2.6 权限管理功能 19 2.6.1 角色 19 2.6.2 权限管理 19 2.7 文档的版本管理 20 2.7.1 查看历史版本 20 2.7.2 版本信息管理 21

2017-06-12

Activiti+5.4中文文档_IT168文库

Activiti+5.4中文文档_IT168文库

2017-03-23

ActivitiDeveloperQuickStart Quick Start Guide

Activiti-Quick Start Guide- ActivitiDeveloperQuickStart 下载导入就可以运行 配置个Mysql,运行成功,会自动创建25张表。 其它不用动。

2017-03-23

OpenShift官方教程,内有原文连接

Environment Overview 1 Lab: Installing the OpenShift CLI 2 Lab: Exploring the CLI and Web Console 5 Lab: Deploy a Docker Image 8 Lab: Scaling and Self Healing 14 Lab:CreatingRoutes by Exposing Services 18 ......

2017-03-22

LDAP安装说明-配合博客使用

LDAP安装说明-配合博客使用

2017-03-21

Alfresco5.1图文说明安装

Alfresco5.1图文说明安装

2017-03-15

java项目开发文档和源代码

java项目开发文档和源代码

2016-11-21

17位车架号详解、完整版本、VIN号

l 车架号(VIN码) l VIN码详解 第1位:生产国家代码 第2位:汽车制造商代码 第3位:汽车类型代码 第4~8位(vds)车辆特征 第9位:校验位 第10位:车型年款 第11位:装配厂 第12~17位:顺序号 l 举几个例子

2016-11-09

Java实现的23种设计模式

用Java实现的23种设计模式,完整的代码。

2016-08-07

Java-NIO-系列教程

Java-NIO-系列教程

2016-05-26

Openjpa2.2+Mysql+Maven+Servlet+JSP source code

Openjpa2.2+Mysql+Maven+Servlet+JSP 博客源码: http://blog.csdn.net/shenhonglei1234/article/details/10394379

2013-08-27

openjpa openbooks database script

http://blog.csdn.net/shenhonglei1234/article/details/10352367 openjpa框架入门_项目框架搭建(二) Openjpa2.2+Mysql+Maven+Servlet+JSP

2013-08-27

JAVA反编译

JAVA反编译,DJ Java Decompiler v3.12.12.96 "Second Cup" java.decompiler http://java.decompiler.free.fr/

2013-08-13

Spring-batch Demo

Spring Batch流程介绍: 每个Batch都会包含一个Job。Job就像一个容器,这个容器里装了若干Step,Batch中实际干活的也就是这些Step,至于Step干什么活,无外乎读取数据,处理数据,然后将这些数据存储起来(IconvItemReader用来读取数据,IconvItemProcessor用来处理数据,IconvItemWriter用来写数据) 。JobLaunch用来启动Job,JobRepository是上述处理提供的一种持久化机制,它为JobLauncher,Job,和Step实例提供CRUD操作。 外部控制器调用JobLauncher启动一个Job,Job调用自己的Step去实现对数据的操作,Step处理完成后,再将处理结果一步步返回给上一层,这就是Batch处理实现的一个简单流程。

2013-06-20

OSGI in Action SourceCode(完整版电子书已经上传)

OSGi in Action Creating Modular Applications in Java Richard S. Hall, Karl Pauls, Stuart McCulloch, and David Savage Foreword by Peter Kriens April, 2011 | 576 pages ISBN 1933988916 $49.99 Softbound print book - (includes free ebook) $39.99 Ebook in PDF, epub and Kindle—your purchase includes all three formats! Browse all our mobile format ebooks. Resources Look Inside Preface About this book Table of Contents Foreword Index

2013-05-22

OSGI in Action

brief contents PART 1 INTRODUCING OSGI: MODULARITY, LIFECYCLE, AND SERVICES 1 1 ■ OSGi revealed 3 2 ■ Mastering modularity 24 3 ■ Learning lifecycle 69 4 ■ Studying services 117 5 ■ Delving deeper into modularity 154 PART 2 OSGI IN PRACTICE .......................................................189 6 ■ Moving toward bundles 191 7 ■ Testing applications 230 8 ■ Debugging applications 258 9 ■ Managing bundles 292 10 ■ Managing applications 319 PART 3 ADVANCED TOPICS ........................................................343 11 ■ Component models and frameworks 345 12 ■ Advanced component frameworks 373 vi BRIEF CONTENTS 13 ■ Launching and embedding an OSGi framework 412 14 ■ Securing your applications 438 15 ■ Web applications and web services 477 vii contents foreword xiv preface xvii acknowledgments xix about this book xx about the authors xxv PART 1 INTRODUCING OSGI: MODULARITY, LIFECYCLE, AND SERVICES ......................................................1 1 OSGi revealed 3 1.1 The what and why of OSGi 4 Java’s modularity limitations 5 ■ Can OSGi help you? 8 1.2 An architectural overview of OSGi 9 The OSGi framework 9 ■ Putting it all together 12 1.3 “Hello, world!” examples 12 Module layer example 12 ■ Lifecycle layer example 14 ■ Service layer example 16 ■ Setting the stage 18 viii CONTENTS 1.4 Putting OSGi in context 19 Java Enterprise Edition 19 ■ Jini 20 ■ NetBeans 20 ■ Java Management Extensions 20 ■ Lightweight containers 21 ■ Java Business Integration 21 ■ JSR 277 21 ■ JSR 294 22 ■ Service Component Architecture 22 ■ .NET 22 1.5 Summary 23 2 Mastering modularity 24 2.1 What is modularity? 25 Modularity vs. object orientation 25 2.2 Why modularize? 27 2.3 Modularizing a simple paint program 28 2.4 Introducing bundles 31 The bundle’s role in physical modularity 32 ■ The bundle’s role in logical modularity 33 2.5 Defining bundles with metadata 34 Human-readable information 35 ■ Bundle identification 36 Code visibility 39 ■ Class-search order 48 2.6 Finalizing the paint program design 50 Improving the paint program’s modularization 51 ■ Launching the new paint program 52 2.7 OSGi dependency resolution 53 Resolving dependencies automatically 53 ■ Ensuring consistency with uses constraints 59 2.8 Reviewing the benefits of the modular paint program 64 2.9 Summary 68 3 Learning lifecycle 69 3.1 Introducing lifecycle management 70 What is lifecycle management? 70 ■ Why lifecycle management? 72 3.2 OSGi bundle lifecycle 72 Introducing lifecycle to the paint program 73 ■ The OSGi framework’s role in the lifecycle 75 ■ The bundle activator manifest entry 76 ■ Introducing the lifecycle API 77 ■ Lifecycle state diagram 83 ■ Bundle cache and framework restarts 84 3.3 Using the lifecycle API in your bundles 85 Configuring bundles 86 ■ Deploying bundles 88 ■ Inspecting framework state 92 ■ Persisting bundle state 93 ■ Listening for events 96 ■ Bundle suicide 99 CONTENTS ix 3.4 Dynamically extending the paint program 101 3.5 Lifecycle and modularity 108 Resolving bundles 108 ■ Refreshing bundles 110 ■ When updating isn’t updated 114 3.6 Summary 115 4 Studying services 117 4.1 The what, why, and when of services 118 What is a service? 118 ■ Why use services? 119 ■ When to use services 123 ■ When not to use services 124 ■ Still not sure? 124 4.2 OSGi services in action 125 Publishing a service 126 ■ Finding and binding services 128 4.3 Dealing with dynamics 132 Avoiding common pitfalls 133 ■ Listening for services 136 Tracking services 141 4.4 Using services in the paint example 143 Defining a shape service 144 ■ Publishing a shape service 144 Tracking shape services 145 4.5 Relating services to modularity and lifecycle 146 Why can’t I see my service? 147 ■ Can I provide a bundle-specific service? 147 ■ When should I unget a service? 148 ■ When should I unregister my service? 148 ■ Should I bundle interfaces separately? 149 4.6 Standard services 149 Core services 150 ■ Compendium services 151 4.7 Summary 152 5 Delving deeper into modularity 154 5.1 Managing your exports 155 Importing your exports 155 ■ Implicit export attributes 158 Mandatory export attributes 160 ■ Export filtering 161 Duplicate exports 162 5.2 Loosening your imports 164 Optional imports 164 ■ Dynamic imports 165 ■ Optional vs. dynamic imports 166 ■ Logging example 167 5.3 Requiring bundles 171 Declaring bundle dependencies 171 ■ Aggregating split packages 173 ■ Issues with bundle dependencies 176 x CONTENTS 5.4 Dividing bundles into fragments 177 Understanding fragments 177 ■ Using fragments for localization 180 5.5 Dealing with your environment 183 Requiring execution environments 184 ■ Bundling native libraries 185 5.6 Summary 187 PART 2 OSGI IN PRACTICE...........................................189 6 Moving toward bundles 191 6.1 Turning JARs into bundles 192 Choosing an identity 192 ■ Exporting packages 195 Discovering what to import 199 ■ Embedding vs. importing 203 Adding lifecycle support 204 ■ JAR file to bundle cheat sheet 205 6.2 Splitting an application into bundles 206 Making a mega bundle 206 ■ Slicing code into bundles 216 Loosening things up 221 ■ To bundle or not to bundle? 226 6.3 Summary 229 7 Testing applications 230 7.1 Migrating tests to OSGi 231 In-container testing 231 ■ Bundling tests 232 ■ Covering all the bases 235 7.2 Mocking OSGi 237 Testing expected behavior 237 ■ Mocking in action 238 Mocking unexpected situations 240 ■ Coping with multithreaded tests 241 ■ Exposing race conditions 243 7.3 Advanced OSGi testing 244 OSGi test tools 245 ■ Running tests on multiple frameworks 246 Unit testing 250 ■ Integration testing 251 ■ Management testing 254 7.4 Summary 257 8 Debugging applications 258 8.1 Debugging bundles 259 Debugging in action 261 ■ Making things right with HotSwap 266 CONTENTS xi 8.2 Solving class-loading issues 271 ClassNotFoundException vs. NoClassDefFoundError 272 ■ Casting problems 274 ■ Using uses constraints 275 ■ Staying clear of Class.forName() 278 ■ Following the Thread Context Class Loader 280 8.3 Tracking down memory leaks 283 Analyzing OSGi heap dumps 283 8.4 Dangling services 287 Finding a dangling service 287 ■ Protecting against dangling services 288 8.5 Summary 290 9 Managing bundles 292 9.1 Versioning packages and bundles 293 Meaningful versioning 293 ■ Package versioning 295 Bundle versioning 297 9.2 Configuring bundles 299 Configuration Admin Service 299 ■ Metatype Service 309 Preferences Service 312 9.3 Starting bundles lazily 314 Understanding activation policies 315 ■ Using activation policies 316 9.4 Summary 317 10 Managing applications 319 10.1 Deploying bundles 320 Introducing management agents 320 ■ OSGi Bundle Repository 321 Deployment Admin 330 10.2 Ordering bundle activation 337 Introducing the Start Level Service 338 ■ Using the Start Level Service 339 10.3 Summary 342 PART 3 ADVANCED TOPICS ............................................343 11 Component models and frameworks 345 11.1 Understanding component orientation 346 What are components? 346 ■ Why do we want components? 348 xii CONTENTS 11.2 OSGi and components 349 OSGi’s service-oriented component model 349 ■ Improving upon OSGi’s component model 351 ■ Painting with components 355 11.3 Declarative Services 355 Building Declarative Services components 356 ■ Providing services with Declarative Services 357 ■ Consuming services with Declarative Services 359 ■ Declarative Services component lifecycle 364 11.4 Summary 371 12 Advanced component frameworks 373 12.1 Blueprint Container 374 Blueprint architecture 374 ■ Providing services with Blueprint 375 Consuming services with Blueprint 378 ■ Blueprint component lifecycle 382 ■ Advanced Blueprint features 387 12.2 Apache Felix iPOJO 391 Building iPOJO components 392 ■ Providing services with iPOJO 393 Consuming services with iPOJO 395 ■ iPOJO component lifecycle 400 ■ Instantiating components with iPOJO 404 12.3 Mix and match 408 12.4 Summary 411 13 Launching and embedding an OSGi framework 412 13.1 Standard launching and embedding 413 Framework API overview 413 ■ Creating a framework instance 415 ■ Configuring a framework 417 ■ Starting a framework instance 419 ■ Stopping a framework instance 420 13.2 Launching the framework 421 Determining which bundles to install 422 ■ Shutting down cleanly 422 ■ Configuring, creating, and starting the framework 423 Installing the bundles 424 ■ Starting the bundles 424 ■ Starting the main bundle 425 ■ Waiting for shutdown 426 13.3 Embedding the framework 427 Inside vs. outside 427 ■ Who’s in control? 431 ■ Embedded framework example 432 13.4 Summary 437 14 Securing your applications 438 14.1 To secure or not to secure 439 CONTENTS xiii 14.2 Security: just do it 440 Java and OSGi security 440 14.3 OSGi-specific permissions 444 PackagePermission 444 ■ BundlePermission 445 ■ Admin- Permission 446 ■ ServicePermission 447 ■ Relative file permissions 448 14.4 Managing permissions with Conditional Permission Admin 449 Conditional permissions 449 ■ Introducing the Conditional Permission Admin Service 450 ■ Bundle location condition 451 Using ConditionalPermissionAdmin 452 ■ Implementing a policy-file reader 456 14.5 Digitally signed bundles 457 Learning the terminology 458 ■ Creating certificates and signing bundles 458 ■ BundleSignerCondition 461 14.6 Local permissions 464 14.7 Advanced permission management 465 Custom conditions overview 465 ■ Date-based condition 466 User-input condition 467 14.8 Bringing it all back home 471 14.9 Summary 475 15 Web applications and web services 477 15.1 Creating web applications 478 Using the HTTP Service specification 479 ■ Using the Web Applications specification 488 ■ Standard WARs: the Web URL Handler 492 15.2 Providing and consuming web services 493 Providing a web service 494 ■ Consuming a web service 499 Distributing services 502 15.3 Summary 510 appendix A Building bundles 513 appendix B OSGi standard services 528 index 531

2013-05-22

简单的树形菜单

一个简单的树形菜单,其它样式和js是分开的,可以自由修改成自己想要的。 我是在网上找到的,自己用着很好,分享给大家。

2013-02-05

VFP简单初级入门教程.rar

VFP简单初级入门教程.rar

2012-11-05

可视化数据库管理系统平台VFP

Visual FoxPro ,是Microsoft公司从Fox公司的FoxBase数据库软件经过数次改良,并且移植到Windows之后,得来的应用程序开发软件,主要用于开发数据管理与运算等方面的软件。VFP是Microsoft公司推出的最新可视化数据库管理系统平台,是功能特别强大的32位数据库管理系统。它提供了功能完备的工具、极其友好的用户界面、简单的数据存取方式、独一无二的跨平台技术,交肯有良好的兼容性、真正的可编译性和较强的安全性,是目前最快捷、最实用的数据库管理系统软件之一。

2012-11-05

管理系统中计算机应用,历年真题,答案

管理系统中计算机应用,理论,实践,历年真题,答案。

2012-11-05

jquery-1.8.2.js

jquery-1.8.2.js,jquery-1.8.2.js http://blog.csdn.net/shenhonglei1234

2012-11-01

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除