Merge branch 'master' into bug1018

This commit is contained in:
Axel Uhl committed 2015-05-07 09:26:04 +02:00
commit ece7378c4f
885 files changed
+28791 -679

No files matched your search

@@ -0,0 +1,7 @@
apply plugin: "java"
sourceSets {
main {
java.srcDirs = ["src"]
}
}
@@ -0,0 +1,14 @@
apply plugin: "java"
sourceSets {
main {
java.srcDirs = ["src"]
}
}
dependencies {
/* local dependencies */
compile project(":java:com.sap.sse.common")
compile project(":java:com.sap.sse.security.common")
compile project(":java:com.sap.sse.datamining.shared")
}
@@ -109,7 +109,6 @@ public class MongoGPSFixStoreImpl implements MongoGPSFixStore {
public void loadCompetitorTrack(DynamicGPSFixTrack<Competitor, GPSFixMoving> track, AbstractLog<?, ?> log, Competitor competitor)
throws NoCorrespondingServiceRegisteredException, TransformationException{
List<DeviceMapping<Competitor>> mappings = new DeviceCompetitorMappingFinder<>(log).analyze().get(competitor);
if (mappings != null) {
for (DeviceMapping<Competitor> mapping : mappings) {
loadTrack(track, mapping.getDevice(), mapping.getTimeRange().from(), mapping.getTimeRange().to(), true /*inclusive*/);
@@ -0,0 +1,15 @@
apply plugin: "java"
sourceSets {
main {
java.srcDirs = ["src"]
}
}
dependencies {
/* local dependencies */
compile project(":java:com.sap.sailing.domain.common")
compile project(":java:com.sap.sse.common")
compile project(":java:com.sap.sse.datamining.shared")
compile project(":java:com.sap.sse.shared.android")
}
@@ -21,7 +21,6 @@ public class DeviceCompetitorMappingFinder<LogT extends AbstractLog<EventT, Visi
public LogAnalyzer<Map<Competitor, List<DeviceMapping<Competitor>>>> createAnalyzer(AbstractLog<?, ?> log) {
return new DeviceCompetitorMappingFinder(log);
}
}
public DeviceCompetitorMappingFinder(LogT log) {
+16
View File
@@ -0,0 +1,16 @@
apply plugin: "java"
sourceSets {
main {
java.srcDirs = ["src"]
}
}
dependencies {
/* local dependencies */
compile project(":java:com.googlecode.java-diff-utils")
compile project(":java:com.sap.sailing.domain.common")
compile project(":java:com.sap.sailing.domain.shared.android")
compile project(":java:com.sap.sailing.geocoding")
compile project(":java:com.sap.sse.replication")
}
@@ -582,7 +582,7 @@ public class RegattaImpl extends NamedImpl implements Regatta, RaceColumnListene
for (Event event : eventFetcher.getAllEvents()) {
event.removeRegatta(this);
for (CourseArea courseArea : event.getVenue().getCourseAreas()) {
if (defaultCourseArea != null && courseArea.getId().equals(defaultCourseArea)) {
if (defaultCourseArea != null && courseArea.getId().equals(defaultCourseArea.getId())) {
event.addRegatta(this);
}
}
@@ -16,7 +16,7 @@ public class BaseRegattaLikeImpl implements IsRegattaLike {
private final RegattaLikeIdentifier identifier;
private transient Set<RegattaLikeListener> listeners = new HashSet<>();
public BaseRegattaLikeImpl(RegattaLikeIdentifier identifier, RegattaLogStore store) {
public BaseRegattaLikeImpl(final RegattaLikeIdentifier identifier, RegattaLogStore store) {
regattaLog = store.getRegattaLog(identifier, /*ignoreCache*/ true);
this.identifier = identifier;
@@ -86,4 +86,9 @@ public class ScoreCorrectionProviderImpl implements ScoreCorrectionProvider, Res
}
return null;
}
@Override
public String getOptionalSampleURL() {
return null;
}
}
@@ -0,0 +1,14 @@
apply plugin: "java"
sourceSets {
main {
java.srcDirs = ["src"]
}
}
dependencies {
compile "com.googlecode.json-simple:json-simple:1.1.1"
/* local dependencies */
compile project(":java:com.sap.sailing.domain.common")
}
File mode changed.
@@ -1,2 +1 @@
deploy
classes
deploy
+1
View File
@@ -0,0 +1 @@
/*
Whitespace-only changes.
@@ -62,17 +62,16 @@ public class RaceLogTrackingCompetitorRegistrationsDialog extends AbstractSaveDi
}
private void move(CompetitorTableWrapper<?> from, CompetitorTableWrapper<?> to, Collection<CompetitorDTO> toMove) {
if (toMove.isEmpty()) {
return;
if (!toMove.isEmpty()) {
List<CompetitorDTO> newFromList = new ArrayList<>();
Util.addAll(from.getFilterField().getAll(), newFromList);
newFromList.removeAll(toMove);
from.getFilterField().updateAll(newFromList);
List<CompetitorDTO> newToList = new ArrayList<>();
Util.addAll(to.getFilterField().getAll(), newToList);
newToList.addAll(toMove);
to.getFilterField().updateAll(newToList);
}
List<CompetitorDTO> newFromList = new ArrayList<>();
Util.addAll(from.getFilterField().getAll(), newFromList);
newFromList.removeAll(toMove);
from.getFilterField().updateAll(newFromList);
List<CompetitorDTO> newToList = new ArrayList<>();
Util.addAll(to.getFilterField().getAll(), newToList);
newToList.addAll(toMove);
to.getFilterField().updateAll(newToList);
}
private void moveSelected(CompetitorTableWrapper<MultiSelectionModel<CompetitorDTO>> from,
@@ -20,6 +20,7 @@ import com.google.gwt.user.client.ui.VerticalPanel;
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
import com.sap.sailing.gwt.ui.client.StringMessages;
import com.sap.sailing.gwt.ui.client.TextfieldEntryDialog;
import com.sap.sse.common.Util.Pair;
import com.sap.sse.gwt.client.ErrorReporter;
import com.sap.sse.gwt.client.dialog.DataEntryDialog;
import com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback;
@@ -37,17 +38,15 @@ public class ResultImportUrlsManagementPanel extends FlowPanel {
private final Button refreshButton;
public ResultImportUrlsManagementPanel(SailingServiceAsync sailingService, ErrorReporter errorReporter,
StringMessages stringMessages) {
final StringMessages stringMessages) {
final Label sampleURLLabel = new Label();
this.sailingService = sailingService;
this.errorReporter = errorReporter;
this.stringMessages = stringMessages;
urlListBox = new ListBox();
urlListBox.setMultipleSelect(true);
urlProviderSelectionListBox = new ListBox();
urlListBox.setMultipleSelect(false);
urlProviderSelectionListBox.addChangeHandler(new ChangeHandler() {
@Override
public void onChange(ChangeEvent event) {
@@ -56,10 +55,13 @@ public class ResultImportUrlsManagementPanel extends FlowPanel {
addButton.setEnabled(buttonsEnabled);
removeButton.setEnabled(buttonsEnabled);
refreshButton.setEnabled(buttonsEnabled);
final String value = urlProviderSelectionListBox.getValue(selectedIndex);
// believe it or not: adding an item with (someString, null) results in an item
// whose getValue() returns "null" and not null...
sampleURLLabel.setText(value == null || value.equals("null") ? "" : stringMessages.sampleURL(value));
refreshUrlList();
}
});
addButton = new Button(stringMessages.add());
removeButton = new Button(stringMessages.remove());
refreshButton = new Button(stringMessages.refresh());
@@ -85,18 +87,15 @@ public class ResultImportUrlsManagementPanel extends FlowPanel {
HorizontalPanel providerSelectionPanel = new HorizontalPanel();
providerSelectionPanel.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
vp.add(providerSelectionPanel);
providerSelectionPanel.add(new Label("URL Providers:"));
providerSelectionPanel.add(new Label(stringMessages.urlProviders()));
providerSelectionPanel.add(urlProviderSelectionListBox);
sailingService.getUrlResultProviderNames(new AsyncCallback<List<String>>() {
sailingService.getUrlResultProviderNamesAndOptionalSampleURL(new AsyncCallback<List<Pair<String, String>>>() {
@Override
public void onSuccess(List<String> urlProviderNames) {
public void onSuccess(List<Pair<String, String>> urlProviderNamesAndOptionalSampleURL) {
urlProviderSelectionListBox.clear();
urlProviderSelectionListBox.addItem("Please select a URL provider...");
for(String urlProviderName: urlProviderNames) {
urlProviderSelectionListBox.addItem(urlProviderName);
urlProviderSelectionListBox.addItem(stringMessages.pleaseSelectAURLProvider());
for (Pair<String, String> urlProviderNameAndSampleURL : urlProviderNamesAndOptionalSampleURL) {
urlProviderSelectionListBox.addItem(urlProviderNameAndSampleURL.getA(), urlProviderNameAndSampleURL.getB());
}
}
@@ -104,8 +103,8 @@ public class ResultImportUrlsManagementPanel extends FlowPanel {
public void onFailure(Throwable caught) {
}
});
vp.add(urlListBox);
vp.add(sampleURLLabel);
HorizontalPanel buttonPanel = new HorizontalPanel();
vp.add(buttonPanel);
buttonPanel.add(addButton);
@@ -333,7 +333,7 @@ public interface SailingService extends RemoteService, FileStorageManagementGwtS
void updateLeaderboardScoreCorrectionMetadata(String leaderboardName, Date timePointOfLastCorrectionValidity,
String comment);
List<String> getUrlResultProviderNames();
List<Pair<String, String>> getUrlResultProviderNamesAndOptionalSampleURL();
void updateRaceCourse(RegattaAndRaceIdentifier raceIdentifier, List<Util.Pair<ControlPointDTO, PassingInstruction>> controlPoints);
@@ -78,6 +78,7 @@ import com.sap.sailing.gwt.ui.shared.VenueDTO;
import com.sap.sailing.gwt.ui.shared.WindDTO;
import com.sap.sailing.gwt.ui.shared.WindInfoForRaceDTO;
import com.sap.sse.common.Util;
import com.sap.sse.common.Util.Pair;
import com.sap.sse.common.search.KeywordQuery;
import com.sap.sse.gwt.client.BuildVersionRetriever;
import com.sap.sse.gwt.client.filestorage.FileStorageManagementGwtServiceAsync;
@@ -431,7 +432,7 @@ public interface SailingServiceAsync extends BuildVersionRetriever, FileStorageM
void addResultImportUrl(String resultProviderName, String url, AsyncCallback<Void> callback);
void getUrlResultProviderNames(AsyncCallback<List<String>> callback);
void getUrlResultProviderNamesAndOptionalSampleURL(AsyncCallback<List<Pair<String, String>>> callback);
void addColumnsToLeaderboard(String leaderboardName, List<Util.Pair<String, Boolean>> columnsToAdd,
AsyncCallback<Void> callback);
@@ -1271,4 +1271,7 @@ public interface StringMessages extends com.sap.sse.gwt.client.StringMessages, c
String changed();
String matcher();
String any();
String urlProviders();
String pleaseSelectAURLProvider();
String sampleURL(String sampleURL);
}
@@ -1238,4 +1238,7 @@ competitorsCount[one]={0,number} competitor
clone=Clone
changed=Changed
matcher=Matcher
any=Any
any=Any
urlProviders=URL-based result providers
pleaseSelectAURLProvider=Please select a URL-based result provider...
sampleURL=Sample URL: {0}
@@ -1230,4 +1230,7 @@ dashboardWindBotLoadingMessage=Depending on your connection this operation might
clone=Clone
changed=Changed
matcher=Matcher
any=Any
any=Any
urlProviders=URL-based result providers
pleaseSelectAURLProvider=Please select a URL-based result provider...
sampleURL=Sample URL: {0}
@@ -1228,4 +1228,7 @@ competitorsCount[one]={0,number} Team
clone=Clone
changed=Changed
matcher=Matcher
any=Any
any=Any
urlProviders=URL-basierte Ergebnisdienste
pleaseSelectAURLProvider=Bitte einen URL-basierten Ergebnisdienst auswählen...
sampleURL=Beispiel-URL: {0}
@@ -1177,4 +1177,7 @@ competitorsCount[one]={0,number} competitor
clone=Clone
changed=Changed
matcher=Matcher
any=Any
any=Any
urlProviders=URL-based result providers
pleaseSelectAURLProvider=Please select a URL-based result provider...
sampleURL=Sample URL: {0}
@@ -3714,11 +3714,11 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S
}
@Override
public List<String> getUrlResultProviderNames() {
List<String> result = new ArrayList<String>();
public List<Pair<String, String>> getUrlResultProviderNamesAndOptionalSampleURL() {
List<Pair<String, String>> result = new ArrayList<>();
for (ScoreCorrectionProvider scp : getAllScoreCorrectionProviders()) {
if (scp instanceof ResultUrlProvider) {
result.add(scp.getName());
result.add(new Pair<>(scp.getName(), ((ResultUrlProvider) scp).getOptionalSampleURL()));
}
}
return result;
@@ -1,2 +0,0 @@
/WindLatticeDTO.java
/WindLatticeGenParamsDTO.java
@@ -137,4 +137,9 @@ public class ScoreCorrectionProviderImpl implements ScoreCorrectionProvider, Res
public Iterable<URL> getUrls() {
return resultUrlRegistry.getResultUrls(NAME);
}
@Override
public String getOptionalSampleURL() {
return "http://manage2sail.com/api/public/links/event/d30883d3-2876-4d7e-af49-891af6cbae1b?accesstoken=bDAv8CwsTM94ujZ&mediaType=json";
}
}
@@ -16,6 +16,17 @@ import com.sap.sailing.domain.common.CompetitorGenderType;
import com.sap.sse.InvalidDateException;
import com.sap.sse.util.DateParser;
/**
* URLs should be of the form
* <pre>
* http://manage2sail.com/api/public/links/event/d30883d3-2876-4d7e-af49-891af6cbae1b?accesstoken=bDAv8CwsTM94ujZ&mediaType=json
* </pre>
* where the UUID following the <code>event</code> path element represents the event ID. Events can be
* discovered by the manage2sail.com website.
*
* @author Axel Uhl (D043530)
*
*/
public class Manage2SailEventResultsParserImpl implements Manage2SailEventResultsParser {
/**
+28
View File
@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>com.sap.sailing.mongodb</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.pde.ManifestBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.pde.SchemaBuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.pde.PluginNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>
@@ -3,5 +3,15 @@ package com.sap.sailing.resultimport;
import java.net.URL;
public interface ResultUrlProvider {
/**
* The URLs configured for this provider
*/
Iterable<URL> getUrls();
/**
* An optional example for how the URLs should be structured. Can be shown by a
* user interface for URL list editing to instruct the user how to craft the URLs
* for this provider. May return <code>null</code>.
*/
String getOptionalSampleURL();
}
@@ -0,0 +1,15 @@
apply plugin: "java"
sourceSets {
main {
java.srcDirs = ["src"]
}
}
dependencies {
/* local dependencies */
compile project(":java:com.sap.sailing.domain.common")
compile project(":java:com.sap.sailing.domain.shared.android")
compile project(":java:com.sap.sse.common")
compile project(":java:org.json.simple")
}
@@ -2,6 +2,7 @@ package com.sap.sailing.server.gateway.serialization.impl;
import java.io.Serializable;
import java.util.Map.Entry;
import java.util.Set;
import java.util.UUID;
import org.json.simple.JSONObject;
@@ -63,7 +64,8 @@ public class CompetitorJsonSerializer implements JsonSerializer<Competitor> {
// Also see the corresponding case distinction in the deserialized which first tries to parse a string as a UUID becore
// returning the ID as is.
result.put(FIELD_ID_TYPE, competitor.getId().getClass().getName());
for (Entry<Object, Object> idKeyAndValue : getCompetitorIdQuery(competitor).entrySet()) {
Set<Entry<Object, Object>> entries = getCompetitorIdQuery(competitor).entrySet();
for (Entry<Object, Object> idKeyAndValue : entries) {
result.put(idKeyAndValue.getKey(), idKeyAndValue.getValue());
}
result.put(FIELD_NAME, competitor.getName());
@@ -0,0 +1,18 @@
apply plugin: "java"
sourceSets {
main {
java.srcDirs = ["src"]
}
}
dependencies {
compile "com.googlecode.json-simple:json-simple:1.1.1"
/* local dependencies */
compile project(":java:com.sap.sailing.domain")
compile project(":java:com.sap.sailing.domain.common")
compile project(":java:com.sap.sailing.domain.shared.android")
compile project(":java:com.sap.sse.common")
compile project(":java:net.sf.marineapi")
}
@@ -1,5 +1,7 @@
package com.sap.sailing.server.gateway.jaxrs.api;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URI;
@@ -18,6 +20,7 @@ import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status;
import org.apache.commons.fileupload.util.Streams;
import org.json.simple.JSONObject;
import com.sap.sailing.domain.base.Competitor;
@@ -117,8 +120,7 @@ public class CompetitorsResource extends AbstractSailingServerResource {
@Path("{competitor-id}/team/image")
@Produces("application/json;charset=UTF-8")
public String setTeamImage(@PathParam("competitor-id") String competitorId, InputStream uploadedInputStream,
@HeaderParam("Content-Type") String fileType, @HeaderParam("Content-Length") long sizeInBytes) {
@HeaderParam("Content-Type") String fileType, @HeaderParam("Content-Length") long sizeInBytes) throws IOException {
RacingEventService service = getService();
CompetitorStore store = service.getCompetitorStore();
Competitor competitor = store.getExistingCompetitorByIdAsString(competitorId);
@@ -134,7 +136,13 @@ public class CompetitorsResource extends AbstractSailingServerResource {
} else if (fileType.equals("image/png")) {
fileExtension = ".png";
}
if (sizeInBytes <= 0) {
// size not provided; read the stream and determine length locally:
ByteArrayOutputStream bos = new ByteArrayOutputStream();
Streams.copy(uploadedInputStream, bos, /* close output stream */ true);
sizeInBytes = bos.size();
uploadedInputStream = new ByteArrayInputStream(bos.toByteArray());
}
URI imageUri;
try {
if (sizeInBytes > 1024 * 1024 * MAX_SIZE_IN_MB) {
View File
File mode changed.
+13
View File
@@ -0,0 +1,13 @@
apply plugin: "java"
sourceSets {
main {
java.srcDirs = ["src"]
}
}
dependencies {
/* local dependencies */
compile project(":java:org.json.simple")
compile project(":java:com.sap.sse.datamining.shared")
}
@@ -0,0 +1,7 @@
apply plugin: "java"
sourceSets {
main {
java.srcDirs = ["src"]
}
}
+16
View File
@@ -0,0 +1,16 @@
apply plugin: "java"
sourceSets {
main {
java.srcDirs = ["src"]
}
}
dependencies {
compile "javax.servlet:javax.servlet-api:3.1.0"
compile "org.eclipse:osgi:3.10.0-v20140606-1445"
/* local dependencies */
compile project(":java:com.sap.sse.common")
compile project(":java:com.sap.sse")
}
@@ -0,0 +1,26 @@
package com.sap.sse.gwt.theme.client.showcase.components;
import com.google.gwt.core.client.GWT;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.Widget;
import com.sap.sse.gwt.theme.client.component.videogallery.VideoGallery;
import com.sap.sse.gwt.theme.client.component.videogallery.VideoGalleryData;
public class VideoGalleryShowcase extends Composite {
private static VideoGalleryShowcaseUiBinder uiBinder = GWT.create(VideoGalleryShowcaseUiBinder.class);
interface VideoGalleryShowcaseUiBinder extends UiBinder<Widget, VideoGalleryShowcase> {
}
@UiField(provided=true)
VideoGallery videoGallery;
public VideoGalleryShowcase() {
videoGallery = new VideoGallery(new VideoGalleryData("My video gallery"));
initWidget(uiBinder.createAndBindUi(this));
}
}
@@ -0,0 +1,7 @@
apply plugin: "java"
sourceSets {
main {
java.srcDirs = ["src"]
}
}
+17
View File
@@ -0,0 +1,17 @@
apply plugin: "java"
sourceSets {
main {
java.srcDirs = ["src"]
}
}
dependencies {
compile "com.rabbitmq:amqp-client:2.8.4"
/* local dependencies */
compile project(":java:com.sap.sse.common")
compile project(":java:com.sap.sse.operationaltransformation")
compile project(":java:com.sap.sse")
compile project(":java:com.sap.sse.gateway")
}
+12
View File
@@ -0,0 +1,12 @@
apply plugin: "java"
sourceSets {
main {
java.srcDirs = ["src"]
}
}
dependencies {
/* local dependencies */
compile project(":java:com.sap.sse.common")
}
@@ -1,2 +1 @@
deploy
classes
deploy
+1
View File
@@ -0,0 +1 @@
*
Whitespace-only changes.
@@ -0,0 +1,12 @@
apply plugin: "java"
sourceSets {
main {
java.srcDirs = ["src"]
}
}
dependencies {
/* local dependencies */
compile project(":java:com.sap.sse.common")
}
+7
View File
@@ -0,0 +1,7 @@
apply plugin: "java"
sourceSets {
main {
java.srcDirs = ["src"]
}
}
+7
View File
@@ -0,0 +1,7 @@
apply plugin: "java"
sourceSets {
main {
java.srcDirs = ["src"]
}
}
+7 -7
View File
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
<classpathentry kind="output" path="bin"/>
</classpath>
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
<classpathentry kind="output" path="bin"/>
</classpath>
@@ -1,12 +1,12 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
org.eclipse.jdt.core.compiler.compliance=1.8
org.eclipse.jdt.core.compiler.compliance=1.7
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.source=1.8
org.eclipse.jdt.core.compiler.source=1.7
+1 -1
View File
@@ -4,7 +4,7 @@ Bundle-Name: json-simple
Bundle-SymbolicName: org.json.simple
Bundle-Version: 1.1.0.qualifier
Bundle-Vendor: JSON Simple
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
Bundle-ActivationPolicy: lazy
Export-Package: org.json.simple,
org.json.simple.parser
+7
View File
@@ -0,0 +1,7 @@
apply plugin: "java"
sourceSets {
main {
java.srcDirs = ["src"]
}
}
@@ -27,4 +27,5 @@ armin: armin,spectator,moderator,administrator
steffen: steffen,spectator,moderator,administrator
jacob@sejlsport.dk: !hsf/sf67, eventmanager
m.welte@stg-academy.org: mwelte, eventmanager
e.anders@stg-academy.org: eanders, eventmanager
e.anders@stg-academy.org: eanders, eventmanager
siegmund@ubilabs.net: psiegmund,spectator,moderator,administrator