Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

INTERNAL: set empty string as serviceId's default value #99

Merged
merged 1 commit into from
Aug 23, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 2 additions & 3 deletions docs/02-arcus-spring-concept.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,13 +62,12 @@ ArcusCache 객체를 생성하기 위해 사용되는 캐시 설정 클래스이

- `String serviceId`
- 다음에 설명할 prefix와 조합하여 캐시 키의 Prefix를 생성하는 데 사용된다.
- 주로 배포 단계(test, dev, stage, prod, ...)를 구분하기 위한 문자열을 지정한다.
- null이 아닌 값을 필수적으로 지정해야 한다.
- 배포 단계(test, dev, stage, prod, ...)를 구분하기 위한 문자열을 지정한다.
- [1장의 Cache Key 설명](01-arcus-cache-basics.md#cache-key)을 참고하여 ARCUS Cache의 캐시 키로 사용할 수 없는 문자열이 포함되지 않도록 해야 한다.
- `String prefix`
- serviceId와 조합하여 캐시 키의 Prefix를 생성하는 데 사용된다.
- 주로 ARCUS Cache에 저장할 객체의 종류(Product, User, Order, ...)를 나타내는 문자열을 지정한다.
- 필수적으로 지정하지 않아도 되며, null을 지정할 수 있다. 이 경우 캐시 키의 Prefix를 생성할 때 serviceId와 현재 캐시 설정으로 생성하는 ArcusCache 객체의 캐시 이름이 사용된다.
- 필수적으로 지정하지 않아도 되며, 이 경우 캐시 키의 Prefix를 생성할 때 serviceId와 현재 캐시 설정으로 생성하는 ArcusCache 객체의 캐시 이름이 사용된다.
- null이 아닌 값을 지정하는 경우, [1장의 Cache Key 설명](01-arcus-cache-basics.md#cache-key)을 참고하여 ARCUS Cache의 캐시 키로 사용할 수 없는 문자열이 포함되지 않도록 해야 한다.
- `int expireSeconds`
- 캐시 아이템의 Expire Time을 Seconds 단위로 지정한다.
Expand Down
12 changes: 2 additions & 10 deletions docs/03-arcus-spring-usage.md
Original file line number Diff line number Diff line change
Expand Up @@ -87,11 +87,7 @@ Spring Cache Abstraction을 통해 ARCUS Cache를 사용하려면, 다음과 같
</constructor-arg>
</bean>

<bean id="defaultCacheConfig" class="com.navercorp.arcus.spring.cache.ArcusCacheConfiguration">
<property name="serviceId" value=""/>
<property name="expireSeconds" value="240"/>
<property name="timeoutMilliSeconds" value="800"/>
</bean>
<bean id="defaultCacheConfig" class="com.navercorp.arcus.spring.cache.ArcusCacheConfiguration"/>

</beans>
```
Expand Down Expand Up @@ -130,11 +126,7 @@ public class ArcusConfiguration extends CachingConfigurerSupport {

@Bean
public ArcusCacheConfiguration defaultCacheConfig() {
ArcusCacheConfiguration defaultCacheConfig = new ArcusCacheConfiguration();
defaultCacheConfig.setServiceId("");
defaultCacheConfig.setExpireSeconds(240);
defaultCacheConfig.setTimeoutMilliSeconds(800);
return defaultCacheConfig;
return new ArcusCacheConfiguration();
}

@Bean
Expand Down
10 changes: 5 additions & 5 deletions src/main/java/com/navercorp/arcus/spring/cache/ArcusCache.java
Original file line number Diff line number Diff line change
Expand Up @@ -44,9 +44,9 @@
/**
* 스프링 Cache의 Arcus 구현체.
* <p>
* Arcus의 key 구조는 prefix:subkey 입니다. prefix는 사용자가 그룹으로 생성하고자 하는 subkey들의 집합이며
* ArcusCache에서는 서비스 또는 빌드 단계 등의 구분을 위해 serviceId + name으로 정의합니다. serviceCode
* 속성과 name는 반드시 설정되어야 합니다.
* Arcus 캐시 키의 기본 구조는 prefix:subkey 입니다. prefix는 사용자가 그룹으로 생성하고자 하는 subkey들의 집합이며
* ArcusCache에서는 서비스 또는 빌드 단계 등의 구분을 위해 serviceId + <prefix | name> 문자열을 캐시 키의 prefix로 정의합니다.
*
* </p>
* <pre>{@code
* <bean id="operationTranscoderA" class="net.spy.memcached.transcoders.SerializingTranscoder">
Expand Down Expand Up @@ -87,8 +87,8 @@ public class ArcusCache extends AbstractValueAdaptingCache implements Initializi
private final Logger logger = LoggerFactory.getLogger(this.getClass());

private String name;
private String serviceId = "";
private String prefix;
private String serviceId;
Comment on lines +90 to -91
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

위치를 옮긴 이유가 있나요?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

docs에 serviceId를 먼저 설명하기도 하고, prefix 생성할 때 serviceId를 먼저 사용하기도 해서 옮겼습니다.

private int expireSeconds;
private int frontExpireSeconds;
private long timeoutMilliSeconds = DEFAULT_TIMEOUT_MILLISECONDS;
Expand Down Expand Up @@ -339,14 +339,14 @@ public void afterPropertiesSet() {
if (name == null && prefix == null) {
throw new IllegalArgumentException("ArcusCache's 'name' or 'prefix' property must have a value.");
}
Assert.notNull(serviceId, "ArcusCache's serviceId property must have a value.");
}

public String getServiceId() {
return serviceId;
}

public void setServiceId(String serviceId) {
Assert.notNull(serviceId, "ArcusCache's serviceId property must have a value.");
this.serviceId = serviceId;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
@SuppressWarnings("DeprecatedIsStillUsed")
public class ArcusCacheConfiguration implements InitializingBean {

private String serviceId;
private String serviceId = "";
private String prefix;
private int expireSeconds;
private int frontExpireSeconds;
Expand Down