gliffy-confluence-plugin-9.1.2 플러그 인 튜 토리 얼 상세 설명
8173 단어 gliffyconfluenceplugin
2、스트레스 해소 후 Gliffy License Manager.class 찾기
3.Gliffy License Manager.class 를 역 컴 파일 하여 원래 의 실현 을 교체 하고 class 로 재 컴 파일 한 후 교체 합 니 다.
package com.gliffy.plugin.confluence.license;
import com.atlassian.confluence.setup.BootstrapManager;
import com.atlassian.confluence.setup.settings.CoreFeaturesManager;
import com.atlassian.upm.api.license.PluginLicenseManager;
import com.atlassian.upm.api.license.entity.LicenseError;
import com.atlassian.upm.api.license.entity.LicenseType;
import com.atlassian.upm.api.license.entity.PluginLicense;
import com.atlassian.upm.api.util.Option;
import org.joda.time.DateTime;
import org.joda.time.Days;
import org.joda.time.ReadableInstant;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class GliffyLicenseManager {
private static final Logger logger = LoggerFactory.getLogger(GliffyLicenseManager.class);
private PluginLicenseManager licenseManager;
private CoreFeaturesManager coreFeaturesManager;
private BootstrapManager bootstrapManager;
public GliffyLicenseManager(PluginLicenseManager licenseManager, CoreFeaturesManager coreFeaturesManager, BootstrapManager bootstrapManager) {
this.licenseManager = licenseManager;
this.coreFeaturesManager = coreFeaturesManager;
this.bootstrapManager = bootstrapManager;
}
/*private PluginLicense fetchLicense() {
PluginLicense license = null;
Option<PluginLicense> licenseOption = this.licenseManager.getLicense();
if (licenseOption.isDefined()) {
license = (PluginLicense)licenseOption.get();
} else {
logger.debug("no Gliffy license found");
}
return license;
}*/
public boolean isValid() {
/*PluginLicense license = this.fetchLicense();
return license != null ? license.isValid() : false;*/
return true;
}
public boolean isSupported() {
/*PluginLicense license = this.fetchLicense();
if (license != null) {
return !license.isMaintenanceExpired();
} else {
return false;
}*/
return true;
}
public boolean isEvaluation() {
/*PluginLicense license = this.fetchLicense();
return license != null ? license.isEvaluation() : false;*/
return false;
}
public String getLicenseError() {
/*PluginLicense license = this.fetchLicense();
if (license != null) {
Option<LicenseError> errorOption = license.getError();
if (errorOption.isDefined()) {
return ((LicenseError)errorOption.get()).toString();
}
}
return null;*/
return null;
}
public String getSEN() {
/*PluginLicense license = this.fetchLicense();
if (license != null) {
Option<String> customerIdOption = license.getSupportEntitlementNumber();
if (customerIdOption.isDefined()) {
return (String)customerIdOption.get();
}
}
return null;*/
return null;
}
public boolean isCloud() {
return this.coreFeaturesManager.isOnDemand();
}
public LicenseType getLicenseType() {
/*PluginLicense license = this.fetchLicense();
return license != null ? license.getLicenseType() : null;*/
return LicenseType.COMMERCIAL;
}
public int getDaysToExpiration() {
/*PluginLicense license = this.fetchLicense();
if (license != null) {
Option<DateTime> expiryDateOption = license.getExpiryDate();
if (expiryDateOption.isDefined()) {
return Days.daysBetween(new DateTime(), (ReadableInstant)expiryDateOption.get()).getDays();
}
}
return 0;*/
return Integer.MAX_VALUE;
}
public Integer getUserCount() {
/*PluginLicense license = this.fetchLicense();
if (license != null) {
Option<Integer> qtyUsersOption = license.getEdition();
if (qtyUsersOption.isDefined()) {
return (Integer)qtyUsersOption.get();
}
}
return null;*/
return Integer.MAX_VALUE;
}
public boolean isFree() {
/*if (this.fetchLicense() == null) {
return false;
} else {
LicenseType type = this.getLicenseType();
return type.equals(LicenseType.COMMUNITY) || type.equals(LicenseType.NON_PROFIT) || type.equals(LicenseType.OPEN_SOURCE);
}*/
return false;
}
public boolean isCommercial() {
return this.isValid() && this.isSupported() && !this.isEvaluation() && !this.isFree();
}
public long getLicenseInstallUnixTimestamp() {
/*PluginLicense license = this.fetchLicense();
return license != null ? license.getCreationDate().getMillis() / 1000L : 0L;*/
return 0L;
}
public String getLicenseManagementURL() {
/*return this.bootstrapManager.getWebAppContextPath() + "/plugins/servlet/upm#manage/com.gliffy.integration.confluence";*/
return "";
}
public boolean isNonAnalyticsLicenseType() {
/*LicenseType licenseType = this.getLicenseType();
boolean isEvalCloudInstance = this.isCloud() && (this.isEvaluation() || licenseType == null);
return isEvalCloudInstance || LicenseType.DEVELOPER.equals(licenseType) || LicenseType.TESTING.equals(licenseType) || LicenseType.DEMONSTRATION.equals(licenseType);*/
return false;
}
}
지식 포인트 확장:Gliffy confluence 플러그 인의 해독Gliffy 는 온라인 으로 프로 세 스 를 그 리 는 도구 이거 나 쉽게 말 하면 Gliffy 는 웹 판 Visio 입 니 다.Gliffy 는 사용자 체험 이 매우 좋 고 브 라 우 저 를 켜 면 사용 할 수 있어 사용 하기에 매우 편리 합 니 다.Gliffy 는 confluence 의 플러그 인 버 전 을 동시에 출시 했다.플러그 인 을 설치 한 후 confluence 에서 프로 세 스 그림 을 편리 하 게 편집 하고 삽입 할 수 있 습 니 다.
동료 들 은 글 리 피 에 게 군침 을 흘 렸 지만 글 리 피 는 아직 좀 비싸다.confluence 플러그 인 버 전,500 사용자 의 허 가 는 2000 달러 에 판매 합 니 다.
동료 들 의 회유 가 믿 기지 않 지만 가끔 은 일 을 하 는 것 도 재 미 있 으 니 손 을 쓰 세 요.
주:다음은 단지 몇 가지 관건 을 간단하게 설명 할 뿐 입 니 다.만약 당신 이 자바 에 대해 아무것도 모른다 면 그만 두 세 요.
자바 응용 해 제 는 일반적으로 파일 을 역 컴 파일 하고 인증 부분의 처 리 를 찾 아 인증 결 과 를 true 로 되 돌려 주 는 것 입 니 다.자바 의 역 컴 파일 도구 추천gliffy-confluence-plugin-9.1.2.obr
Gliffy 의 jar 가방 은 비교적 크 지만 자바 코드 는 많 지 않 습 니 다.그리고 Gliffy 는 군 자 를 모방 하여 소인 을 막 지 않 는 방법 을 사 용 했 습 니 다.안에 있 는 자바 코드 는 헷 갈 리 지 않 았 습 니 다.코드 에 매우 눈 에 띄 는 디 렉 터 리 가 있 습 니 다.간단 한 분석 을 하면 우 리 는 진정한 관건 을 찾 을 수 있다.Simple License Manager.자바.
Gliffy 의 이름 은 여전히 매우 규범 적 이 라 고 말 할 수 밖 에 없다.함수 이름 을 단서 로 하면 우리 가 원 하 는 함수 valid License Values 를 쉽게 찾 을 수 있 습 니 다.간단 하고 거 친 함수 반환 값 을 true 로 바 꿉 니 다.플러그 인 을 포장 하고 다시 설치 합 니 다.
만약 문제 가 이렇게 해결 된다 면,그것 도 순 조 롭 지 못 한 것 이 예 사 롭 지 않다.성공 적 으로 설치 할 수 있 지만 운행 할 때 이상 한 것들 을 던 져 낸다.Gliffy 의 관리 인터페이스 에 들 어가 보 세 요.여전히 이상 합 니 다.인증 결 과 를 true 로 강제로 설정 하지만 일부 지역 에 서 는 license 의 만 료 날짜 등 정 보 를 받 아야 합 니 다.관련 데 이 터 를 읽 지 못 해 바로 이상 이 생 겼 다.
그렇다면 먼저 license 정 보 를 시스템 에 기록 해 야 합 니 다.
validLicense Values 를 복원 한 다음 license 를 설정 한 함수 인 install License 를 찾 습 니 다.함수 에 license 인증 과 관련 된 코드 를 주석 하여 시스템 이 인증 결 과 를 무시 한 상태 에서 등록 정 보 를 강제로 기록 하도록 합 니 다.수 정 된 자바 파일 은 실행 할 때 getHosted Status 의 가상 함수 오 류 를 보고 합 니 다.이치 대로 말 하면 이 함 수 는 하위 클래스 에서 다시 쓸 것 이다.그러나 우 리 는 우선 이렇게 많 든 지 간 에 그것 을 일반 함수 로 수정 하고 바로 0 으로 돌아간다.
다시 포장 하여 설치 한 다음 에 Gliffy 의 관리 인터페이스 에 들 어가 license 정 보 를 마음대로 작성 한 다음 에 저장 합 니 다.저장 은 성 공 했 지만 인증 은 실 패 했 습 니 다.validLicense Values 함 수 를 수정 하고 다시 포장 하여 설치 합 니 다.이번에 우 리 는 등록 정 보 를 썼 기 때문에 이전의 빈 포인터 이상 이 다시 나타 나 지 않 을 것 이다.
글 리 피 즐 기세 요.
주:Gliffy 는 정말 좋 은 물건 입 니 다.마음 에 드 시 면 회사 에 돈 을 내 도록 설득 하 세 요.
여기 서 gliffy-confluence-plugin-9.1.2 튜 토리 얼 에 대한 상세 한 설명 을 소개 합 니 다.더 많은 gliffy-confluence-plugin-9.1.2 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
MediaWiki에서 Confluence로 마이그레이션답은 당연히 긍정적이다.Wikitext 형식의 MediaWiki 컨텐트를 합류 스타일로 변환한 다음 마이그레이션할 수 있는 다양한 옵션이 있습니다. 그러나 많은 MediaWiki를 사용하는 회사들과 마찬가지로 시간의...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.